photon-grid-core 2.0.4 → 2.0.6

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 (161) hide show
  1. package/cell-selection/cell-selection-engine.d.ts +49 -0
  2. package/cell-selection/cell-selection-engine.d.ts.map +1 -1
  3. package/cell-selection/cell-selection-engine.js +185 -6
  4. package/cell-selection/cell-selection-engine.js.map +1 -1
  5. package/core/grid-api.d.ts +83 -0
  6. package/core/grid-api.d.ts.map +1 -1
  7. package/core/grid-api.js +118 -1
  8. package/core/grid-api.js.map +1 -1
  9. package/core/grid-core.d.ts.map +1 -1
  10. package/core/grid-core.js +14 -4
  11. package/core/grid-core.js.map +1 -1
  12. package/engines/clipboard/clipboard-engine.d.ts +3 -2
  13. package/engines/clipboard/clipboard-engine.d.ts.map +1 -1
  14. package/engines/clipboard/clipboard-engine.js +4 -3
  15. package/engines/clipboard/clipboard-engine.js.map +1 -1
  16. package/engines/filter/filter-engine.d.ts +16 -0
  17. package/engines/filter/filter-engine.d.ts.map +1 -1
  18. package/engines/filter/filter-engine.js +20 -0
  19. package/engines/filter/filter-engine.js.map +1 -1
  20. package/engines/filter/filter-panel.d.ts.map +1 -1
  21. package/engines/filter/filter-panel.js +6 -1
  22. package/engines/filter/filter-panel.js.map +1 -1
  23. package/engines/master-detail/master-detail-engine.d.ts +4 -3
  24. package/engines/master-detail/master-detail-engine.d.ts.map +1 -1
  25. package/engines/master-detail/master-detail-engine.js +14 -5
  26. package/engines/master-detail/master-detail-engine.js.map +1 -1
  27. package/engines/selection/row-selection-engine.d.ts +41 -0
  28. package/engines/selection/row-selection-engine.d.ts.map +1 -1
  29. package/engines/selection/row-selection-engine.js +103 -0
  30. package/engines/selection/row-selection-engine.js.map +1 -1
  31. package/index.d.ts +2 -1
  32. package/index.d.ts.map +1 -1
  33. package/index.js +1 -0
  34. package/index.js.map +1 -1
  35. package/package.json +1 -1
  36. package/photon-ai/builtins/filter.commands.d.ts +15 -0
  37. package/photon-ai/builtins/filter.commands.d.ts.map +1 -1
  38. package/photon-ai/builtins/filter.commands.js +5 -5
  39. package/photon-ai/builtins/filter.commands.js.map +1 -1
  40. package/photon-ai/builtins/selection.commands.d.ts.map +1 -1
  41. package/photon-ai/builtins/selection.commands.js +161 -2
  42. package/photon-ai/builtins/selection.commands.js.map +1 -1
  43. package/photon-ai/provider/command-normalizer.d.ts.map +1 -1
  44. package/photon-ai/provider/command-normalizer.js +5 -1
  45. package/photon-ai/provider/command-normalizer.js.map +1 -1
  46. package/photon-ai/provider/system-prompt.d.ts.map +1 -1
  47. package/photon-ai/provider/system-prompt.js +3 -1
  48. package/photon-ai/provider/system-prompt.js.map +1 -1
  49. package/photon-grid.min.js +349 -498
  50. package/renderer/auto-scroller.d.ts +11 -1
  51. package/renderer/auto-scroller.d.ts.map +1 -1
  52. package/renderer/auto-scroller.js +34 -19
  53. package/renderer/auto-scroller.js.map +1 -1
  54. package/renderer/body-renderer.d.ts +16 -0
  55. package/renderer/body-renderer.d.ts.map +1 -1
  56. package/renderer/body-renderer.js +54 -1
  57. package/renderer/body-renderer.js.map +1 -1
  58. package/renderer/cell-renderer.d.ts +9 -1
  59. package/renderer/cell-renderer.d.ts.map +1 -1
  60. package/renderer/cell-renderer.js +16 -2
  61. package/renderer/cell-renderer.js.map +1 -1
  62. package/renderer/detail-row-renderer.d.ts.map +1 -1
  63. package/renderer/detail-row-renderer.js +1 -1
  64. package/renderer/detail-row-renderer.js.map +1 -1
  65. package/renderer/grid-renderer.d.ts +33 -1
  66. package/renderer/grid-renderer.d.ts.map +1 -1
  67. package/renderer/grid-renderer.js +138 -2
  68. package/renderer/grid-renderer.js.map +1 -1
  69. package/renderer/header-renderer.d.ts +44 -0
  70. package/renderer/header-renderer.d.ts.map +1 -1
  71. package/renderer/header-renderer.js +145 -19
  72. package/renderer/header-renderer.js.map +1 -1
  73. package/renderer/row-animator.d.ts +18 -1
  74. package/renderer/row-animator.d.ts.map +1 -1
  75. package/renderer/row-animator.js +93 -17
  76. package/renderer/row-animator.js.map +1 -1
  77. package/renderer/scroll-controller.d.ts.map +1 -1
  78. package/renderer/scroll-controller.js +31 -13
  79. package/renderer/scroll-controller.js.map +1 -1
  80. package/styles/base/cells.css.d.ts +1 -1
  81. package/styles/base/cells.css.d.ts.map +1 -1
  82. package/styles/base/cells.css.js +13 -13
  83. package/styles/base/column-context-menu.css.d.ts +1 -1
  84. package/styles/base/column-context-menu.css.d.ts.map +1 -1
  85. package/styles/base/column-context-menu.css.js +19 -5
  86. package/styles/base/column-context-menu.css.js.map +1 -1
  87. package/styles/base/column-group-header.css.d.ts +1 -1
  88. package/styles/base/column-group-header.css.d.ts.map +1 -1
  89. package/styles/base/column-group-header.css.js +5 -1
  90. package/styles/base/column-group-header.css.js.map +1 -1
  91. package/styles/base/context-menu.css.d.ts +1 -1
  92. package/styles/base/context-menu.css.d.ts.map +1 -1
  93. package/styles/base/context-menu.css.js +23 -0
  94. package/styles/base/context-menu.css.js.map +1 -1
  95. package/styles/base/filter.css.d.ts +1 -1
  96. package/styles/base/filter.css.d.ts.map +1 -1
  97. package/styles/base/filter.css.js +49 -8
  98. package/styles/base/filter.css.js.map +1 -1
  99. package/styles/base/group-drop-zone.css.d.ts +1 -1
  100. package/styles/base/group-drop-zone.css.d.ts.map +1 -1
  101. package/styles/base/group-drop-zone.css.js +3 -3
  102. package/styles/base/header.css.d.ts +1 -1
  103. package/styles/base/header.css.d.ts.map +1 -1
  104. package/styles/base/header.css.js +8 -1
  105. package/styles/base/header.css.js.map +1 -1
  106. package/styles/base/row-drag.css.d.ts +1 -1
  107. package/styles/base/row-drag.css.d.ts.map +1 -1
  108. package/styles/base/row-drag.css.js +1 -1
  109. package/styles/base/rows.css.d.ts +1 -1
  110. package/styles/base/rows.css.d.ts.map +1 -1
  111. package/styles/base/rows.css.js +23 -16
  112. package/styles/base/rows.css.js.map +1 -1
  113. package/styles/base/scrollbars.css.d.ts +1 -1
  114. package/styles/base/scrollbars.css.d.ts.map +1 -1
  115. package/styles/base/scrollbars.css.js +6 -3
  116. package/styles/base/scrollbars.css.js.map +1 -1
  117. package/styles/base/sparkline.css.d.ts +1 -1
  118. package/styles/base/sparkline.css.d.ts.map +1 -1
  119. package/styles/base/sparkline.css.js +6 -0
  120. package/styles/base/sparkline.css.js.map +1 -1
  121. package/styles/base/tooltip.css.d.ts +1 -1
  122. package/styles/base/tooltip.css.d.ts.map +1 -1
  123. package/styles/base/tooltip.css.js +1 -1
  124. package/styles/base-styles.d.ts.map +1 -1
  125. package/styles/base-styles.js +5 -2
  126. package/styles/base-styles.js.map +1 -1
  127. package/styles/themes/theme-alpine.d.ts +9 -1
  128. package/styles/themes/theme-alpine.d.ts.map +1 -1
  129. package/styles/themes/theme-alpine.js +34 -43
  130. package/styles/themes/theme-alpine.js.map +1 -1
  131. package/styles/themes/theme-balham.d.ts +9 -1
  132. package/styles/themes/theme-balham.d.ts.map +1 -1
  133. package/styles/themes/theme-balham.js +33 -42
  134. package/styles/themes/theme-balham.js.map +1 -1
  135. package/styles/themes/theme-material.d.ts +9 -1
  136. package/styles/themes/theme-material.d.ts.map +1 -1
  137. package/styles/themes/theme-material.js +36 -44
  138. package/styles/themes/theme-material.js.map +1 -1
  139. package/styles/themes/theme-quartz.d.ts +14 -1
  140. package/styles/themes/theme-quartz.d.ts.map +1 -1
  141. package/styles/themes/theme-quartz.js +64 -43
  142. package/styles/themes/theme-quartz.js.map +1 -1
  143. package/theme/theme-manager.d.ts +55 -7
  144. package/theme/theme-manager.d.ts.map +1 -1
  145. package/theme/theme-manager.js +139 -35
  146. package/theme/theme-manager.js.map +1 -1
  147. package/theme/themes/light-theme.js +1 -1
  148. package/types/column.types.d.ts +42 -0
  149. package/types/column.types.d.ts.map +1 -1
  150. package/types/column.types.js +26 -1
  151. package/types/column.types.js.map +1 -1
  152. package/types/grid.types.d.ts +90 -2
  153. package/types/grid.types.d.ts.map +1 -1
  154. package/types/theme.types.d.ts +19 -0
  155. package/types/theme.types.d.ts.map +1 -1
  156. package/types/theme.types.js +7 -1
  157. package/types/theme.types.js.map +1 -1
  158. package/styles/themes/theme-dark.d.ts +0 -2
  159. package/styles/themes/theme-dark.d.ts.map +0 -1
  160. package/styles/themes/theme-dark.js +0 -219
  161. package/styles/themes/theme-dark.js.map +0 -1
@@ -80,16 +80,6 @@ export class ScrollController {
80
80
  // the grid underneath it instead — bail out here so the panel scrolls itself.
81
81
  if (e.target?.closest('.pg-ai-panel'))
82
82
  return;
83
- e.preventDefault();
84
- // A nested Master/Detail grid's body sits inside the parent grid's own
85
- // `.pg-grid__body` (a sibling of the pinned panels, not a descendant of
86
- // them — see DetailRowRenderer). Without stopping propagation here, a
87
- // wheel event this grid already handled keeps bubbling and also reaches
88
- // the parent grid's own wheel listener on that shared ancestor, scrolling
89
- // both grids from a single gesture (most visible on horizontal-dominant
90
- // scrolls, and intermittently on trackpads whose "vertical" gestures emit
91
- // a small stray deltaX).
92
- e.stopPropagation();
93
83
  let dx = e.deltaX;
94
84
  let dy = e.deltaY;
95
85
  if (e.deltaMode === 1 /* DOM_DELTA_LINE */) {
@@ -100,11 +90,39 @@ export class ScrollController {
100
90
  dx *= this.centerViewportWidth;
101
91
  dy *= this.viewportHeight;
102
92
  }
103
- if (e.shiftKey || Math.abs(dx) > Math.abs(dy)) {
104
- this.scrollToX(this.scrollLeft + (e.deltaX !== 0 ? dx : dy));
93
+ // Which axis this gesture drives, and the signed delta applied to it. A
94
+ // shift-wheel or horizontal-dominant gesture maps onto X; a plain wheel
95
+ // with no deltaX still drives X off deltaY (mirrors the scroll calls below).
96
+ const horizontal = e.shiftKey || Math.abs(dx) > Math.abs(dy);
97
+ const delta = horizontal ? (e.deltaX !== 0 ? dx : dy) : dy;
98
+ // Only consume the gesture when this grid can still scroll in that
99
+ // direction. Once pinned at the relevant edge we leave the event neither
100
+ // prevented nor stopped, so it bubbles: a parent Master/Detail grid — or
101
+ // the browser's native scroll on any outer container — picks it up instead
102
+ // of the gesture dead-ending here. This is what lets an at-boundary scroll
103
+ // hand off to the surrounding page.
104
+ const canConsume = horizontal
105
+ ? (delta > 0 ? this.canScrollRight() : delta < 0 ? this.canScrollLeft() : false)
106
+ : (delta > 0 ? this.canScrollDown() : delta < 0 ? this.canScrollUp() : false);
107
+ if (!canConsume)
108
+ return;
109
+ e.preventDefault();
110
+ // A nested Master/Detail grid's body sits inside the parent grid's own
111
+ // `.pg-grid__body` (a sibling of the pinned panels, not a descendant of
112
+ // them — see DetailRowRenderer). Without stopping propagation here, a
113
+ // wheel event this grid already handled keeps bubbling and also reaches
114
+ // the parent grid's own wheel listener on that shared ancestor, scrolling
115
+ // both grids from a single gesture (most visible on horizontal-dominant
116
+ // scrolls, and intermittently on trackpads whose "vertical" gestures emit
117
+ // a small stray deltaX). We only reach here when this grid is actually
118
+ // consuming the gesture, so stopping propagation is safe — an at-boundary
119
+ // gesture bailed out above and is intentionally left to bubble.
120
+ e.stopPropagation();
121
+ if (horizontal) {
122
+ this.scrollToX(this.scrollLeft + delta);
105
123
  }
106
124
  else {
107
- this.scrollToY(this.scrollTop + dy);
125
+ this.scrollToY(this.scrollTop + delta);
108
126
  }
109
127
  };
110
128
  // ── Touch panning ───────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-controller.js","sourceRoot":"","sources":["../../src/renderer/scroll-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scroll-controller.js","sourceRoot":"","sources":["../../src/renderer/scroll-controller.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,5 @@
5
5
  * base-styles.ts; edit here, not there. Order is preserved because CSS
6
6
  * cascade depends on it.
7
7
  */
8
- export declare const cellsCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Cells \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-cell {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n min-width: var(--pg-sizing-column-min-width, 40px);\n border-right: 1px solid transparent;\n padding: 0;\n overflow: hidden;\n position: relative;\n}\n.pg-cell--v-border { border-right-color: var(--pg-colors-border, #e2e8f0); }\n.pg-cell:last-child { border-right: none; }\n.pg-cell--align-right { justify-content: flex-end; }\n.pg-cell--align-center { justify-content: center; }\n.pg-cell--align-right .pg-cell__inner { text-align: right; }\n.pg-cell--align-center .pg-cell__inner { text-align: center; }\n\n/* \u2500\u2500\u2500 Cell selection (CSS-based, replaces canvas) \u2500\u2500\u2500 */\n/* Suppress the browser's native focus ring \u2014 the grid uses its own blue\n box-shadow indicator on .pg-cell--active-cell instead. */\n.pg-cell { user-select: none; outline: none; }\n\n/*\n * Range selection \u2014 edge borders drawn via ::after so CSS border corners\n * always connect cleanly (no box-shadow joining artefacts).\n * The JS engine adds sel-top/right/bottom/left only on cells that sit on\n * the outer edge of the range; interior cells carry no edge classes.\n */\n.pg-cell--in-selection {\n background-color: var(--pg-colors-selection-background, aliceblue) !important;\n position: relative;\n z-index: 1;\n}\n.pg-cell--in-selection::after {\n content: '';\n position: absolute;\n inset: 0;\n border: 0 solid var(--pg-colors-primary, #2563eb);\n pointer-events: none;\n}\n.pg-cell--sel-top::after { border-top-width: 1px; }\n.pg-cell--sel-bottom::after { border-bottom-width: 1px; }\n.pg-cell--sel-left::after { border-left-width: 1px; }\n.pg-cell--sel-right::after { border-right-width: 1px; }\n\n/* Active (focused) cell \u2014 solid 2px inset border, no background */\n.pg-cell--active-cell {\n background-color: transparent !important;\n box-shadow: inset 0 0 0 2px var(--pg-colors-primary, #2563eb) !important;\n position: relative;\n z-index: 2;\n outline: none;\n}\n/* Suppress the ::after edge overlay only when the active cell is NOT inside a selection */\n.pg-cell--active-cell:not(.pg-cell--in-selection)::after { content: none; }\n\n/* Active cell inside a range \u2014 selection wins entirely: no 2px border, full selection look */\n.pg-cell--in-selection.pg-cell--active-cell {\n background-color: var(--pg-colors-selection-background, aliceblue) !important;\n box-shadow: none !important;\n}\n\n/* Dark-mode overrides */\n.pg-grid[data-theme=\"dark\"] .pg-cell--in-selection {\n background-color: rgba(37,99,235,0.18) !important;\n}\n.pg-grid[data-theme=\"dark\"] .pg-cell--sel-top { --_t: 2px; }\n.pg-grid[data-theme=\"dark\"] .pg-cell--sel-bottom { --_b: -2px; }\n.pg-grid[data-theme=\"dark\"] .pg-cell--sel-left { --_l: 2px; }\n.pg-grid[data-theme=\"dark\"] .pg-cell--sel-right { --_r: -2px; }\n.pg-grid[data-theme=\"dark\"] .pg-cell--active-cell {\n background-color: rgba(37,99,235,0.25) !important;\n box-shadow: inset 0 0 0 2px #60a5fa !important;\n}\n.pg-grid[data-theme=\"dark\"] .pg-cell--in-selection.pg-cell--active-cell {\n background-color: rgba(37,99,235,0.18) !important;\n box-shadow:\n inset 0 var(--_t) 0 0 #60a5fa,\n inset 0 var(--_b) 0 0 #60a5fa,\n inset var(--_l) 0 0 0 #60a5fa,\n inset var(--_r) 0 0 0 #60a5fa !important;\n}\n\n/* \u2500\u2500\u2500 Group aggregate cells \u2500\u2500\u2500 */\n/*\n * Aggregate values are displayed inside .pg-cell--agg cells that sit directly\n * under their column headers, aligned with normal data-row cells via the same\n * [data-col-id] width rules managed by ColumnStyleManager.\n */\n.pg-cell--agg {\n color: var(--pg-colors-agg-text, var(--pg-colors-text-secondary, #475569));\n font-style: italic;\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n}\n.pg-grid[data-theme=\"dark\"] .pg-cell--agg {\n color: var(--pg-colors-agg-text, var(--pg-colors-text-secondary, #94a3b8));\n}\n\n/* \u2500\u2500\u2500 Copy / Cut flash feedback \u2500\u2500\u2500 */\n/*\n * background-color: !important on pg-cell--in-selection blocks keyframe bg changes.\n * Use a ::after overlay instead \u2014 it's a separate layer, no !important conflict.\n */\n@keyframes pg-copy-flash-overlay {\n 0% { opacity: 0; }\n 15% { opacity: 1; }\n 100% { opacity: 0; }\n}\n@keyframes pg-cut-flash-overlay {\n 0% { opacity: 0; }\n 15% { opacity: 1; }\n 100% { opacity: 0; }\n}\n/*\n * Flash overlay uses ::before so it never conflicts with the ::after\n * pseudo-element that draws the selection edge borders.\n */\n.pg-cell--copy-flash::before,\n.pg-cell--cut-flash::before {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 5;\n}\n.pg-cell--copy-flash::before {\n background: rgba(59, 130, 246, 0.45);\n animation: pg-copy-flash-overlay 0.75s ease-out forwards;\n}\n.pg-cell--cut-flash::before {\n background: rgba(239, 68, 68, 0.45);\n animation: pg-cut-flash-overlay 0.75s ease-out forwards;\n}\n/* Dark mode uses stronger overlay */\n.pg-grid[data-theme=\"dark\"] .pg-cell--copy-flash::before {\n background: rgba(99, 165, 253, 0.5);\n}\n.pg-grid[data-theme=\"dark\"] .pg-cell--cut-flash::before {\n background: rgba(252, 100, 100, 0.5);\n}\n\n/* \u2500\u2500\u2500 Fill success flash \u2500\u2500\u2500 */\n/*\n * Applied to the newly filled cells after a fill-handle drag completes.\n * Uses ::before (same as copy/cut flash) so it never conflicts with the\n * selection edge border drawn on ::after.\n */\n@keyframes pg-fill-flash-overlay {\n 0% { opacity: 0; }\n 20% { opacity: 1; }\n 100% { opacity: 0; }\n}\n.pg-cell--fill-flash::before {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 5;\n background: rgba(34, 197, 94, 0.45);\n animation: pg-fill-flash-overlay 0.75s ease-out forwards;\n}\n.pg-grid[data-theme=\"dark\"] .pg-cell--fill-flash::before {\n background: rgba(74, 222, 128, 0.5);\n}\n\n/* \u2500\u2500\u2500 Programmatic cell flash (GridApi.flashCells) \u2500\u2500\u2500 */\n/*\n * A neutral highlight pulse used to draw attention to cells that changed via\n * the public API (e.g. after a data refresh). Uses ::before like the other\n * flashes so it never conflicts with the selection border drawn on ::after.\n */\n.pg-cell--flash::before {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 5;\n background: rgba(59, 130, 246, 0.40);\n animation: pg-fill-flash-overlay 0.75s ease-out forwards;\n}\n.pg-grid[data-theme=\"dark\"] .pg-cell--flash::before {\n background: rgba(96, 165, 250, 0.45);\n}\n\n/* \u2500\u2500\u2500 Fill handle \u2500\u2500\u2500 */\n/*\n * The fill handle is a small drag target at the bottom-right corner of the\n * primary selection range. It lives inside the corner cell as an absolutely-\n * positioned child so it scrolls with the grid naturally.\n *\n * pg-cell--has-fill-handle lets the handle extend 4 px past the cell edge\n * (standard AG Grid behaviour) by lifting overflow:hidden on that one cell.\n *\n * Dragging from the handle copies the source range into the dragged area in\n * one direction at a time; a dashed overlay (pg-cell--fill-preview) previews\n * the fill area before the mouse button is released.\n */\n.pg-cell--has-fill-handle {\n overflow: visible !important;\n}\n.pg-fill-handle {\n position: absolute;\n right: 0px;\n bottom: 0px;\n width: 6px;\n height: 6px;\n box-sizing: border-box;\n background-color: var(--pg-colors-primary, #2563eb);\n cursor: crosshair;\n z-index: 10;\n pointer-events: auto;\n user-select: none;\n}\n\n/* \u2500\u2500\u2500 Fill preview \u2014 dashed border on cells being hovered during fill drag \u2500\u2500\u2500 */\n.pg-cell--fill-preview {\n background-color: var(--pg-colors-selection-background, aliceblue) !important;\n position: relative;\n z-index: 1;\n}\n/*\n * The fill-preview ::after uses a dashed border (vs the solid selection border)\n * to clearly distinguish \"about to be filled\" from \"already selected.\"\n * These classes are orthogonal to sel-top/bottom/left/right \u2014 fill-preview\n * cells are never pg-cell--in-selection, so there is no ::after conflict.\n */\n.pg-cell--fill-preview::after {\n content: '';\n position: absolute;\n inset: 0;\n border: 0 dashed var(--pg-colors-primary, #2563eb);\n pointer-events: none;\n}\n.pg-cell--fp-top::after { border-top-width: 1px; }\n.pg-cell--fp-bottom::after { border-bottom-width: 1px; }\n.pg-cell--fp-left::after { border-left-width: 1px; }\n.pg-cell--fp-right::after { border-right-width: 1px; }\n\n.pg-grid[data-theme=\"dark\"] .pg-cell--fill-preview {\n background-color: rgba(37, 99, 235, 0.12) !important;\n}\n\n";
8
+ export declare const cellsCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Cells \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-cell {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n min-width: var(--pg-sizing-column-min-width, 40px);\n border-right: 1px solid transparent;\n padding: 0;\n overflow: hidden;\n position: relative;\n}\n.pg-cell--v-border { border-right-color: var(--pg-colors-border, #e2e8f0); }\n.pg-cell:last-child { border-right: none; }\n.pg-cell--align-right { justify-content: flex-end; }\n.pg-cell--align-center { justify-content: center; }\n.pg-cell--align-right .pg-cell__inner { text-align: right; }\n.pg-cell--align-center .pg-cell__inner { text-align: center; }\n\n/* \u2500\u2500\u2500 Cell selection (CSS-based, replaces canvas) \u2500\u2500\u2500 */\n/* Suppress the browser's native focus ring \u2014 the grid uses its own blue\n box-shadow indicator on .pg-cell--active-cell instead. */\n.pg-cell { user-select: none; outline: none; }\n\n/*\n * Range selection \u2014 edge borders drawn via ::after so CSS border corners\n * always connect cleanly (no box-shadow joining artefacts).\n * The JS engine adds sel-top/right/bottom/left only on cells that sit on\n * the outer edge of the range; interior cells carry no edge classes.\n */\n.pg-cell--in-selection {\n background-color: var(--pg-colors-selection-background, aliceblue) !important;\n position: relative;\n z-index: 1;\n}\n.pg-cell--in-selection::after {\n content: '';\n position: absolute;\n inset: 0;\n border: 0 solid var(--pg-colors-primary, #2563eb);\n pointer-events: none;\n}\n.pg-cell--sel-top::after { border-top-width: 1px; }\n.pg-cell--sel-bottom::after { border-bottom-width: 1px; }\n.pg-cell--sel-left::after { border-left-width: 1px; }\n.pg-cell--sel-right::after { border-right-width: 1px; }\n\n/* Active (focused) cell \u2014 solid 2px inset border, no background */\n.pg-cell--active-cell {\n background-color: transparent !important;\n box-shadow: inset 0 0 0 2px var(--pg-colors-primary, #2563eb) !important;\n position: relative;\n z-index: 2;\n outline: none;\n}\n/* Suppress the ::after edge overlay only when the active cell is NOT inside a selection */\n.pg-cell--active-cell:not(.pg-cell--in-selection)::after { content: none; }\n\n/* Active cell inside a range \u2014 selection wins entirely: no 2px border, full selection look */\n.pg-cell--in-selection.pg-cell--active-cell {\n background-color: var(--pg-colors-selection-background, aliceblue) !important;\n box-shadow: none !important;\n}\n\n/* Dark-mode overrides */\n[data-pg-mode=\"dark\"] .pg-cell--in-selection {\n background-color: rgba(37,99,235,0.18) !important;\n}\n[data-pg-mode=\"dark\"] .pg-cell--sel-top { --_t: 2px; }\n[data-pg-mode=\"dark\"] .pg-cell--sel-bottom { --_b: -2px; }\n[data-pg-mode=\"dark\"] .pg-cell--sel-left { --_l: 2px; }\n[data-pg-mode=\"dark\"] .pg-cell--sel-right { --_r: -2px; }\n[data-pg-mode=\"dark\"] .pg-cell--active-cell {\n background-color: rgba(37,99,235,0.25) !important;\n box-shadow: inset 0 0 0 2px #60a5fa !important;\n}\n[data-pg-mode=\"dark\"] .pg-cell--in-selection.pg-cell--active-cell {\n background-color: rgba(37,99,235,0.18) !important;\n box-shadow:\n inset 0 var(--_t) 0 0 #60a5fa,\n inset 0 var(--_b) 0 0 #60a5fa,\n inset var(--_l) 0 0 0 #60a5fa,\n inset var(--_r) 0 0 0 #60a5fa !important;\n}\n\n/* \u2500\u2500\u2500 Group aggregate cells \u2500\u2500\u2500 */\n/*\n * Aggregate values are displayed inside .pg-cell--agg cells that sit directly\n * under their column headers, aligned with normal data-row cells via the same\n * [data-col-id] width rules managed by ColumnStyleManager.\n */\n.pg-cell--agg {\n color: var(--pg-colors-agg-text, var(--pg-colors-text-secondary, #475569));\n font-style: italic;\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n}\n[data-pg-mode=\"dark\"] .pg-cell--agg {\n color: var(--pg-colors-agg-text, var(--pg-colors-text-secondary, #94a3b8));\n}\n\n/* \u2500\u2500\u2500 Copy / Cut flash feedback \u2500\u2500\u2500 */\n/*\n * background-color: !important on pg-cell--in-selection blocks keyframe bg changes.\n * Use a ::after overlay instead \u2014 it's a separate layer, no !important conflict.\n */\n@keyframes pg-copy-flash-overlay {\n 0% { opacity: 0; }\n 15% { opacity: 1; }\n 100% { opacity: 0; }\n}\n@keyframes pg-cut-flash-overlay {\n 0% { opacity: 0; }\n 15% { opacity: 1; }\n 100% { opacity: 0; }\n}\n/*\n * Flash overlay uses ::before so it never conflicts with the ::after\n * pseudo-element that draws the selection edge borders.\n */\n.pg-cell--copy-flash::before,\n.pg-cell--cut-flash::before {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 5;\n}\n.pg-cell--copy-flash::before {\n background: rgba(59, 130, 246, 0.45);\n animation: pg-copy-flash-overlay 0.75s ease-out forwards;\n}\n.pg-cell--cut-flash::before {\n background: rgba(239, 68, 68, 0.45);\n animation: pg-cut-flash-overlay 0.75s ease-out forwards;\n}\n/* Dark mode uses stronger overlay */\n[data-pg-mode=\"dark\"] .pg-cell--copy-flash::before {\n background: rgba(99, 165, 253, 0.5);\n}\n[data-pg-mode=\"dark\"] .pg-cell--cut-flash::before {\n background: rgba(252, 100, 100, 0.5);\n}\n\n/* \u2500\u2500\u2500 Fill success flash \u2500\u2500\u2500 */\n/*\n * Applied to the newly filled cells after a fill-handle drag completes.\n * Uses ::before (same as copy/cut flash) so it never conflicts with the\n * selection edge border drawn on ::after.\n */\n@keyframes pg-fill-flash-overlay {\n 0% { opacity: 0; }\n 20% { opacity: 1; }\n 100% { opacity: 0; }\n}\n.pg-cell--fill-flash::before {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 5;\n background: rgba(34, 197, 94, 0.45);\n animation: pg-fill-flash-overlay 0.75s ease-out forwards;\n}\n[data-pg-mode=\"dark\"] .pg-cell--fill-flash::before {\n background: rgba(74, 222, 128, 0.5);\n}\n\n/* \u2500\u2500\u2500 Programmatic cell flash (GridApi.flashCells) \u2500\u2500\u2500 */\n/*\n * A neutral highlight pulse used to draw attention to cells that changed via\n * the public API (e.g. after a data refresh). Uses ::before like the other\n * flashes so it never conflicts with the selection border drawn on ::after.\n */\n.pg-cell--flash::before {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 5;\n background: rgba(59, 130, 246, 0.40);\n animation: pg-fill-flash-overlay 0.75s ease-out forwards;\n}\n[data-pg-mode=\"dark\"] .pg-cell--flash::before {\n background: rgba(96, 165, 250, 0.45);\n}\n\n/* \u2500\u2500\u2500 Fill handle \u2500\u2500\u2500 */\n/*\n * The fill handle is a small drag target at the bottom-right corner of the\n * primary selection range. It lives inside the corner cell as an absolutely-\n * positioned child so it scrolls with the grid naturally.\n *\n * pg-cell--has-fill-handle lets the handle extend 4 px past the cell edge\n * (standard AG Grid behaviour) by lifting overflow:hidden on that one cell.\n *\n * Dragging from the handle copies the source range into the dragged area in\n * one direction at a time; a dashed overlay (pg-cell--fill-preview) previews\n * the fill area before the mouse button is released.\n */\n.pg-cell--has-fill-handle {\n overflow: visible !important;\n}\n.pg-fill-handle {\n position: absolute;\n right: 0px;\n bottom: 0px;\n width: 6px;\n height: 6px;\n box-sizing: border-box;\n background-color: var(--pg-colors-primary, #2563eb);\n cursor: crosshair;\n z-index: 10;\n pointer-events: auto;\n user-select: none;\n}\n\n/* \u2500\u2500\u2500 Fill preview \u2014 dashed border on cells being hovered during fill drag \u2500\u2500\u2500 */\n.pg-cell--fill-preview {\n background-color: var(--pg-colors-selection-background, aliceblue) !important;\n position: relative;\n z-index: 1;\n}\n/*\n * The fill-preview ::after uses a dashed border (vs the solid selection border)\n * to clearly distinguish \"about to be filled\" from \"already selected.\"\n * These classes are orthogonal to sel-top/bottom/left/right \u2014 fill-preview\n * cells are never pg-cell--in-selection, so there is no ::after conflict.\n */\n.pg-cell--fill-preview::after {\n content: '';\n position: absolute;\n inset: 0;\n border: 0 dashed var(--pg-colors-primary, #2563eb);\n pointer-events: none;\n}\n.pg-cell--fp-top::after { border-top-width: 1px; }\n.pg-cell--fp-bottom::after { border-bottom-width: 1px; }\n.pg-cell--fp-left::after { border-left-width: 1px; }\n.pg-cell--fp-right::after { border-right-width: 1px; }\n\n[data-pg-mode=\"dark\"] .pg-cell--fill-preview {\n background-color: rgba(37, 99, 235, 0.12) !important;\n}\n\n";
9
9
  //# sourceMappingURL=cells.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cells.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/cells.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,6wRAmPpB,CAAC"}
1
+ {"version":3,"file":"cells.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/cells.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,+rRAmPpB,CAAC"}
@@ -69,18 +69,18 @@ export const cellsCss = `/* ─────────────────
69
69
  }
70
70
 
71
71
  /* Dark-mode overrides */
72
- .pg-grid[data-theme="dark"] .pg-cell--in-selection {
72
+ [data-pg-mode="dark"] .pg-cell--in-selection {
73
73
  background-color: rgba(37,99,235,0.18) !important;
74
74
  }
75
- .pg-grid[data-theme="dark"] .pg-cell--sel-top { --_t: 2px; }
76
- .pg-grid[data-theme="dark"] .pg-cell--sel-bottom { --_b: -2px; }
77
- .pg-grid[data-theme="dark"] .pg-cell--sel-left { --_l: 2px; }
78
- .pg-grid[data-theme="dark"] .pg-cell--sel-right { --_r: -2px; }
79
- .pg-grid[data-theme="dark"] .pg-cell--active-cell {
75
+ [data-pg-mode="dark"] .pg-cell--sel-top { --_t: 2px; }
76
+ [data-pg-mode="dark"] .pg-cell--sel-bottom { --_b: -2px; }
77
+ [data-pg-mode="dark"] .pg-cell--sel-left { --_l: 2px; }
78
+ [data-pg-mode="dark"] .pg-cell--sel-right { --_r: -2px; }
79
+ [data-pg-mode="dark"] .pg-cell--active-cell {
80
80
  background-color: rgba(37,99,235,0.25) !important;
81
81
  box-shadow: inset 0 0 0 2px #60a5fa !important;
82
82
  }
83
- .pg-grid[data-theme="dark"] .pg-cell--in-selection.pg-cell--active-cell {
83
+ [data-pg-mode="dark"] .pg-cell--in-selection.pg-cell--active-cell {
84
84
  background-color: rgba(37,99,235,0.18) !important;
85
85
  box-shadow:
86
86
  inset 0 var(--_t) 0 0 #60a5fa,
@@ -100,7 +100,7 @@ export const cellsCss = `/* ─────────────────
100
100
  font-style: italic;
101
101
  font-weight: var(--pg-typography-font-weight-semi-bold, 600);
102
102
  }
103
- .pg-grid[data-theme="dark"] .pg-cell--agg {
103
+ [data-pg-mode="dark"] .pg-cell--agg {
104
104
  color: var(--pg-colors-agg-text, var(--pg-colors-text-secondary, #94a3b8));
105
105
  }
106
106
 
@@ -140,10 +140,10 @@ export const cellsCss = `/* ─────────────────
140
140
  animation: pg-cut-flash-overlay 0.75s ease-out forwards;
141
141
  }
142
142
  /* Dark mode uses stronger overlay */
143
- .pg-grid[data-theme="dark"] .pg-cell--copy-flash::before {
143
+ [data-pg-mode="dark"] .pg-cell--copy-flash::before {
144
144
  background: rgba(99, 165, 253, 0.5);
145
145
  }
146
- .pg-grid[data-theme="dark"] .pg-cell--cut-flash::before {
146
+ [data-pg-mode="dark"] .pg-cell--cut-flash::before {
147
147
  background: rgba(252, 100, 100, 0.5);
148
148
  }
149
149
 
@@ -167,7 +167,7 @@ export const cellsCss = `/* ─────────────────
167
167
  background: rgba(34, 197, 94, 0.45);
168
168
  animation: pg-fill-flash-overlay 0.75s ease-out forwards;
169
169
  }
170
- .pg-grid[data-theme="dark"] .pg-cell--fill-flash::before {
170
+ [data-pg-mode="dark"] .pg-cell--fill-flash::before {
171
171
  background: rgba(74, 222, 128, 0.5);
172
172
  }
173
173
 
@@ -186,7 +186,7 @@ export const cellsCss = `/* ─────────────────
186
186
  background: rgba(59, 130, 246, 0.40);
187
187
  animation: pg-fill-flash-overlay 0.75s ease-out forwards;
188
188
  }
189
- .pg-grid[data-theme="dark"] .pg-cell--flash::before {
189
+ [data-pg-mode="dark"] .pg-cell--flash::before {
190
190
  background: rgba(96, 165, 250, 0.45);
191
191
  }
192
192
 
@@ -244,7 +244,7 @@ export const cellsCss = `/* ─────────────────
244
244
  .pg-cell--fp-left::after { border-left-width: 1px; }
245
245
  .pg-cell--fp-right::after { border-right-width: 1px; }
246
246
 
247
- .pg-grid[data-theme="dark"] .pg-cell--fill-preview {
247
+ [data-pg-mode="dark"] .pg-cell--fill-preview {
248
248
  background-color: rgba(37, 99, 235, 0.12) !important;
249
249
  }
250
250
 
@@ -5,5 +5,5 @@
5
5
  * base-styles.ts; edit here, not there. Order is preserved because CSS
6
6
  * cascade depends on it.
7
7
  */
8
- export declare const columnContextMenuCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Column Context Menu \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Menu container \u2014 fixed-position dropdown attached to document.body.\n Height is capped so the menu never grows into the viewport's top/bottom\n 200px; content beyond that scrolls internally via overflow-y instead of\n being clipped. Fly-out submenus (.pg-col-ctx-menu__submenu) are portaled to\n document.body while open rather than nested here, so this container's\n scroll clipping never cuts them off on the X axis. */\n.pg-col-ctx-menu {\n position: fixed;\n z-index: 9999;\n min-width: 220px;\n max-width: 300px;\n max-height: calc(100% - 200px);\n overflow-y: auto;\n overflow-x: hidden;\n padding: 4px;\n background: var(--pg-colors-surface, #ffffff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-dropdown, 0 8px 24px rgba(15, 23, 42, 0.12));\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n font-size: var(--pg-typography-font-size-sm, 13px);\n color: var(--pg-colors-text-primary, #0f172a);\n user-select: none;\n outline: none;\n}\n\n/* Horizontal divider between section groups */\n.pg-col-ctx-menu__separator {\n border-top: 1px solid var(--pg-colors-border-col-ctxt-menu, #e2e8f0);\n background: var(--pg-colors-border, #e2e8f0);\n margin: 4px 0;\n}\n\n/* \u2500\u2500 Menu items \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Base item \u2014 covers both leaf items and parent (submenu-trigger) items */\n.pg-col-ctx-menu__item {\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 10px;\n border-radius: var(--pg-borders-radius-sm, 4px);\n cursor: pointer;\n transition: background var(--pg-transitions-fast, 80ms ease);\n outline: none;\n white-space: nowrap;\n}\n\n.pg-col-ctx-menu__item:hover,\n.pg-col-ctx-menu__item:focus-visible {\n background: var(--pg-colors-background-alt, #f1f5f9);\n}\n\n/* Highlighted / \"currently applied\" item (e.g. active sort direction) */\n.pg-col-ctx-menu__item--active {\n color: var(--pg-colors-primary, #2563eb);\n font-weight: 600;\n}\n\n/* Trailing check mark for a currently-selected leaf (e.g. the chosen aggregate). */\n.pg-col-ctx-menu__item-check {\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding-left: 12px;\n color: var(--pg-colors-primary, #2563eb);\n}\n\n/* Disabled item \u2014 rendered but not interactive */\n.pg-col-ctx-menu__item--disabled {\n opacity: 0.38;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* \u2500\u2500 Item anatomy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Leading icon */\n.pg-col-ctx-menu__item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n opacity: 0.6;\n}\n\n.pg-col-ctx-menu__item--active .pg-col-ctx-menu__item-icon {\n opacity: 1;\n}\n\n/* Text label \u2014 fills remaining space */\n.pg-col-ctx-menu__item-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Trailing chevron indicating a fly-out submenu */\n.pg-col-ctx-menu__item-chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n opacity: 0.4;\n margin-left: 4px;\n transition: opacity var(--pg-transitions-fast, 80ms ease);\n}\n\n.pg-col-ctx-menu__item--has-submenu:hover .pg-col-ctx-menu__item-chevron {\n opacity: 0.75;\n}\n\n/* \u2500\u2500 Fly-out submenu \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Hidden by default; shown when JS adds --open. Positioned fixed rather than\n absolute-within-parent because it is portaled to document.body while open\n (see ColumnMenu.openSubmenu) \u2014 left/top are set inline in viewport\n coordinates by adjustSubmenuPosition. */\n.pg-col-ctx-menu__submenu {\n display: none;\n position: fixed;\n min-width: 180px;\n padding: 4px;\n background: var(--pg-colors-surface, #ffffff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-dropdown, 0 8px 24px rgba(15, 23, 42, 0.12));\n z-index: 10000;\n}\n\n/* JS-controlled open state */\n.pg-col-ctx-menu__submenu--open {\n display: block;\n}\n\n/* Invisible hover bridge \u2014 prevents flicker when mouse crosses from\n parent item edge into the submenu. Extends 6px to the left of the submenu. */\n.pg-col-ctx-menu__submenu--open::before {\n content: '';\n position: absolute;\n right: 100%;\n top: 0;\n width: 8px;\n height: 100%;\n}\n\n";
8
+ export declare const columnContextMenuCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Column Context Menu \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Menu container \u2014 fixed-position dropdown attached to document.body.\n Height is capped so the menu never grows into the viewport's top/bottom\n 200px; content beyond that scrolls internally via overflow-y instead of\n being clipped. Fly-out submenus (.pg-col-ctx-menu__submenu) are portaled to\n document.body while open rather than nested here, so this container's\n scroll clipping never cuts them off on the X axis. */\n.pg-col-ctx-menu {\n position: fixed;\n z-index: 9999;\n min-width: 220px;\n max-width: 300px;\n max-height: calc(100% - 200px);\n overflow-y: auto;\n overflow-x: hidden;\n padding: 4px;\n background: var(--pg-colors-surface, #ffffff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-dropdown, 0 8px 24px rgba(15, 23, 42, 0.12));\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n font-size: var(--pg-typography-font-size-sm, 13px);\n color: var(--pg-colors-text-primary, #0f172a);\n user-select: none;\n outline: none;\n /* Theme the internal overflow scrollbar so it matches the surface in dark\n mode too (the menu is portaled to <body>, outside the grid's own\n scrollbar styling \u2014 these tokens are mirrored onto :root by ThemeManager). */\n scrollbar-width: thin;\n scrollbar-color: var(--pg-colors-scrollbar-thumb, #cbd5e1) var(--pg-colors-scrollbar-track, #f1f5f9);\n}\n\n/* Horizontal divider between section groups.\n Uses the themed border token \u2014 a non-existent token here would fall back to\n a hardcoded light value and paint a bright line in dark mode. */\n.pg-col-ctx-menu__separator {\n height: 1px;\n background: var(--pg-colors-border, #e2e8f0);\n margin: 4px 0;\n}\n\n/* \u2500\u2500 Menu items \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Base item \u2014 covers both leaf items and parent (submenu-trigger) items */\n.pg-col-ctx-menu__item {\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 10px;\n border-radius: var(--pg-borders-radius-sm, 4px);\n cursor: pointer;\n transition: background var(--pg-transitions-duration-fast, 80ms) ease;\n outline: none;\n white-space: nowrap;\n}\n\n/* Hover / keyboard-focus background. Uses header-hover (distinct from the menu\n surface in both light and dark themes) rather than background-alt, which\n collapses to the surface colour in dark mode and leaves hover invisible. */\n.pg-col-ctx-menu__item:hover,\n.pg-col-ctx-menu__item:focus-visible {\n background: var(--pg-colors-header-hover, #f1f5f9);\n}\n\n/* Highlighted / \"currently applied\" item (e.g. active sort direction) */\n.pg-col-ctx-menu__item--active {\n color: var(--pg-colors-primary, #2563eb);\n font-weight: 600;\n}\n\n/* Trailing check mark for a currently-selected leaf (e.g. the chosen aggregate). */\n.pg-col-ctx-menu__item-check {\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding-left: 12px;\n color: var(--pg-colors-primary, #2563eb);\n}\n\n/* Disabled item \u2014 rendered but not interactive */\n.pg-col-ctx-menu__item--disabled {\n opacity: 0.38;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* \u2500\u2500 Item anatomy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Leading icon */\n.pg-col-ctx-menu__item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n opacity: 0.6;\n}\n\n.pg-col-ctx-menu__item--active .pg-col-ctx-menu__item-icon {\n opacity: 1;\n}\n\n/* Text label \u2014 fills remaining space */\n.pg-col-ctx-menu__item-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Trailing chevron indicating a fly-out submenu */\n.pg-col-ctx-menu__item-chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n opacity: 0.4;\n margin-left: 4px;\n transition: opacity var(--pg-transitions-duration-fast, 80ms) ease;\n}\n\n.pg-col-ctx-menu__item--has-submenu:hover .pg-col-ctx-menu__item-chevron {\n opacity: 0.75;\n}\n\n/* \u2500\u2500 Fly-out submenu \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Hidden by default; shown when JS adds --open. Positioned fixed rather than\n absolute-within-parent because it is portaled to document.body while open\n (see ColumnMenu.openSubmenu) \u2014 left/top are set inline in viewport\n coordinates by adjustSubmenuPosition. */\n.pg-col-ctx-menu__submenu {\n display: none;\n position: fixed;\n min-width: 180px;\n padding: 4px;\n background: var(--pg-colors-surface, #ffffff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-dropdown, 0 8px 24px rgba(15, 23, 42, 0.12));\n /* Portaled to <body>, so it no longer inherits the parent menu's text color\n (set on .pg-column-context-menu) \u2014 declare it explicitly, or items fall\n back to the browser default black and are unreadable in dark mode. */\n color: var(--pg-colors-text-primary, #0f172a);\n z-index: 10000;\n}\n\n/* JS-controlled open state */\n.pg-col-ctx-menu__submenu--open {\n display: block;\n}\n\n/* Invisible hover bridge \u2014 prevents flicker when mouse crosses from\n parent item edge into the submenu. Extends 6px to the left of the submenu. */\n.pg-col-ctx-menu__submenu--open::before {\n content: '';\n position: absolute;\n right: 100%;\n top: 0;\n width: 8px;\n height: 100%;\n}\n\n";
9
9
  //# sourceMappingURL=column-context-menu.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"column-context-menu.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/column-context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,k7KA0JhC,CAAC"}
1
+ {"version":3,"file":"column-context-menu.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/column-context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,i6MAwKhC,CAAC"}
@@ -31,11 +31,18 @@ export const columnContextMenuCss = `/* ─────────────
31
31
  color: var(--pg-colors-text-primary, #0f172a);
32
32
  user-select: none;
33
33
  outline: none;
34
+ /* Theme the internal overflow scrollbar so it matches the surface in dark
35
+ mode too (the menu is portaled to <body>, outside the grid's own
36
+ scrollbar styling — these tokens are mirrored onto :root by ThemeManager). */
37
+ scrollbar-width: thin;
38
+ scrollbar-color: var(--pg-colors-scrollbar-thumb, #cbd5e1) var(--pg-colors-scrollbar-track, #f1f5f9);
34
39
  }
35
40
 
36
- /* Horizontal divider between section groups */
41
+ /* Horizontal divider between section groups.
42
+ Uses the themed border token — a non-existent token here would fall back to
43
+ a hardcoded light value and paint a bright line in dark mode. */
37
44
  .pg-col-ctx-menu__separator {
38
- border-top: 1px solid var(--pg-colors-border-col-ctxt-menu, #e2e8f0);
45
+ height: 1px;
39
46
  background: var(--pg-colors-border, #e2e8f0);
40
47
  margin: 4px 0;
41
48
  }
@@ -51,14 +58,17 @@ export const columnContextMenuCss = `/* ─────────────
51
58
  padding: 7px 10px;
52
59
  border-radius: var(--pg-borders-radius-sm, 4px);
53
60
  cursor: pointer;
54
- transition: background var(--pg-transitions-fast, 80ms ease);
61
+ transition: background var(--pg-transitions-duration-fast, 80ms) ease;
55
62
  outline: none;
56
63
  white-space: nowrap;
57
64
  }
58
65
 
66
+ /* Hover / keyboard-focus background. Uses header-hover (distinct from the menu
67
+ surface in both light and dark themes) rather than background-alt, which
68
+ collapses to the surface colour in dark mode and leaves hover invisible. */
59
69
  .pg-col-ctx-menu__item:hover,
60
70
  .pg-col-ctx-menu__item:focus-visible {
61
- background: var(--pg-colors-background-alt, #f1f5f9);
71
+ background: var(--pg-colors-header-hover, #f1f5f9);
62
72
  }
63
73
 
64
74
  /* Highlighted / "currently applied" item (e.g. active sort direction) */
@@ -118,7 +128,7 @@ export const columnContextMenuCss = `/* ─────────────
118
128
  height: 14px;
119
129
  opacity: 0.4;
120
130
  margin-left: 4px;
121
- transition: opacity var(--pg-transitions-fast, 80ms ease);
131
+ transition: opacity var(--pg-transitions-duration-fast, 80ms) ease;
122
132
  }
123
133
 
124
134
  .pg-col-ctx-menu__item--has-submenu:hover .pg-col-ctx-menu__item-chevron {
@@ -140,6 +150,10 @@ export const columnContextMenuCss = `/* ─────────────
140
150
  border: 1px solid var(--pg-colors-border, #e2e8f0);
141
151
  border-radius: var(--pg-borders-radius-md, 6px);
142
152
  box-shadow: var(--pg-shadows-dropdown, 0 8px 24px rgba(15, 23, 42, 0.12));
153
+ /* Portaled to <body>, so it no longer inherits the parent menu's text color
154
+ (set on .pg-column-context-menu) — declare it explicitly, or items fall
155
+ back to the browser default black and are unreadable in dark mode. */
156
+ color: var(--pg-colors-text-primary, #0f172a);
143
157
  z-index: 10000;
144
158
  }
145
159
 
@@ -1 +1 @@
1
- {"version":3,"file":"column-context-menu.css.js","sourceRoot":"","sources":["../../../src/styles/base/column-context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0JnC,CAAC"}
1
+ {"version":3,"file":"column-context-menu.css.js","sourceRoot":"","sources":["../../../src/styles/base/column-context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwKnC,CAAC"}
@@ -5,5 +5,5 @@
5
5
  * base-styles.ts; edit here, not there. Order is preserved because CSS
6
6
  * cascade depends on it.
7
7
  */
8
- export declare const columnGroupHeaderCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Column group header rows \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-header-group-row {\n position: relative;\n flex-shrink: 0;\n height: var(--pg-header-row-height, 44px);\n background: var(--pg-colors-header-background, #f8fafc);\n border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-th--group {\n position: absolute;\n top: 0;\n height: 100%;\n display: flex;\n align-items: center;\n overflow: hidden;\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n background: var(--pg-colors-header-background, #f8fafc);\n cursor: pointer;\n outline: none;\n transition: background var(--pg-transitions-duration-fast, 100ms);\n font-weight: var(--pg-typography-header-font-weight, 600);\n font-size: var(--pg-typography-font-size-sm, 13px);\n color: var(--pg-colors-text-primary, #1e293b);\n user-select: none;\n}\n.pg-th--group:hover,\n.pg-th--group:focus-visible { background: var(--pg-colors-header-hover, #f1f5f9); }\n.pg-th--group--collapsed {\n background: var(--pg-colors-background-alt, #f1f5f9);\n justify-content: center;\n}\n// .pg-th--group--collapsed .pg-th__label { display: none; }\n.pg-th__collapse-btn {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n margin-right: 4px;\n border-radius: var(--pg-sizing-border-radius, 4px);\n color: var(--pg-colors-text-secondary, #475569);\n transition: background var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-th--group:hover .pg-th__collapse-btn,\n.pg-th--group:focus-visible .pg-th__collapse-btn {\n background: var(--pg-colors-background-alt, #f1f5f9);\n color: var(--pg-colors-primary, #2563eb);\n}\n.pg-th__resize-handle--group {\n position: absolute;\n right: 0;\n top: 0;\n width: 6px;\n height: 100%;\n cursor: col-resize;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n color: var(--pg-colors-resize-handle-color, #e2e8f0);\n z-index: 6;\n transition: opacity var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-th--group:hover .pg-th__resize-handle--group { opacity: 1; }\n\n/* \u2500\u2500 Flat columns alongside grouped headers \u2500\u2500 */\n/* A flat (ungrouped) leaf column in a grid that has grouped columns must span\n the full header height (group rows + leaf row) so it does not appear as a\n short stub next to taller group header cells.\n Strategy: keep the cell in normal flex flow (preserves horizontal layout),\n give it the combined height, and translateY it upward so its visual top\n aligns with the top of the header area. The panel header overflow:hidden\n clips exactly at the combined height, so nothing leaks outside the header.\n --pg-group-rows-count is set in JS by HeaderRenderer. */\n.pg-th--no-group {\n align-self: flex-start;\n position: relative;\n z-index: 2;\n height: calc((var(--pg-group-rows-count, 0) + 1) * var(--pg-header-row-height, 44px));\n transform: translate(var(--pg-drag-x, 0px), calc(var(--pg-group-rows-count, 0) * -1 * var(--pg-header-row-height, 44px)));\n}\n\n.pg-group-drop-indicator {\n position: absolute;\n top: 0;\n width: 2px;\n height: var(--pg-header-row-height, 44px);\n background: var(--pg-colors-primary, #2563eb);\n z-index: 20;\n pointer-events: none;\n border-radius: 1px;\n}\n.pg-th-group-filler { position: absolute; top: 0; height: 100%; }\n.pg-th--standalone-filler {\n position: absolute;\n top: 0;\n height: 100%;\n background: var(--pg-colors-header-background, #f8fafc);\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n pointer-events: none;\n cursor: default;\n}\n/* Filler cell in a group row for columns with no ancestor group at this depth.\n Blends with the header background \u2014 makes flat/shallow columns appear to span\n the full header height. No interactive elements, no bottom border. */\n.pg-th--depth-filler {\n position: absolute;\n top: 0;\n height: 100%;\n background: var(--pg-colors-header-background, #f8fafc);\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n pointer-events: none;\n cursor: default;\n z-index: 0;\n}\n\n@keyframes pg-drag-indicator-in { from { opacity: 0; } to { opacity: 1; } }\n\n/* Smooth column-shift animation \u2014 enabled ONLY while actively dragging a column */\n.pg-grid--col-dragging .pg-th[data-col-id],\n.pg-grid--col-dragging .pg-cell[data-col-id] {\n transform: translateX(var(--pg-drag-x, 0px));\n transition: transform 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94);\n will-change: transform;\n}\n.pg-grid--col-dragging .pg-th--no-group[data-col-id] {\n transform: translate(var(--pg-drag-x, 0px), calc(var(--pg-group-rows-count, 0) * -1 * var(--pg-header-row-height, 44px)));\n}\n\n/* During header auto-scroll the transforms update every RAF tick \u2014 disable the\n transition so cells snap instantly rather than endlessly chasing a moving target */\n.pg-grid--col-autoscrolling .pg-th[data-col-id],\n.pg-grid--col-autoscrolling .pg-cell[data-col-id] {\n transition: none;\n}\n/* Live-preview path (store mutations during drag): suppress all transitions */\n.pg-grid--drag-preview-sync .pg-th[data-col-id],\n.pg-grid--drag-preview-sync .pg-cell[data-col-id] {\n transition: none !important;\n}\n\n/* \u2500\u2500 Group-header CSS-transform drag \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * Cells shift via --pg-drag-x. The --pg-drag-transition variable is 0ms for\n * the actively-dragged group (injected by display-group-drag-handler.ts) and\n * falls back to the default 180ms for displaced neighbours \u2014 giving AG Grid-\n * style smooth animation for everything except the grabbed group itself.\n * body cells use the same variable so leaf columns and data rows stay in sync.\n */\n.pg-grid--group-dragging .pg-th--group {\n transform: translateX(var(--pg-drag-x, 0px));\n transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));\n will-change: transform;\n}\n.pg-grid--group-dragging .pg-th[data-col-id] {\n transform: translateX(var(--pg-drag-x, 0px));\n transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));\n}\n.pg-grid--group-dragging .pg-cell[data-col-id] {\n transform: translateX(var(--pg-drag-x, 0px));\n transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));\n}\n.pg-grid--group-dragging .pg-th--depth-filler {\n transform: translateX(var(--pg-drag-x, 0px));\n}\n.pg-grid--group-dragging .pg-th--no-group[data-col-id] {\n transform: translate(var(--pg-drag-x, 0px), calc(var(--pg-group-rows-count, 0) * -1 * var(--pg-header-row-height, 44px)));\n transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));\n}\n\n/* Column drag ghost (floating preview chip that follows the cursor) */\n.pg-col-drag-ghost {\n position: fixed;\n pointer-events: none;\n z-index: 9999;\n display: flex;\n align-items: center;\n gap: var(--pg-drag-ghost-gap, 8px);\n padding: 5px 12px 5px 10px;\n background: var(--pg-colors-drag-ghost-background, #fff);\n border: 1.5px solid var(--pg-colors-primary, #2563eb);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: 0 6px 24px rgba(0,0,0,0.13), 0 2px 8px rgba(37, 99, 235, 0.12);\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n color: var(--pg-colors-header-text, #374151);\n white-space: nowrap;\n user-select: none;\n transform: translateY(-50%);\n transition:\n border-color var(--pg-transitions-duration-fast, 100ms),\n box-shadow var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-col-drag-ghost__icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--pg-colors-primary, #2563eb);\n opacity: 0.7;\n}\n.pg-col-drag-ghost__label {\n flex: 1;\n min-width: 0;\n}\n\n/* Default icon visibility */\n.pg-col-drag-ghost__icon--move { display: inline-flex; }\n.pg-col-drag-ghost__icon--ban { display: none; }\n.pg-col-drag-ghost__icon--arrow-left { display: none; }\n.pg-col-drag-ghost__icon--arrow-right { display: none; }\n\n/* Hide-column state: amber ghost + eyeOff icon */\n.pg-col-drag-ghost__icon--hide { display: none; }\n.pg-col-drag-ghost--hide .pg-col-drag-ghost__icon--move { display: none; }\n.pg-col-drag-ghost--hide .pg-col-drag-ghost__icon--hide { display: inline-flex; color: var(--pg-colors-warning, #f59e0b); }\n.pg-col-drag-ghost--hide {\n border-color: var(--pg-colors-warning, #f59e0b);\n box-shadow: 0 6px 24px rgba(245,158,11,0.13), 0 2px 8px rgba(245,158,11,0.12);\n color: var(--pg-colors-warning, #f59e0b);\n}\n\n/* No-drop state: red ghost + ban icon */\n.pg-col-drag-ghost--no-drop {\n border-color: var(--pg-colors-danger, #ef4444);\n box-shadow: 0 6px 24px rgba(239,68,68,0.13), 0 2px 8px rgba(239,68,68,0.12);\n color: var(--pg-colors-danger, #ef4444);\n}\n.pg-col-drag-ghost--no-drop .pg-col-drag-ghost__icon { color: var(--pg-colors-danger, #ef4444); }\n.pg-col-drag-ghost--no-drop .pg-col-drag-ghost__icon--move { display: none; }\n.pg-col-drag-ghost--no-drop .pg-col-drag-ghost__icon--ban { display: inline-flex; }\n\n/* Outside-grid drop state: red ghost signals \"drop = hide all columns in group\" */\n.pg-col-drag-ghost--outside {\n border-color: var(--pg-colors-danger, #ef4444);\n box-shadow: 0 6px 24px rgba(239,68,68,0.18), 0 2px 8px rgba(239,68,68,0.14);\n color: var(--pg-colors-danger, #ef4444);\n opacity: 0.85;\n}\n.pg-col-drag-ghost--outside .pg-col-drag-ghost__label::after {\n content: ' (hide)';\n font-size: 10px;\n opacity: 0.7;\n}\n\n/* Auto-scroll state: directional arrow replaces move icon */\n@keyframes pg-scroll-arrow-left { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-4px); } }\n@keyframes pg-scroll-arrow-right { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }\n\n.pg-col-drag-ghost--scroll-left .pg-col-drag-ghost__icon--move,\n.pg-col-drag-ghost--scroll-right .pg-col-drag-ghost__icon--move { display: none; }\n.pg-col-drag-ghost--scroll-left .pg-col-drag-ghost__icon--arrow-left {\n display: inline-flex;\n animation: pg-scroll-arrow-left 700ms ease-in-out infinite;\n}\n.pg-col-drag-ghost--scroll-right .pg-col-drag-ghost__icon--arrow-right {\n display: inline-flex;\n animation: pg-scroll-arrow-right 700ms ease-in-out infinite;\n}\n\n";
8
+ export declare const columnGroupHeaderCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Column group header rows \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-header-group-row {\n position: relative;\n flex-shrink: 0;\n height: var(--pg-header-row-height, 44px);\n background: var(--pg-colors-header-background, #f8fafc);\n border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-th--group {\n position: absolute;\n top: 0;\n height: 100%;\n display: flex;\n align-items: center;\n overflow: hidden;\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n background: var(--pg-colors-header-background, #f8fafc);\n cursor: pointer;\n outline: none;\n transition: background var(--pg-transitions-duration-fast, 100ms);\n font-weight: var(--pg-typography-header-font-weight, 600);\n font-size: var(--pg-typography-font-size-sm, 13px);\n color: var(--pg-colors-text-primary, #1e293b);\n user-select: none;\n}\n.pg-th--group:hover,\n.pg-th--group:focus-visible { background: var(--pg-colors-header-hover, #f1f5f9); }\n.pg-th--group--collapsed {\n background: var(--pg-colors-background-alt, #f1f5f9);\n justify-content: center;\n}\n// .pg-th--group--collapsed .pg-th__label { display: none; }\n.pg-th__collapse-btn {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n margin-right: 4px;\n border-radius: var(--pg-sizing-border-radius, 4px);\n color: var(--pg-colors-text-secondary, #475569);\n transition: background var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-th--group:hover .pg-th__collapse-btn,\n.pg-th--group:focus-visible .pg-th__collapse-btn {\n background: var(--pg-colors-background-alt, #f1f5f9);\n color: var(--pg-colors-primary, #2563eb);\n}\n.pg-th__resize-handle--group {\n position: absolute;\n right: 0;\n top: 0;\n width: 6px;\n height: 100%;\n cursor: col-resize;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n color: var(--pg-colors-resize-handle-color, #e2e8f0);\n z-index: 6;\n transition: opacity var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-th--group:hover .pg-th__resize-handle--group { opacity: 1; }\n\n/* \u2500\u2500 Flat columns alongside grouped headers \u2500\u2500 */\n/* A flat (ungrouped) leaf column in a grid that has grouped columns must span\n the full header height (group rows + leaf row) so it does not appear as a\n short stub next to taller group header cells.\n Strategy: keep the cell in normal flex flow (preserves horizontal layout),\n give it the combined height, and translateY it upward so its visual top\n aligns with the top of the header area. The panel header overflow:hidden\n clips exactly at the combined height, so nothing leaks outside the header.\n --pg-group-rows-count is set in JS by HeaderRenderer. */\n.pg-th--no-group {\n align-self: flex-start;\n position: relative;\n z-index: 2;\n height: calc((var(--pg-group-rows-count, 0) + 1) * var(--pg-header-row-height, 44px));\n transform: translate(var(--pg-drag-x, 0px), calc(var(--pg-group-rows-count, 0) * -1 * var(--pg-header-row-height, 44px)));\n}\n\n.pg-group-drop-indicator {\n position: absolute;\n top: 0;\n width: 2px;\n height: var(--pg-header-row-height, 44px);\n background: var(--pg-colors-primary, #2563eb);\n z-index: 20;\n pointer-events: none;\n border-radius: 1px;\n}\n.pg-th-group-filler { position: absolute; top: 0; height: 100%; }\n.pg-th--standalone-filler {\n position: absolute;\n top: 0;\n height: 100%;\n background: var(--pg-colors-header-background, #f8fafc);\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n pointer-events: none;\n cursor: default;\n}\n/* Filler cell in a group row for columns with no ancestor group at this depth.\n Blends with the header background \u2014 makes flat/shallow columns appear to span\n the full header height. No interactive elements, no bottom border. */\n.pg-th--depth-filler {\n position: absolute;\n top: 0;\n height: 100%;\n background: var(--pg-colors-header-background, #f8fafc);\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n pointer-events: none;\n cursor: default;\n z-index: 0;\n}\n\n@keyframes pg-drag-indicator-in { from { opacity: 0; } to { opacity: 1; } }\n\n/* Smooth column-shift animation \u2014 enabled ONLY while actively dragging a column */\n.pg-grid--col-dragging .pg-th[data-col-id],\n.pg-grid--col-dragging .pg-filter-cell[data-col-id],\n.pg-grid--col-dragging .pg-cell[data-col-id] {\n transform: translateX(var(--pg-drag-x, 0px));\n transition: transform 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94);\n will-change: transform;\n}\n.pg-grid--col-dragging .pg-th--no-group[data-col-id] {\n transform: translate(var(--pg-drag-x, 0px), calc(var(--pg-group-rows-count, 0) * -1 * var(--pg-header-row-height, 44px)));\n}\n\n/* During header auto-scroll the transforms update every RAF tick \u2014 disable the\n transition so cells snap instantly rather than endlessly chasing a moving target */\n.pg-grid--col-autoscrolling .pg-th[data-col-id],\n.pg-grid--col-autoscrolling .pg-filter-cell[data-col-id],\n.pg-grid--col-autoscrolling .pg-cell[data-col-id] {\n transition: none;\n}\n/* Live-preview path (store mutations during drag): suppress all transitions */\n.pg-grid--drag-preview-sync .pg-th[data-col-id],\n.pg-grid--drag-preview-sync .pg-filter-cell[data-col-id],\n.pg-grid--drag-preview-sync .pg-cell[data-col-id] {\n transition: none !important;\n}\n\n/* \u2500\u2500 Group-header CSS-transform drag \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * Cells shift via --pg-drag-x. The --pg-drag-transition variable is 0ms for\n * the actively-dragged group (injected by display-group-drag-handler.ts) and\n * falls back to the default 180ms for displaced neighbours \u2014 giving AG Grid-\n * style smooth animation for everything except the grabbed group itself.\n * body cells use the same variable so leaf columns and data rows stay in sync.\n */\n.pg-grid--group-dragging .pg-th--group {\n transform: translateX(var(--pg-drag-x, 0px));\n transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));\n will-change: transform;\n}\n.pg-grid--group-dragging .pg-th[data-col-id] {\n transform: translateX(var(--pg-drag-x, 0px));\n transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));\n}\n.pg-grid--group-dragging .pg-filter-cell[data-col-id],\n.pg-grid--group-dragging .pg-cell[data-col-id] {\n transform: translateX(var(--pg-drag-x, 0px));\n transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));\n}\n.pg-grid--group-dragging .pg-th--depth-filler {\n transform: translateX(var(--pg-drag-x, 0px));\n}\n.pg-grid--group-dragging .pg-th--no-group[data-col-id] {\n transform: translate(var(--pg-drag-x, 0px), calc(var(--pg-group-rows-count, 0) * -1 * var(--pg-header-row-height, 44px)));\n transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));\n}\n\n/* Column drag ghost (floating preview chip that follows the cursor) */\n.pg-col-drag-ghost {\n position: fixed;\n pointer-events: none;\n z-index: 9999;\n display: flex;\n align-items: center;\n gap: var(--pg-drag-ghost-gap, 8px);\n padding: 5px 12px 5px 10px;\n background: var(--pg-colors-drag-ghost-background, var(--pg-colors-drag-preview-background, var(--pg-colors-surface, #fff)));\n border: 1.5px solid var(--pg-colors-primary, #2563eb);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: 0 6px 24px rgba(0,0,0,0.13), 0 2px 8px rgba(37, 99, 235, 0.12);\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n color: var(--pg-colors-header-text, #374151);\n white-space: nowrap;\n user-select: none;\n transform: translateY(-50%);\n transition:\n border-color var(--pg-transitions-duration-fast, 100ms),\n box-shadow var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-col-drag-ghost__icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--pg-colors-primary, #2563eb);\n opacity: 0.7;\n}\n.pg-col-drag-ghost__label {\n flex: 1;\n min-width: 0;\n}\n\n/* Default icon visibility */\n.pg-col-drag-ghost__icon--move { display: inline-flex; }\n.pg-col-drag-ghost__icon--ban { display: none; }\n.pg-col-drag-ghost__icon--arrow-left { display: none; }\n.pg-col-drag-ghost__icon--arrow-right { display: none; }\n\n/* Hide-column state: amber ghost + eyeOff icon */\n.pg-col-drag-ghost__icon--hide { display: none; }\n.pg-col-drag-ghost--hide .pg-col-drag-ghost__icon--move { display: none; }\n.pg-col-drag-ghost--hide .pg-col-drag-ghost__icon--hide { display: inline-flex; color: var(--pg-colors-warning, #f59e0b); }\n.pg-col-drag-ghost--hide {\n border-color: var(--pg-colors-warning, #f59e0b);\n box-shadow: 0 6px 24px rgba(245,158,11,0.13), 0 2px 8px rgba(245,158,11,0.12);\n color: var(--pg-colors-warning, #f59e0b);\n}\n\n/* No-drop state: red ghost + ban icon */\n.pg-col-drag-ghost--no-drop {\n border-color: var(--pg-colors-danger, #ef4444);\n box-shadow: 0 6px 24px rgba(239,68,68,0.13), 0 2px 8px rgba(239,68,68,0.12);\n color: var(--pg-colors-danger, #ef4444);\n}\n.pg-col-drag-ghost--no-drop .pg-col-drag-ghost__icon { color: var(--pg-colors-danger, #ef4444); }\n.pg-col-drag-ghost--no-drop .pg-col-drag-ghost__icon--move { display: none; }\n.pg-col-drag-ghost--no-drop .pg-col-drag-ghost__icon--ban { display: inline-flex; }\n\n/* Outside-grid drop state: red ghost signals \"drop = hide all columns in group\" */\n.pg-col-drag-ghost--outside {\n border-color: var(--pg-colors-danger, #ef4444);\n box-shadow: 0 6px 24px rgba(239,68,68,0.18), 0 2px 8px rgba(239,68,68,0.14);\n color: var(--pg-colors-danger, #ef4444);\n opacity: 0.85;\n}\n.pg-col-drag-ghost--outside .pg-col-drag-ghost__label::after {\n content: ' (hide)';\n font-size: 10px;\n opacity: 0.7;\n}\n\n/* Auto-scroll state: directional arrow replaces move icon */\n@keyframes pg-scroll-arrow-left { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-4px); } }\n@keyframes pg-scroll-arrow-right { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }\n\n.pg-col-drag-ghost--scroll-left .pg-col-drag-ghost__icon--move,\n.pg-col-drag-ghost--scroll-right .pg-col-drag-ghost__icon--move { display: none; }\n.pg-col-drag-ghost--scroll-left .pg-col-drag-ghost__icon--arrow-left {\n display: inline-flex;\n animation: pg-scroll-arrow-left 700ms ease-in-out infinite;\n}\n.pg-col-drag-ghost--scroll-right .pg-col-drag-ghost__icon--arrow-right {\n display: inline-flex;\n animation: pg-scroll-arrow-right 700ms ease-in-out infinite;\n}\n\n";
9
9
  //# sourceMappingURL=column-group-header.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"column-group-header.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/column-group-header.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,0sVAqQhC,CAAC"}
1
+ {"version":3,"file":"column-group-header.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/column-group-header.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,k/VAyQhC,CAAC"}
@@ -127,6 +127,7 @@ export const columnGroupHeaderCss = `/* ─────────────
127
127
 
128
128
  /* Smooth column-shift animation — enabled ONLY while actively dragging a column */
129
129
  .pg-grid--col-dragging .pg-th[data-col-id],
130
+ .pg-grid--col-dragging .pg-filter-cell[data-col-id],
130
131
  .pg-grid--col-dragging .pg-cell[data-col-id] {
131
132
  transform: translateX(var(--pg-drag-x, 0px));
132
133
  transition: transform 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
@@ -139,11 +140,13 @@ export const columnGroupHeaderCss = `/* ─────────────
139
140
  /* During header auto-scroll the transforms update every RAF tick — disable the
140
141
  transition so cells snap instantly rather than endlessly chasing a moving target */
141
142
  .pg-grid--col-autoscrolling .pg-th[data-col-id],
143
+ .pg-grid--col-autoscrolling .pg-filter-cell[data-col-id],
142
144
  .pg-grid--col-autoscrolling .pg-cell[data-col-id] {
143
145
  transition: none;
144
146
  }
145
147
  /* Live-preview path (store mutations during drag): suppress all transitions */
146
148
  .pg-grid--drag-preview-sync .pg-th[data-col-id],
149
+ .pg-grid--drag-preview-sync .pg-filter-cell[data-col-id],
147
150
  .pg-grid--drag-preview-sync .pg-cell[data-col-id] {
148
151
  transition: none !important;
149
152
  }
@@ -164,6 +167,7 @@ export const columnGroupHeaderCss = `/* ─────────────
164
167
  transform: translateX(var(--pg-drag-x, 0px));
165
168
  transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));
166
169
  }
170
+ .pg-grid--group-dragging .pg-filter-cell[data-col-id],
167
171
  .pg-grid--group-dragging .pg-cell[data-col-id] {
168
172
  transform: translateX(var(--pg-drag-x, 0px));
169
173
  transition: transform var(--pg-drag-transition, 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94));
@@ -185,7 +189,7 @@ export const columnGroupHeaderCss = `/* ─────────────
185
189
  align-items: center;
186
190
  gap: var(--pg-drag-ghost-gap, 8px);
187
191
  padding: 5px 12px 5px 10px;
188
- background: var(--pg-colors-drag-ghost-background, #fff);
192
+ background: var(--pg-colors-drag-ghost-background, var(--pg-colors-drag-preview-background, var(--pg-colors-surface, #fff)));
189
193
  border: 1.5px solid var(--pg-colors-primary, #2563eb);
190
194
  border-radius: var(--pg-borders-radius-md, 6px);
191
195
  box-shadow: 0 6px 24px rgba(0,0,0,0.13), 0 2px 8px rgba(37, 99, 235, 0.12);
@@ -1 +1 @@
1
- {"version":3,"file":"column-group-header.css.js","sourceRoot":"","sources":["../../../src/styles/base/column-group-header.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqQnC,CAAC"}
1
+ {"version":3,"file":"column-group-header.css.js","sourceRoot":"","sources":["../../../src/styles/base/column-group-header.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyQnC,CAAC"}
@@ -5,5 +5,5 @@
5
5
  * base-styles.ts; edit here, not there. Order is preserved because CSS
6
6
  * cascade depends on it.
7
7
  */
8
- export declare const contextMenuCss = "/* \u2500\u2500\u2500 Context menu \u2500\u2500\u2500 */\n.pg-context-menu {\n position: fixed;\n z-index: 999999;\n display: none;\n min-width: 192px;\n padding: 4px 0;\n background: var(--pg-colors-surface, #fff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-dropdown, 0 8px 24px rgba(0,0,0,0.12), 0 2px 6px rgba(0,0,0,0.07));\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n font-size: var(--pg-typography-font-size-md, 13px);\n}\n.pg-context-menu--visible { display: block; }\n.pg-context-menu__item {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 7px 14px;\n border: none;\n background: transparent;\n cursor: pointer;\n text-align: left;\n color: var(--pg-colors-text-primary, #0f172a);\n gap: 0;\n transition: background 80ms;\n}\n.pg-context-menu__item:hover { background: var(--pg-colors-background-alt, #f1f5f9); }\n.pg-context-menu__item:active { background: var(--pg-colors-border, #e2e8f0); }\n.pg-context-menu__label { flex: 1; }\n.pg-context-menu__kbd {\n font-size: var(--pg-typography-font-size-sm, 11px);\n color: var(--pg-colors-text-disabled, #94a3b8);\n letter-spacing: 0.01em;\n}\n.pg-context-menu__sep {\n margin: 4px 0;\n border-top: 1px solid var(--pg-colors-border-ctxt-menu, #e2e8f0);\n background: var(--pg-colors-border, #e2e8f0);\n}\n\n.pg-cell__inner {\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n padding: 0 12px;\n overflow: hidden;\n}\n.pg-cell__value {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--pg-typography-line-height-base, 1.5);\n}\n.pg-cell--checkbox {\n width: 44px;\n min-width: 44px;\n max-width: 44px;\n justify-content: center;\n flex-shrink: 0;\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-cell--serial {\n width: 52px;\n min-width: 52px;\n max-width: 52px;\n justify-content: center;\n flex-shrink: 0;\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n color: var(--pg-colors-text-secondary, #475569);\n font-size: var(--pg-typography-font-size-sm, 12px);\n}\n.pg-cell__serial { font-variant-numeric: tabular-nums; }\n.pg-cell--bool-true { color: var(--pg-colors-success, #16a34a); }\n.pg-cell--bool-false { color: var(--pg-colors-text-disabled, #94a3b8); }\n.pg-cell__image { border-radius: var(--pg-borders-radius-sm, 4px); object-fit: cover; }\n.pg-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: var(--pg-borders-radius-pill, 9999px);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: var(--pg-typography-font-weight-medium, 500);\n white-space: nowrap;\n}\n.pg-cell--range-selected { background: var(--pg-colors-selection-background, rgba(37,99,235,0.08)); }\n.pg-cell--editing { padding: 0;border-radius: 4px }\n.pg-cell--editing .pg-cell__inner { padding: 0; overflow: visible; }\n.pg-selection-canvas { position: absolute; top: 0; left: 0; pointer-events: none; z-index: 10; }\n\n";
8
+ export declare const contextMenuCss = "/* \u2500\u2500\u2500 Context menu \u2500\u2500\u2500 */\n.pg-context-menu {\n position: fixed;\n z-index: 999999;\n display: none;\n min-width: 192px;\n padding: 4px 0;\n background: var(--pg-colors-surface, #fff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-dropdown, 0 8px 24px rgba(0,0,0,0.12), 0 2px 6px rgba(0,0,0,0.07));\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n font-size: var(--pg-typography-font-size-md, 13px);\n}\n.pg-context-menu--visible { display: block; }\n.pg-context-menu__item {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 7px 14px;\n border: none;\n background: transparent;\n cursor: pointer;\n text-align: left;\n color: var(--pg-colors-text-primary, #0f172a);\n gap: 0;\n transition: background 80ms;\n}\n.pg-context-menu__item:hover { background: var(--pg-colors-background-alt, #f1f5f9); }\n.pg-context-menu__item:active { background: var(--pg-colors-border, #e2e8f0); }\n.pg-context-menu__label { flex: 1; }\n.pg-context-menu__kbd {\n font-size: var(--pg-typography-font-size-sm, 11px);\n color: var(--pg-colors-text-disabled, #94a3b8);\n letter-spacing: 0.01em;\n}\n.pg-context-menu__sep {\n margin: 4px 0;\n border-top: 1px solid var(--pg-colors-border-ctxt-menu, #e2e8f0);\n background: var(--pg-colors-border, #e2e8f0);\n}\n\n.pg-cell__inner {\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n padding: 0 12px;\n overflow: hidden;\n}\n.pg-cell__value {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--pg-typography-line-height-base, 1.5);\n}\n.pg-cell--checkbox {\n width: 44px;\n min-width: 44px;\n max-width: 44px;\n justify-content: center;\n flex-shrink: 0;\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-cell--serial {\n width: 52px;\n min-width: 52px;\n max-width: 52px;\n justify-content: center;\n flex-shrink: 0;\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n color: var(--pg-colors-text-secondary, #475569);\n font-size: var(--pg-typography-font-size-sm, 12px);\n}\n.pg-cell__serial { font-variant-numeric: tabular-nums; }\n/* Dark mode: tint the serial (row-number) column with the header/footer chrome\n background (which sits above the darker data-row background in dark themes) so\n the number gutter reads as grid chrome \u2014 matching the header and footer\n surfaces \u2014 rather than as data. Scoped to dark mode per design; variants that\n define their own serial-column chrome (e.g. quartz) still win via source order. */\n[data-pg-mode=\"dark\"] .pg-cell--serial {\n background: var(--pg-colors-header-background, var(--pg-colors-footer-background, #1e293b));\n}\n/* \u2500\u2500 Serial column as a row-selection column (opt-in) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n When serialColumnSelection is enabled, the \"#\" cell becomes an AG Grid\u2013style\n selection handle: mouse-down starts a row drag-selection. The selected-state\n outline is drawn around the whole row (see rows.css), not on this cell. */\n.pg-cell--serial-select {\n cursor: pointer;\n user-select: none;\n}\n.pg-cell--serial-select:hover {\n background: var(--pg-colors-header-hover, var(--pg-colors-background-alt, #f1f5f9));\n}\n.pg-cell--serial-select:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 2px var(--pg-colors-primary, #2563eb);\n}\n.pg-cell--bool-true { color: var(--pg-colors-success, #16a34a); }\n.pg-cell--bool-false { color: var(--pg-colors-text-disabled, #94a3b8); }\n.pg-cell__image { border-radius: var(--pg-borders-radius-sm, 4px); object-fit: cover; }\n.pg-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: var(--pg-borders-radius-pill, 9999px);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: var(--pg-typography-font-weight-medium, 500);\n white-space: nowrap;\n}\n.pg-cell--range-selected { background: var(--pg-colors-selection-background, rgba(37,99,235,0.08)); }\n.pg-cell--editing { padding: 0;border-radius: 4px }\n.pg-cell--editing .pg-cell__inner { padding: 0; overflow: visible; }\n.pg-selection-canvas { position: absolute; top: 0; left: 0; pointer-events: none; z-index: 10; }\n\n";
9
9
  //# sourceMappingURL=context-menu.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,kkGA8F1B,CAAC"}
1
+ {"version":3,"file":"context-menu.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,u3IAqH1B,CAAC"}
@@ -82,6 +82,29 @@ export const contextMenuCss = `/* ─── Context menu ─── */
82
82
  font-size: var(--pg-typography-font-size-sm, 12px);
83
83
  }
84
84
  .pg-cell__serial { font-variant-numeric: tabular-nums; }
85
+ /* Dark mode: tint the serial (row-number) column with the header/footer chrome
86
+ background (which sits above the darker data-row background in dark themes) so
87
+ the number gutter reads as grid chrome — matching the header and footer
88
+ surfaces — rather than as data. Scoped to dark mode per design; variants that
89
+ define their own serial-column chrome (e.g. quartz) still win via source order. */
90
+ [data-pg-mode="dark"] .pg-cell--serial {
91
+ background: var(--pg-colors-header-background, var(--pg-colors-footer-background, #1e293b));
92
+ }
93
+ /* ── Serial column as a row-selection column (opt-in) ──────────────────────
94
+ When serialColumnSelection is enabled, the "#" cell becomes an AG Grid–style
95
+ selection handle: mouse-down starts a row drag-selection. The selected-state
96
+ outline is drawn around the whole row (see rows.css), not on this cell. */
97
+ .pg-cell--serial-select {
98
+ cursor: pointer;
99
+ user-select: none;
100
+ }
101
+ .pg-cell--serial-select:hover {
102
+ background: var(--pg-colors-header-hover, var(--pg-colors-background-alt, #f1f5f9));
103
+ }
104
+ .pg-cell--serial-select:focus-visible {
105
+ outline: none;
106
+ box-shadow: inset 0 0 0 2px var(--pg-colors-primary, #2563eb);
107
+ }
85
108
  .pg-cell--bool-true { color: var(--pg-colors-success, #16a34a); }
86
109
  .pg-cell--bool-false { color: var(--pg-colors-text-disabled, #94a3b8); }
87
110
  .pg-cell__image { border-radius: var(--pg-borders-radius-sm, 4px); object-fit: cover; }
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.css.js","sourceRoot":"","sources":["../../../src/styles/base/context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8F7B,CAAC"}
1
+ {"version":3,"file":"context-menu.css.js","sourceRoot":"","sources":["../../../src/styles/base/context-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqH7B,CAAC"}
@@ -5,5 +5,5 @@
5
5
  * base-styles.ts; edit here, not there. Order is preserved because CSS
6
6
  * cascade depends on it.
7
7
  */
8
- export declare const filterCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Filter Row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-drag-preview {\n position: fixed;\n pointer-events: none;\n z-index: 99999;\n display: flex;\n align-items: center;\n gap: var(--pg-drag-preview-gap, 8px);\n padding: var(--pg-drag-preview-padding, 6px 12px);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-drag-preview, 0 4px 16px rgba(0,0,0,0.18));\n font-size: var(--pg-typography-font-size-md, 13px);\n font-weight: var(--pg-typography-font-weight-medium, 500);\n white-space: nowrap;\n will-change: transform;\n background: var(--pg-colors-drag-preview-background, var(--pg-drag-preview-bg, #fff));\n border: 1px solid var(--pg-colors-drag-preview-border, var(--pg-drag-preview-border, #e0e0e0));\n color: var(--pg-colors-text-primary, var(--pg-text-primary, #222));\n top: 0;\n left: 0;\n transform: translate(-9999px, -9999px);\n}\n.pg-drag-preview__avatar {\n width: var(--pg-drag-preview-avatar-size, 24px);\n height: var(--pg-drag-preview-avatar-size, 24px);\n background: var(--pg-colors-primary, var(--pg-primary, #2563eb));\n overflow: hidden;\n flex-shrink: 0;\n}\n.pg-drag-preview__avatar--circle { border-radius: 50%; }\n.pg-drag-preview__avatar--square { border-radius: var(--pg-borders-radius-sm, 4px); }\n.pg-drag-preview__avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.pg-drag-preview__label {\n flex: 1;\n min-width: 0;\n}\n.pg-drag-preview__badge {\n background: var(--pg-colors-primary, var(--pg-primary, #2563eb));\n color: var(--pg-colors-primary-contrast, #fff);\n border-radius: var(--pg-borders-radius-pill, 999px);\n padding: 1px 7px;\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n min-width: 20px;\n text-align: center;\n}\n\n.pg-filter-cell {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n padding: 0 6px;\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-filter-cell:last-child { border-right: none; }\n.pg-filter-cell--checkbox {\n width: 44px;\n min-width: 44px;\n max-width: 44px;\n flex-shrink: 0;\n}\n.pg-filter-cell--serial {\n width: 52px;\n min-width: 52px;\n max-width: 52px;\n flex-shrink: 0;\n}\n.pg-filter-input {\n width: 100%;\n height: 24px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n background: var(--pg-colors-surface, #fff);\n color: inherit;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Filter Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-filter-panel {\n position: absolute;\n z-index: var(--pg-z-index-filter-panel, 200);\n min-width: 230px;\n max-width: 320px;\n width: max-content;\n background: var(--pg-colors-surface, #fff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-lg, 0 8px 24px rgba(0,0,0,.12));\n overflow: hidden;\n font-size: var(--pg-typography-font-size-sm, 13px);\n color: var(--pg-colors-text, #1e293b);\n user-select: none;\n}\n\n/* \u2500\u2500 Condition filter \u2500\u2500 */\n.pg-filter-cond-wrap { padding: 10px; display: flex; flex-direction: column; gap: 6px; }\n\n.pg-filter-cond__row { display: flex; flex-direction: column; gap: 4px; }\n.pg-filter-cond__row--hidden { display: none; }\n\n.pg-filter-cond__select {\n width: 100%;\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text, #1e293b);\n font-size: inherit;\n font-family: inherit;\n cursor: pointer;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-cond__select:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n.pg-filter-cond__inputs { display: flex; align-items: center; gap: 4px; }\n.pg-filter-cond__inputs--hidden { display: none; }\n/* Stack inputs vertically in range (Between) mode so the panel never overflows horizontally */\n.pg-filter-cond__inputs--range { flex-direction: column; align-items: stretch; gap: 4px; }\n.pg-filter-cond__inputs--range .pg-filter-cond__range-sep {\n text-align: center;\n padding: 2px 0;\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: 500;\n}\n\n.pg-filter-cond__input {\n flex: 1;\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text, #1e293b);\n font-size: inherit;\n font-family: inherit;\n outline: none;\n padding: 6px;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-cond__input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n.pg-filter-cond__input--hidden { display: none; }\n\n.pg-filter-cond__range-sep {\n flex-shrink: 0;\n font-size: var(--pg-typography-font-size-xs, 11px);\n color: var(--pg-colors-text-secondary, #475569);\n padding: 0 2px;\n}\n.pg-filter-cond__range-sep--hidden { display: none; }\n\n/* \u2500\u2500 Logic toggle row (AND / OR / None) \u2500\u2500 */\n.pg-filter-logic {\n display: flex;\n gap: 4px;\n padding: 4px 0 2px;\n}\n.pg-filter-logic--hidden { display: none; }\n\n.pg-filter-logic__btn {\n flex: 1;\n height: 26px;\n padding: 0 6px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-secondary, #475569);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-family: inherit;\n font-weight: 500;\n cursor: pointer;\n text-align: center;\n transition: background var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms),\n border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-logic__btn:hover { background: var(--pg-colors-background-alt, #f1f5f9); }\n.pg-filter-logic__btn--active {\n background: var(--pg-colors-primary, #2563eb);\n color: #fff;\n border-color: var(--pg-colors-primary, #2563eb);\n}\n\n/* \u2500\u2500 Set filter (dropdown / array) \u2500\u2500 */\n.pg-filter-set { display: flex; flex-direction: column; }\n\n.pg-filter-set__search {\n padding: 8px 10px 4px;\n}\n.pg-filter-set__search-input {\n width: 100%;\n height: 30px;\n padding: 0 10px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text, #1e293b);\n font-size: inherit;\n font-family: inherit;\n box-sizing: border-box;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-set__search-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n.pg-filter-set__divider {\n height: 1px;\n background: var(--pg-colors-border, #e2e8f0);\n margin: 2px 0;\n}\n\n/* Select All item */\n.pg-filter-set__item {\n display: flex;\n align-items: center;\n gap: 8px;\n height: 28px;\n padding: 0 10px;\n cursor: pointer;\n transition: background var(--pg-transitions-duration-fast, 100ms);\n box-sizing: border-box;\n position: absolute;\n left: 0;\n right: 0;\n}\n.pg-filter-set__item:hover { background: var(--pg-colors-background-alt, #f1f5f9); }\n.pg-filter-set__item--select-all {\n position: static;\n font-weight: 500;\n color: var(--pg-colors-text, #1e293b);\n}\n.pg-filter-set__item-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.pg-filter-set__item-label--blank { color: var(--pg-colors-text-disabled, #94a3b8); font-style: italic; }\n\n.pg-filter-set__checkbox {\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n cursor: pointer;\n accent-color: var(--pg-colors-primary, #2563eb);\n}\n\n/* Virtual scroll containers */\n.pg-filter-set__list {\n overflow-y: auto;\n overflow-x: hidden;\n position: relative;\n scrollbar-width: thin;\n scrollbar-color: var(--pg-colors-border, #e2e8f0) transparent;\n}\n.pg-filter-set__list::-webkit-scrollbar { width: 6px; }\n.pg-filter-set__list::-webkit-scrollbar-track { background: transparent; }\n.pg-filter-set__list::-webkit-scrollbar-thumb {\n background: var(--pg-colors-border, #e2e8f0);\n border-radius: 3px;\n}\n.pg-filter-set__list-inner { position: relative; width: 100%; }\n\n/* \u2500\u2500 Panel footer \u2500\u2500 */\n.pg-filter-panel__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 8px 10px;\n // border-top: 1px solid var(--pg-colors-border, #e2e8f0);\n // background: var(--pg-colors-background, #f8fafc);\n}\n\n.pg-filter-panel__clear-btn {\n height: 28px;\n padding: 0 14px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-secondary, #475569);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n cursor: pointer;\n transition: background var(--pg-transitions-duration-fast, 100ms),\n border-color var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-panel__clear-btn:hover {\n background: var(--pg-colors-background-alt, #f1f5f9);\n border-color: var(--pg-colors-text-secondary, #475569);\n color: var(--pg-colors-text, #1e293b);\n}\n\n";
8
+ export declare const filterCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Filter Row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-drag-preview {\n position: fixed;\n pointer-events: none;\n z-index: 99999;\n display: flex;\n align-items: center;\n gap: var(--pg-drag-preview-gap, 8px);\n padding: var(--pg-drag-preview-padding, 6px 12px);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-drag-preview, 0 4px 16px rgba(0,0,0,0.18));\n font-size: var(--pg-typography-font-size-md, 13px);\n font-weight: var(--pg-typography-font-weight-medium, 500);\n white-space: nowrap;\n will-change: transform;\n background: var(--pg-colors-drag-preview-background, var(--pg-drag-preview-bg, #fff));\n border: 1px solid var(--pg-colors-drag-preview-border, var(--pg-drag-preview-border, #e0e0e0));\n color: var(--pg-colors-text-primary, var(--pg-text-primary, #222));\n top: 0;\n left: 0;\n transform: translate(-9999px, -9999px);\n}\n.pg-drag-preview__avatar {\n width: var(--pg-drag-preview-avatar-size, 24px);\n height: var(--pg-drag-preview-avatar-size, 24px);\n background: var(--pg-colors-primary, var(--pg-primary, #2563eb));\n overflow: hidden;\n flex-shrink: 0;\n}\n.pg-drag-preview__avatar--circle { border-radius: 50%; }\n.pg-drag-preview__avatar--square { border-radius: var(--pg-borders-radius-sm, 4px); }\n.pg-drag-preview__avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.pg-drag-preview__label {\n flex: 1;\n min-width: 0;\n}\n.pg-drag-preview__badge {\n background: var(--pg-colors-primary, var(--pg-primary, #2563eb));\n color: var(--pg-colors-primary-contrast, #fff);\n border-radius: var(--pg-borders-radius-pill, 999px);\n padding: 1px 7px;\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n min-width: 20px;\n text-align: center;\n}\n\n.pg-filter-cell {\n display: flex;\n gap: 6px;\n align-items: center;\n flex-shrink: 0;\n padding: 0 6px;\n /* Column divider \u2014 themed, and gated by showVerticalBorders (removed under\n .pg-grid--no-v-borders, same as .pg-th/.pg-cell) so the filter row's\n vertical lines stay continuous with the header and body columns. */\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-filter-cell:last-child { border-right: none; }\n.pg-filter-cell--checkbox {\n width: 44px;\n min-width: 44px;\n max-width: 44px;\n flex-shrink: 0;\n}\n.pg-filter-cell--serial {\n width: 52px;\n min-width: 52px;\n max-width: 52px;\n flex-shrink: 0;\n}\n.pg-filter-input {\n /* Grow to fill the cell but yield room for the trailing filter icon. */\n flex: 1 1 auto;\n width: auto !important;\n min-width: 0 !important;\n height: 70%;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n background: var(--pg-colors-surface, #fff);\n color: inherit;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n/* Set-type columns (object / array / dropdown): read-only input that looks\n disabled and opens the checkbox filter dropdown on click. */\n.pg-filter-input--set {\n cursor: pointer;\n color: var(--pg-colors-text-secondary, #64748b);\n background: var(--pg-colors-background-alt, #f1f5f9);\n}\n.pg-filter-input--set::placeholder { color: var(--pg-colors-text-secondary, #64748b); }\n\n/* Trailing filter icon inside each filter cell \u2014 opens the filter panel. */\n.pg-filter-cell__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n border-radius: var(--pg-borders-radius-sm, 4px);\n color: var(--pg-colors-text-secondary, #64748b);\n cursor: pointer;\n transition: background var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-cell__icon:hover {\n background: var(--pg-colors-background-alt, #f1f5f9);\n color: var(--pg-colors-text-primary, #1e293b);\n}\n.pg-filter-cell__icon:focus-visible {\n outline: 2px solid var(--pg-colors-border-focus, #2563eb);\n outline-offset: -1px;\n}\n.pg-filter-cell__icon svg { display: block; }\n.pg-filter-cell__icon--active { color: var(--pg-colors-primary, #2563eb); }\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Filter Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-filter-panel {\n position: absolute;\n z-index: var(--pg-z-index-filter-panel, 200);\n min-width: 230px;\n max-width: 320px;\n width: max-content;\n background: var(--pg-colors-surface, #fff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-lg, 0 8px 24px rgba(0,0,0,.12));\n overflow: hidden;\n font-size: var(--pg-typography-font-size-sm, 13px);\n color: var(--pg-colors-text-primary, #1e293b);\n user-select: none;\n}\n\n/* \u2500\u2500 Condition filter \u2500\u2500 */\n.pg-filter-cond-wrap { padding: 10px; display: flex; flex-direction: column; gap: 6px; }\n\n.pg-filter-cond__row { display: flex; flex-direction: column; gap: 4px; }\n.pg-filter-cond__row--hidden { display: none; }\n\n.pg-filter-cond__select {\n width: 100%;\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-primary, #1e293b);\n font-size: inherit;\n font-family: inherit;\n cursor: pointer;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-cond__select:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n.pg-filter-cond__inputs { display: flex; align-items: center; gap: 4px; }\n.pg-filter-cond__inputs--hidden { display: none; }\n/* Stack inputs vertically in range (Between) mode so the panel never overflows horizontally */\n.pg-filter-cond__inputs--range { flex-direction: column; align-items: stretch; gap: 4px; }\n.pg-filter-cond__inputs--range .pg-filter-cond__range-sep {\n text-align: center;\n padding: 2px 0;\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: 500;\n}\n\n.pg-filter-cond__input {\n flex: 1;\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-primary, #1e293b);\n font-size: inherit;\n font-family: inherit;\n outline: none;\n padding: 6px;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-cond__input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n.pg-filter-cond__input--hidden { display: none; }\n\n.pg-filter-cond__range-sep {\n flex-shrink: 0;\n font-size: var(--pg-typography-font-size-xs, 11px);\n color: var(--pg-colors-text-secondary, #475569);\n padding: 0 2px;\n}\n.pg-filter-cond__range-sep--hidden { display: none; }\n\n/* \u2500\u2500 Logic toggle row (AND / OR / None) \u2500\u2500 */\n.pg-filter-logic {\n display: flex;\n gap: 4px;\n padding: 4px 0 2px;\n}\n.pg-filter-logic--hidden { display: none; }\n\n.pg-filter-logic__btn {\n flex: 1;\n height: 26px;\n padding: 0 6px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-secondary, #475569);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-family: inherit;\n font-weight: 500;\n cursor: pointer;\n text-align: center;\n transition: background var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms),\n border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-logic__btn:hover { background: var(--pg-colors-background-alt, #f1f5f9); }\n.pg-filter-logic__btn--active {\n background: var(--pg-colors-primary, #2563eb);\n color: #fff;\n border-color: var(--pg-colors-primary, #2563eb);\n}\n\n/* \u2500\u2500 Set filter (dropdown / array) \u2500\u2500 */\n.pg-filter-set { display: flex; flex-direction: column; }\n\n.pg-filter-set__search {\n padding: 8px 10px 4px;\n}\n.pg-filter-set__search-input {\n width: 100%;\n height: 30px;\n padding: 0 10px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-primary, #1e293b);\n font-size: inherit;\n font-family: inherit;\n box-sizing: border-box;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-set__search-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n.pg-filter-set__divider {\n height: 1px;\n background: var(--pg-colors-border, #e2e8f0);\n margin: 2px 0;\n}\n\n/* Select All item */\n.pg-filter-set__item {\n display: flex;\n align-items: center;\n gap: 8px;\n height: 28px;\n padding: 0 10px;\n cursor: pointer;\n transition: background var(--pg-transitions-duration-fast, 100ms);\n box-sizing: border-box;\n position: absolute;\n left: 0;\n right: 0;\n}\n.pg-filter-set__item:hover { background: var(--pg-colors-background-alt, #f1f5f9); }\n.pg-filter-set__item--select-all {\n position: static;\n font-weight: 500;\n color: var(--pg-colors-text-primary, #1e293b);\n}\n.pg-filter-set__item-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.pg-filter-set__item-label--blank { color: var(--pg-colors-text-disabled, #94a3b8); font-style: italic; }\n\n.pg-filter-set__checkbox {\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n cursor: pointer;\n accent-color: var(--pg-colors-primary, #2563eb);\n}\n\n/* Virtual scroll containers */\n.pg-filter-set__list {\n overflow-y: auto;\n overflow-x: hidden;\n position: relative;\n scrollbar-width: thin;\n scrollbar-color: var(--pg-colors-border, #e2e8f0) transparent;\n}\n.pg-filter-set__list::-webkit-scrollbar { width: 6px; }\n.pg-filter-set__list::-webkit-scrollbar-track { background: transparent; }\n.pg-filter-set__list::-webkit-scrollbar-thumb {\n background: var(--pg-colors-border, #e2e8f0);\n border-radius: 3px;\n}\n.pg-filter-set__list-inner { position: relative; width: 100%; }\n\n/* \u2500\u2500 Panel footer \u2500\u2500 */\n.pg-filter-panel__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 8px 10px;\n // border-top: 1px solid var(--pg-colors-border, #e2e8f0);\n // background: var(--pg-colors-background, #f8fafc);\n}\n\n.pg-filter-panel__clear-btn {\n height: 28px;\n padding: 0 14px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-secondary, #475569);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n cursor: pointer;\n transition: background var(--pg-transitions-duration-fast, 100ms),\n border-color var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-panel__clear-btn:hover {\n background: var(--pg-colors-background-alt, #f1f5f9);\n border-color: var(--pg-colors-text-secondary, #475569);\n color: var(--pg-colors-text-primary, #1e293b);\n}\n\n";
9
9
  //# sourceMappingURL=filter.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/filter.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,8kUA+SrB,CAAC"}
1
+ {"version":3,"file":"filter.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/filter.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,8vXAwVrB,CAAC"}