photon-grid-core 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +304 -304
  2. package/chart/chart-config/chart-controls.d.ts +49 -0
  3. package/chart/chart-config/chart-controls.d.ts.map +1 -0
  4. package/chart/chart-config/chart-controls.js +229 -0
  5. package/chart/chart-config/chart-controls.js.map +1 -0
  6. package/chart/chart-config/chart-tool-panel.d.ts +86 -0
  7. package/chart/chart-config/chart-tool-panel.d.ts.map +1 -0
  8. package/chart/chart-config/chart-tool-panel.js +402 -0
  9. package/chart/chart-config/chart-tool-panel.js.map +1 -0
  10. package/chart/chart-panel.d.ts +97 -0
  11. package/chart/chart-panel.d.ts.map +1 -1
  12. package/chart/chart-panel.js +211 -58
  13. package/chart/chart-panel.js.map +1 -1
  14. package/chart/chart-renderer.d.ts +97 -0
  15. package/chart/chart-renderer.d.ts.map +1 -1
  16. package/chart/chart-renderer.js +335 -72
  17. package/chart/chart-renderer.js.map +1 -1
  18. package/chart/chart-theme.d.ts +38 -0
  19. package/chart/chart-theme.d.ts.map +1 -0
  20. package/chart/chart-theme.js +47 -0
  21. package/chart/chart-theme.js.map +1 -0
  22. package/chart/model/chart-model-mapper.d.ts +38 -0
  23. package/chart/model/chart-model-mapper.d.ts.map +1 -0
  24. package/chart/model/chart-model-mapper.js +128 -0
  25. package/chart/model/chart-model-mapper.js.map +1 -0
  26. package/chart/model/chart-model.d.ts +153 -0
  27. package/chart/model/chart-model.d.ts.map +1 -0
  28. package/chart/model/chart-model.js +79 -0
  29. package/chart/model/chart-model.js.map +1 -0
  30. package/chart/range-chart-controller.d.ts +68 -0
  31. package/chart/range-chart-controller.d.ts.map +1 -0
  32. package/chart/range-chart-controller.js +209 -0
  33. package/chart/range-chart-controller.js.map +1 -0
  34. package/chart/range-chart-service.d.ts +78 -0
  35. package/chart/range-chart-service.d.ts.map +1 -0
  36. package/chart/range-chart-service.js +162 -0
  37. package/chart/range-chart-service.js.map +1 -0
  38. package/core/grid-api.d.ts +20 -0
  39. package/core/grid-api.d.ts.map +1 -1
  40. package/core/grid-api.js +41 -0
  41. package/core/grid-api.js.map +1 -1
  42. package/core/grid-context.d.ts +7 -0
  43. package/core/grid-context.d.ts.map +1 -1
  44. package/core/grid-core.d.ts.map +1 -1
  45. package/core/grid-core.js +21 -9
  46. package/core/grid-core.js.map +1 -1
  47. package/icons/icon-sets/core-icons.js +1 -1
  48. package/icons/icon-sets/core-icons.js.map +1 -1
  49. package/index.d.ts +1 -0
  50. package/index.d.ts.map +1 -1
  51. package/package.json +57 -70
  52. package/renderer/body-renderer.d.ts.map +1 -1
  53. package/renderer/body-renderer.js +21 -4
  54. package/renderer/body-renderer.js.map +1 -1
  55. package/renderer/cell-renderer.js +1 -1
  56. package/renderer/cell-renderer.js.map +1 -1
  57. package/renderer/column-menu.js +24 -25
  58. package/renderer/column-menu.js.map +1 -1
  59. package/renderer/column-style-manager.d.ts.map +1 -1
  60. package/renderer/column-style-manager.js +11 -2
  61. package/renderer/column-style-manager.js.map +1 -1
  62. package/renderer/grid-renderer.js +1 -1
  63. package/renderer/grid-renderer.js.map +1 -1
  64. package/renderer/header-renderer.d.ts.map +1 -1
  65. package/renderer/header-renderer.js +17 -3
  66. package/renderer/header-renderer.js.map +1 -1
  67. package/renderer/row-drag-renderer.d.ts +18 -0
  68. package/renderer/row-drag-renderer.d.ts.map +1 -1
  69. package/renderer/row-drag-renderer.js +53 -0
  70. package/renderer/row-drag-renderer.js.map +1 -1
  71. package/styles/base/cells.css.d.ts +9 -0
  72. package/styles/base/cells.css.d.ts.map +1 -0
  73. package/styles/base/cells.css.js +233 -0
  74. package/styles/base/cells.css.js.map +1 -0
  75. package/styles/base/chart-config.css.d.ts +10 -0
  76. package/styles/base/chart-config.css.d.ts.map +1 -0
  77. package/styles/base/chart-config.css.js +126 -0
  78. package/styles/base/chart-config.css.js.map +1 -0
  79. package/styles/base/chart-controls.css.d.ts +7 -0
  80. package/styles/base/chart-controls.css.d.ts.map +1 -0
  81. package/styles/base/chart-controls.css.js +165 -0
  82. package/styles/base/chart-controls.css.js.map +1 -0
  83. package/styles/base/chart-panel.css.d.ts +9 -0
  84. package/styles/base/chart-panel.css.d.ts.map +1 -0
  85. package/styles/base/chart-panel.css.js +148 -0
  86. package/styles/base/chart-panel.css.js.map +1 -0
  87. package/styles/base/column-context-menu.css.d.ts +9 -0
  88. package/styles/base/column-context-menu.css.d.ts.map +1 -0
  89. package/styles/base/column-context-menu.css.js +153 -0
  90. package/styles/base/column-context-menu.css.js.map +1 -0
  91. package/styles/base/column-group-header.css.d.ts +9 -0
  92. package/styles/base/column-group-header.css.d.ts.map +1 -0
  93. package/styles/base/column-group-header.css.js +270 -0
  94. package/styles/base/column-group-header.css.js.map +1 -0
  95. package/styles/base/context-menu.css.d.ts +9 -0
  96. package/styles/base/context-menu.css.d.ts.map +1 -0
  97. package/styles/base/context-menu.css.js +103 -0
  98. package/styles/base/context-menu.css.js.map +1 -0
  99. package/styles/base/editors.css.d.ts +9 -0
  100. package/styles/base/editors.css.d.ts.map +1 -0
  101. package/styles/base/editors.css.js +291 -0
  102. package/styles/base/editors.css.js.map +1 -0
  103. package/styles/base/filter.css.d.ts +9 -0
  104. package/styles/base/filter.css.d.ts.map +1 -0
  105. package/styles/base/filter.css.js +312 -0
  106. package/styles/base/filter.css.js.map +1 -0
  107. package/styles/base/footer.css.d.ts +9 -0
  108. package/styles/base/footer.css.d.ts.map +1 -0
  109. package/styles/base/footer.css.js +78 -0
  110. package/styles/base/footer.css.js.map +1 -0
  111. package/styles/base/group-bar-search.css.d.ts +9 -0
  112. package/styles/base/group-bar-search.css.d.ts.map +1 -0
  113. package/styles/base/group-bar-search.css.js +86 -0
  114. package/styles/base/group-bar-search.css.js.map +1 -0
  115. package/styles/base/group-drop-zone.css.d.ts +9 -0
  116. package/styles/base/group-drop-zone.css.d.ts.map +1 -0
  117. package/styles/base/group-drop-zone.css.js +173 -0
  118. package/styles/base/group-drop-zone.css.js.map +1 -0
  119. package/styles/base/header.css.d.ts +9 -0
  120. package/styles/base/header.css.d.ts.map +1 -0
  121. package/styles/base/header.css.js +206 -0
  122. package/styles/base/header.css.js.map +1 -0
  123. package/styles/base/master-detail.css.d.ts +9 -0
  124. package/styles/base/master-detail.css.d.ts.map +1 -0
  125. package/styles/base/master-detail.css.js +202 -0
  126. package/styles/base/master-detail.css.js.map +1 -0
  127. package/styles/base/misc.css.d.ts +9 -0
  128. package/styles/base/misc.css.d.ts.map +1 -0
  129. package/styles/base/misc.css.js +65 -0
  130. package/styles/base/misc.css.js.map +1 -0
  131. package/styles/base/panels.css.d.ts +9 -0
  132. package/styles/base/panels.css.d.ts.map +1 -0
  133. package/styles/base/panels.css.js +162 -0
  134. package/styles/base/panels.css.js.map +1 -0
  135. package/styles/base/photon-ai.css.d.ts +9 -0
  136. package/styles/base/photon-ai.css.d.ts.map +1 -0
  137. package/styles/base/photon-ai.css.js +200 -0
  138. package/styles/base/photon-ai.css.js.map +1 -0
  139. package/styles/base/root.css.d.ts +9 -0
  140. package/styles/base/root.css.d.ts.map +1 -0
  141. package/styles/base/root.css.js +56 -0
  142. package/styles/base/root.css.js.map +1 -0
  143. package/styles/base/row-drag.css.d.ts +9 -0
  144. package/styles/base/row-drag.css.d.ts.map +1 -0
  145. package/styles/base/row-drag.css.js +93 -0
  146. package/styles/base/row-drag.css.js.map +1 -0
  147. package/styles/base/row-group.css.d.ts +9 -0
  148. package/styles/base/row-group.css.d.ts.map +1 -0
  149. package/styles/base/row-group.css.js +79 -0
  150. package/styles/base/row-group.css.js.map +1 -0
  151. package/styles/base/rows.css.d.ts +9 -0
  152. package/styles/base/rows.css.d.ts.map +1 -0
  153. package/styles/base/rows.css.js +83 -0
  154. package/styles/base/rows.css.js.map +1 -0
  155. package/styles/base/scrollbars.css.d.ts +9 -0
  156. package/styles/base/scrollbars.css.d.ts.map +1 -0
  157. package/styles/base/scrollbars.css.js +56 -0
  158. package/styles/base/scrollbars.css.js.map +1 -0
  159. package/styles/base/sparkline.css.d.ts +9 -0
  160. package/styles/base/sparkline.css.d.ts.map +1 -0
  161. package/styles/base/sparkline.css.js +109 -0
  162. package/styles/base/sparkline.css.js.map +1 -0
  163. package/styles/base/tooltip.css.d.ts +9 -0
  164. package/styles/base/tooltip.css.d.ts.map +1 -0
  165. package/styles/base/tooltip.css.js +39 -0
  166. package/styles/base/tooltip.css.js.map +1 -0
  167. package/styles/base/tree.css.d.ts +9 -0
  168. package/styles/base/tree.css.d.ts.map +1 -0
  169. package/styles/base/tree.css.js +78 -0
  170. package/styles/base/tree.css.js.map +1 -0
  171. package/styles/base-styles.d.ts.map +1 -1
  172. package/styles/base-styles.js +60 -3026
  173. package/styles/base-styles.js.map +1 -1
  174. package/styles/themes/theme-alpine.d.ts +1 -1
  175. package/styles/themes/theme-alpine.d.ts.map +1 -1
  176. package/styles/themes/theme-alpine.js +1 -1
  177. package/styles/themes/theme-balham.d.ts +1 -1
  178. package/styles/themes/theme-balham.d.ts.map +1 -1
  179. package/styles/themes/theme-balham.js +0 -1
  180. package/styles/themes/theme-balham.js.map +1 -1
  181. package/styles/themes/theme-dark.d.ts +1 -1
  182. package/styles/themes/theme-dark.d.ts.map +1 -1
  183. package/styles/themes/theme-dark.js +1 -1
  184. package/styles/themes/theme-material.d.ts +1 -1
  185. package/styles/themes/theme-material.d.ts.map +1 -1
  186. package/styles/themes/theme-material.js +0 -1
  187. package/styles/themes/theme-material.js.map +1 -1
  188. package/styles/themes/theme-quartz.d.ts +1 -1
  189. package/styles/themes/theme-quartz.d.ts.map +1 -1
  190. package/styles/themes/theme-quartz.js +1 -1
  191. package/types/event.types.d.ts +29 -0
  192. package/types/event.types.d.ts.map +1 -1
  193. package/types/event.types.js +1 -0
  194. package/types/event.types.js.map +1 -1
  195. package/types/grid.types.d.ts +51 -0
  196. package/types/grid.types.d.ts.map +1 -1
  197. package/LICENSE +0 -1
  198. package/chart/chart-analyzer.d.ts +0 -12
  199. package/chart/chart-analyzer.d.ts.map +0 -1
  200. package/chart/chart-analyzer.js +0 -77
  201. package/chart/chart-analyzer.js.map +0 -1
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Photon Grid base styles — row-drag section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export const rowDragCss = `/* ──────────────────── Row Drag ──────────────────── */
9
+ .pg-grid__body { position: relative; }
10
+
11
+ .pg-row-drag-handle {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ width: 16px;
16
+ height: 100%;
17
+ flex-shrink: 0;
18
+ cursor: grab;
19
+ opacity: 0.35;
20
+ color: var(--pg-colors-text-secondary, #475569);
21
+ margin-right: 4px;
22
+ }
23
+ .pg-row-drag-handle:hover { opacity: 0.7; }
24
+ .pg-row-drag-handle:active { cursor: grabbing; }
25
+
26
+ .pg-row-drag-ghost {
27
+ position: fixed;
28
+ pointer-events: none;
29
+ z-index: 9999;
30
+ display: inline-flex;
31
+ align-items: center;
32
+ gap: 6px;
33
+ padding: 5px 10px;
34
+ border-radius: var(--pg-borders-radius-md, 6px);
35
+ border: 1.5px solid var(--pg-colors-primary, #2563eb);
36
+ background: var(--pg-colors-surface, #fff);
37
+ color: var(--pg-colors-primary, #2563eb);
38
+ font-size: var(--pg-typography-font-size-sm, 12px);
39
+ font-weight: 500;
40
+ box-shadow: 0 6px 24px rgba(37,99,235,0.13), 0 2px 8px rgba(37,99,235,0.12);
41
+ transform: translate(12px, -50%);
42
+ white-space: nowrap;
43
+ max-width: 240px;
44
+ overflow: hidden;
45
+ text-overflow: ellipsis;
46
+ }
47
+ .pg-row-drag-ghost__icon { display: inline-flex; align-items: center; opacity: 0.8; }
48
+ .pg-row-drag-ghost__icon--block { display: none; }
49
+ .pg-row-drag-ghost__label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
50
+
51
+ .pg-row-drag-ghost--outside {
52
+ border-color: var(--pg-colors-danger, #ef4444);
53
+ box-shadow: 0 6px 24px rgba(239,68,68,0.13), 0 2px 8px rgba(239,68,68,0.12);
54
+ color: var(--pg-colors-danger, #ef4444);
55
+ }
56
+ .pg-row-drag-ghost--outside .pg-row-drag-ghost__icon--drag { display: none; }
57
+ .pg-row-drag-ghost--outside .pg-row-drag-ghost__icon--block { display: inline-flex; }
58
+
59
+ .pg-row-drop-indicator {
60
+ position: absolute;
61
+ left: 0;
62
+ right: 0;
63
+ height: 2px;
64
+ background: var(--pg-colors-primary, #2563eb);
65
+ pointer-events: none;
66
+ z-index: 100;
67
+ border-radius: 1px;
68
+ }
69
+ .pg-row-drop-indicator::before {
70
+ content: '';
71
+ position: absolute;
72
+ left: -3px;
73
+ top: -3px;
74
+ width: 8px;
75
+ height: 8px;
76
+ border-radius: 50%;
77
+ background: var(--pg-colors-primary, #2563eb);
78
+ }
79
+
80
+ /* The dragged row: semi-transparent, moves to virtual landing position */
81
+ .pg-row--row-dragging { opacity: 0.4; }
82
+
83
+ /* During row drag: kill hover/click on all rows; animate top changes.
84
+ Uses top (not transform) so rows stay within panel overflow:hidden bounds. */
85
+ .pg-grid--row-dragging .pg-row {
86
+ pointer-events: none;
87
+ will-change: top;
88
+ transition: background var(--pg-transitions-duration-fast, 100ms),
89
+ top 130ms cubic-bezier(0.2, 0, 0, 1);
90
+ }
91
+
92
+ `;
93
+ //# sourceMappingURL=row-drag.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-drag.css.js","sourceRoot":"","sources":["../../../src/styles/base/row-drag.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoFzB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — row-group section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export declare const rowGroupCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Checkbox \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-checkbox {\n width: var(--pg-sizing-checkbox-size, 16px);\n height: var(--pg-sizing-checkbox-size, 16px);\n accent-color: var(--pg-colors-primary, #2563eb);\n cursor: pointer;\n flex-shrink: 0;\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Row Group \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Inner layout cell \u2014 carries level-based left padding */\n.pg-row-group__cell {\n display: flex;\n align-items: center;\n gap: var(--pg-group-row-gap, 6px);\n flex: 1;\n min-width: 0;\n overflow: hidden;\n padding-right: var(--pg-group-row-padding-right, 16px);\n}\n\n/* Level-based indentation (data-level set by the renderer, no inline style) */\n.pg-row--group[data-level=\"0\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-0, 8px); }\n.pg-row--group[data-level=\"1\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-1, 28px); }\n.pg-row--group[data-level=\"2\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-2, 48px); }\n.pg-row--group[data-level=\"3\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-3, 68px); }\n.pg-row--group[data-level=\"4\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-4, 88px); }\n.pg-row--group[data-level=\"5\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-5, 108px); }\n\n/* Toggle button \u2014 a themed wrapper, not the raw icon element */\n.pg-row-group__toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--pg-group-toggle-size, 24px);\n height: var(--pg-group-toggle-size, 24px);\n border-radius: var(--pg-borders-radius-sm, 4px);\n color: var(--pg-colors-text-secondary, #64748b);\n background: transparent;\n transition:\n background var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms);\n}\n\n.pg-row-group__label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--pg-colors-group-row-text, inherit);\n}\n\n.pg-row-group__count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--pg-group-count-min-width, 24px);\n padding: var(--pg-group-count-padding, 1px 8px);\n border-radius: var(--pg-borders-radius-pill, 9999px);\n background: var(--pg-colors-badge-background, #dbeafe);\n color: var(--pg-colors-badge-text, #1e40af);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n flex-shrink: 0;\n letter-spacing: 0.02em;\n}\n\n";
9
+ //# sourceMappingURL=row-group.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-group.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/row-group.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,o7FAsEvB,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Photon Grid base styles — row-group section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export const rowGroupCss = `/* ──────────────────── Checkbox ──────────────────── */
9
+ .pg-checkbox {
10
+ width: var(--pg-sizing-checkbox-size, 16px);
11
+ height: var(--pg-sizing-checkbox-size, 16px);
12
+ accent-color: var(--pg-colors-primary, #2563eb);
13
+ cursor: pointer;
14
+ flex-shrink: 0;
15
+ }
16
+
17
+ /* ──────────────────── Row Group ──────────────────── */
18
+
19
+ /* Inner layout cell — carries level-based left padding */
20
+ .pg-row-group__cell {
21
+ display: flex;
22
+ align-items: center;
23
+ gap: var(--pg-group-row-gap, 6px);
24
+ flex: 1;
25
+ min-width: 0;
26
+ overflow: hidden;
27
+ padding-right: var(--pg-group-row-padding-right, 16px);
28
+ }
29
+
30
+ /* Level-based indentation (data-level set by the renderer, no inline style) */
31
+ .pg-row--group[data-level="0"] .pg-row-group__cell { padding-left: var(--pg-group-indent-0, 8px); }
32
+ .pg-row--group[data-level="1"] .pg-row-group__cell { padding-left: var(--pg-group-indent-1, 28px); }
33
+ .pg-row--group[data-level="2"] .pg-row-group__cell { padding-left: var(--pg-group-indent-2, 48px); }
34
+ .pg-row--group[data-level="3"] .pg-row-group__cell { padding-left: var(--pg-group-indent-3, 68px); }
35
+ .pg-row--group[data-level="4"] .pg-row-group__cell { padding-left: var(--pg-group-indent-4, 88px); }
36
+ .pg-row--group[data-level="5"] .pg-row-group__cell { padding-left: var(--pg-group-indent-5, 108px); }
37
+
38
+ /* Toggle button — a themed wrapper, not the raw icon element */
39
+ .pg-row-group__toggle {
40
+ display: inline-flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ flex-shrink: 0;
44
+ width: var(--pg-group-toggle-size, 24px);
45
+ height: var(--pg-group-toggle-size, 24px);
46
+ border-radius: var(--pg-borders-radius-sm, 4px);
47
+ color: var(--pg-colors-text-secondary, #64748b);
48
+ background: transparent;
49
+ transition:
50
+ background var(--pg-transitions-duration-fast, 100ms),
51
+ color var(--pg-transitions-duration-fast, 100ms);
52
+ }
53
+
54
+ .pg-row-group__label {
55
+ flex: 1;
56
+ min-width: 0;
57
+ overflow: hidden;
58
+ text-overflow: ellipsis;
59
+ white-space: nowrap;
60
+ color: var(--pg-colors-group-row-text, inherit);
61
+ }
62
+
63
+ .pg-row-group__count {
64
+ display: inline-flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ min-width: var(--pg-group-count-min-width, 24px);
68
+ padding: var(--pg-group-count-padding, 1px 8px);
69
+ border-radius: var(--pg-borders-radius-pill, 9999px);
70
+ background: var(--pg-colors-badge-background, #dbeafe);
71
+ color: var(--pg-colors-badge-text, #1e40af);
72
+ font-size: var(--pg-typography-font-size-xs, 11px);
73
+ font-weight: var(--pg-typography-font-weight-semi-bold, 600);
74
+ flex-shrink: 0;
75
+ letter-spacing: 0.02em;
76
+ }
77
+
78
+ `;
79
+ //# sourceMappingURL=row-group.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-group.css.js","sourceRoot":"","sources":["../../../src/styles/base/row-group.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsE1B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — rows section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export declare const rowsCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Rows \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-row {\n display: flex;\n align-items: stretch;\n position: absolute;\n left: 0;\n width: 100%;\n border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);\n background: var(--pg-colors-row-background, #fff);\n transition: background var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-row--hover { background: var(--pg-colors-row-hover, #f0f7ff) !important; }\n.pg-row--alt { background: var(--pg-colors-row-background-alt, #f8fafc); }\n.pg-row--selected {\n background: var(--pg-colors-row-selected, #eff6ff) !important;\n outline: none;\n}\n.pg-row--selected .pg-cell { color: inherit; }\n.pg-row--group {\n background: var(--pg-colors-group-row-background, #f8fafc);\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n // border-left: var(--pg-group-row-border-width, 3px) solid var(--pg-colors-primary, #2563eb);\n cursor: pointer;\n}\n.pg-row--group:hover,\n.pg-row--group.pg-row--hover {\n background: var(--pg-colors-group-row-hover, #eff2ff) !important;\n}\n.pg-row--group:hover .pg-row-group__toggle,\n.pg-row--group.pg-row--hover .pg-row-group__toggle {\n background: var(--pg-colors-group-toggle-hover, rgba(37, 99, 235, 0.1));\n color: var(--pg-colors-primary, #2563eb);\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Group footer row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/*\n * Appears below the last leaf child of each expanded group.\n * Shows the same aggregate values as the group header row (AG Grid groupIncludeFooter).\n * Cells are fully selectable and copyable; editing is blocked because values are computed.\n */\n.pg-row--group-footer {\n background: var(--pg-colors-group-footer-background, #eef2fa);\n font-style: italic;\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n border-bottom: 2px solid var(--pg-colors-primary-light, #bfdbfe);\n cursor: default;\n}\n.pg-row--group-footer:hover,\n.pg-row--group-footer.pg-row--hover {\n background: var(--pg-colors-group-footer-hover, #e0e9f8) !important;\n}\n/* Level-based indentation mirrors the group header rules */\n.pg-row--group-footer[data-level=\"0\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-0, 8px); }\n.pg-row--group-footer[data-level=\"1\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-1, 28px); }\n.pg-row--group-footer[data-level=\"2\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-2, 48px); }\n.pg-row--group-footer[data-level=\"3\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-3, 68px); }\n.pg-row--group-footer[data-level=\"4\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-4, 88px); }\n.pg-row--group-footer[data-level=\"5\"] .pg-row-group__cell { padding-left: var(--pg-group-indent-5, 108px); }\n.pg-row--group-footer .pg-row-group__label {\n color: var(--pg-colors-text-secondary, #475569);\n}\n/* Dark-mode overrides */\n.pg-grid[data-theme=\"dark\"] .pg-row--group-footer {\n background: var(--pg-colors-group-footer-background, rgba(37, 99, 235, 0.06));\n border-bottom-color: rgba(96, 165, 250, 0.28);\n}\n.pg-grid[data-theme=\"dark\"] .pg-row--group-footer:hover,\n.pg-grid[data-theme=\"dark\"] .pg-row--group-footer.pg-row--hover {\n background: var(--pg-colors-group-footer-hover, rgba(37, 99, 235, 0.11)) !important;\n}\n.pg-grid[data-theme=\"dark\"] .pg-row--group-footer .pg-row-group__label {\n color: var(--pg-colors-text-secondary, #94a3b8);\n}\n\n";
9
+ //# sourceMappingURL=rows.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/rows.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,0uHA0EnB,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Photon Grid base styles — rows section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export const rowsCss = `/* ──────────────────── Rows ──────────────────── */
9
+ .pg-row {
10
+ display: flex;
11
+ align-items: stretch;
12
+ position: absolute;
13
+ left: 0;
14
+ width: 100%;
15
+ border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);
16
+ background: var(--pg-colors-row-background, #fff);
17
+ transition: background var(--pg-transitions-duration-fast, 100ms);
18
+ }
19
+ .pg-row--hover { background: var(--pg-colors-row-hover, #f0f7ff) !important; }
20
+ .pg-row--alt { background: var(--pg-colors-row-background-alt, #f8fafc); }
21
+ .pg-row--selected {
22
+ background: var(--pg-colors-row-selected, #eff6ff) !important;
23
+ outline: none;
24
+ }
25
+ .pg-row--selected .pg-cell { color: inherit; }
26
+ .pg-row--group {
27
+ background: var(--pg-colors-group-row-background, #f8fafc);
28
+ font-weight: var(--pg-typography-font-weight-semi-bold, 600);
29
+ // border-left: var(--pg-group-row-border-width, 3px) solid var(--pg-colors-primary, #2563eb);
30
+ cursor: pointer;
31
+ }
32
+ .pg-row--group:hover,
33
+ .pg-row--group.pg-row--hover {
34
+ background: var(--pg-colors-group-row-hover, #eff2ff) !important;
35
+ }
36
+ .pg-row--group:hover .pg-row-group__toggle,
37
+ .pg-row--group.pg-row--hover .pg-row-group__toggle {
38
+ background: var(--pg-colors-group-toggle-hover, rgba(37, 99, 235, 0.1));
39
+ color: var(--pg-colors-primary, #2563eb);
40
+ }
41
+
42
+ /* ──────────────────── Group footer row ──────────────────── */
43
+ /*
44
+ * Appears below the last leaf child of each expanded group.
45
+ * Shows the same aggregate values as the group header row (AG Grid groupIncludeFooter).
46
+ * Cells are fully selectable and copyable; editing is blocked because values are computed.
47
+ */
48
+ .pg-row--group-footer {
49
+ background: var(--pg-colors-group-footer-background, #eef2fa);
50
+ font-style: italic;
51
+ font-weight: var(--pg-typography-font-weight-semi-bold, 600);
52
+ border-bottom: 2px solid var(--pg-colors-primary-light, #bfdbfe);
53
+ cursor: default;
54
+ }
55
+ .pg-row--group-footer:hover,
56
+ .pg-row--group-footer.pg-row--hover {
57
+ background: var(--pg-colors-group-footer-hover, #e0e9f8) !important;
58
+ }
59
+ /* Level-based indentation mirrors the group header rules */
60
+ .pg-row--group-footer[data-level="0"] .pg-row-group__cell { padding-left: var(--pg-group-indent-0, 8px); }
61
+ .pg-row--group-footer[data-level="1"] .pg-row-group__cell { padding-left: var(--pg-group-indent-1, 28px); }
62
+ .pg-row--group-footer[data-level="2"] .pg-row-group__cell { padding-left: var(--pg-group-indent-2, 48px); }
63
+ .pg-row--group-footer[data-level="3"] .pg-row-group__cell { padding-left: var(--pg-group-indent-3, 68px); }
64
+ .pg-row--group-footer[data-level="4"] .pg-row-group__cell { padding-left: var(--pg-group-indent-4, 88px); }
65
+ .pg-row--group-footer[data-level="5"] .pg-row-group__cell { padding-left: var(--pg-group-indent-5, 108px); }
66
+ .pg-row--group-footer .pg-row-group__label {
67
+ color: var(--pg-colors-text-secondary, #475569);
68
+ }
69
+ /* Dark-mode overrides */
70
+ .pg-grid[data-theme="dark"] .pg-row--group-footer {
71
+ background: var(--pg-colors-group-footer-background, rgba(37, 99, 235, 0.06));
72
+ border-bottom-color: rgba(96, 165, 250, 0.28);
73
+ }
74
+ .pg-grid[data-theme="dark"] .pg-row--group-footer:hover,
75
+ .pg-grid[data-theme="dark"] .pg-row--group-footer.pg-row--hover {
76
+ background: var(--pg-colors-group-footer-hover, rgba(37, 99, 235, 0.11)) !important;
77
+ }
78
+ .pg-grid[data-theme="dark"] .pg-row--group-footer .pg-row-group__label {
79
+ color: var(--pg-colors-text-secondary, #94a3b8);
80
+ }
81
+
82
+ `;
83
+ //# sourceMappingURL=rows.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.css.js","sourceRoot":"","sources":["../../../src/styles/base/rows.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EtB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — scrollbars section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export declare const scrollbarsCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Scrollbars \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Native vertical scrollbar \u2014 flex item that lives beside the center panel.\n It is NOT absolutely positioned so it never overlaps cell content; the center\n panel shrinks to make room for it, keeping every cell border fully visible. */\n.pg-scrollbar-v-native {\n flex-shrink: 0;\n overflow-y: scroll;\n overflow-x: hidden;\n background: var(--pg-colors-scrollbar-bg, #fff);\n}\n.pg-scrollbar-v-spacer {\n width: 1px;\n pointer-events: none;\n}\n/* Horizontal row: sits below the body */\n.pg-scrollbar-h-row {\n display: flex;\n flex-direction: row;\n flex-shrink: 0;\n border-top: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-scrollbar-h-spacer { flex-shrink: 0; background: var(--pg-colors-scrollbar-bg, #fff); }\n.pg-scrollbar-h-spacer--left { width: var(--pg-left-panel-width, 0px); overflow: scroll; }\n.pg-scrollbar-h-spacer--right { width: var(--pg-right-panel-width, 0px); overflow: scroll; }\n/* Aligns the h-scroll track with the narrowed center panel (which is now\n offset by the vertical scrollbar width captured in --pg-scrollbar-v-width). */\n.pg-scrollbar-h-spacer--vscroll {\n flex-shrink: 0;\n width: 0px;\n background: var(--pg-colors-scrollbar-bg, #fff);\n}\n/* Native horizontal scrollbar container */\n.pg-scrollbar-h-native {\n flex: 1 1 0;\n min-width: 0;\n overflow-x: scroll;\n overflow-y: hidden;\n background: var(--pg-colors-scrollbar-bg, #fff);\n}\n.pg-scrollbar-h-content {\n height: 1px;\n pointer-events: none;\n}\n/* Hidden state \u2014 applied to wraps */\n.pg-scrollbar--hidden { display: none; }\n\n";
9
+ //# sourceMappingURL=scrollbars.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollbars.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/scrollbars.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,qzDA+CzB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Photon Grid base styles — scrollbars section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export const scrollbarsCss = `/* ──────────────────── Scrollbars ──────────────────── */
9
+
10
+ /* Native vertical scrollbar — flex item that lives beside the center panel.
11
+ It is NOT absolutely positioned so it never overlaps cell content; the center
12
+ panel shrinks to make room for it, keeping every cell border fully visible. */
13
+ .pg-scrollbar-v-native {
14
+ flex-shrink: 0;
15
+ overflow-y: scroll;
16
+ overflow-x: hidden;
17
+ background: var(--pg-colors-scrollbar-bg, #fff);
18
+ }
19
+ .pg-scrollbar-v-spacer {
20
+ width: 1px;
21
+ pointer-events: none;
22
+ }
23
+ /* Horizontal row: sits below the body */
24
+ .pg-scrollbar-h-row {
25
+ display: flex;
26
+ flex-direction: row;
27
+ flex-shrink: 0;
28
+ border-top: 1px solid var(--pg-colors-border, #e2e8f0);
29
+ }
30
+ .pg-scrollbar-h-spacer { flex-shrink: 0; background: var(--pg-colors-scrollbar-bg, #fff); }
31
+ .pg-scrollbar-h-spacer--left { width: var(--pg-left-panel-width, 0px); overflow: scroll; }
32
+ .pg-scrollbar-h-spacer--right { width: var(--pg-right-panel-width, 0px); overflow: scroll; }
33
+ /* Aligns the h-scroll track with the narrowed center panel (which is now
34
+ offset by the vertical scrollbar width captured in --pg-scrollbar-v-width). */
35
+ .pg-scrollbar-h-spacer--vscroll {
36
+ flex-shrink: 0;
37
+ width: 0px;
38
+ background: var(--pg-colors-scrollbar-bg, #fff);
39
+ }
40
+ /* Native horizontal scrollbar container */
41
+ .pg-scrollbar-h-native {
42
+ flex: 1 1 0;
43
+ min-width: 0;
44
+ overflow-x: scroll;
45
+ overflow-y: hidden;
46
+ background: var(--pg-colors-scrollbar-bg, #fff);
47
+ }
48
+ .pg-scrollbar-h-content {
49
+ height: 1px;
50
+ pointer-events: none;
51
+ }
52
+ /* Hidden state — applied to wraps */
53
+ .pg-scrollbar--hidden { display: none; }
54
+
55
+ `;
56
+ //# sourceMappingURL=scrollbars.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollbars.css.js","sourceRoot":"","sources":["../../../src/styles/base/scrollbars.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+C5B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — sparkline section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export declare const sparklineCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Context menu submenu \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-context-menu__item { display: flex; align-items: center; gap: 8px; }\n.pg-context-menu__item--has-sub { position: relative; padding-right: 28px; max-width: stretch; }\n.pg-context-menu__item--has-sub > .pg-context-menu__sub { display: none; }\n.pg-context-menu__item--has-sub:hover > .pg-context-menu__sub { display: block; }\n.pg-context-menu__sub {\n position: absolute; left: 100%; top: -4px; z-index: 10001;\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));\n min-width: 175px; padding: 4px;\n white-space: nowrap;\n}\n.pg-context-menu__item--has-sub::after {\n content: '\u203A'; position: absolute; right: 10px; top: 50%; transform: translateY(-50%);\n font-size: 16px; color: var(--pg-colors-text-secondary,#64748b); line-height: 1;\n}\n.pg-context-menu__icon {\n display: inline-flex; align-items: center; width: 16px; flex-shrink: 0;\n color: var(--pg-colors-text-secondary,#64748b);\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Sparkline cell \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Cell value wrapper \u2014 fills the inner cell area as a flex row */\n.pg-cell__value--sparkline {\n display: flex;\n align-items: stretch;\n width: 100%;\n height: 100%;\n padding: 0;\n}\n\n/* Wrapper div that stretches canvas to fill the cell */\n.pg-sparkline-wrapper {\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n min-width: 0;\n}\n\n/* Canvas element \u2014 fills wrapper, no border or background */\n.pg-sparkline {\n display: block;\n width: 100%;\n height: 100%;\n min-width: 0;\n cursor: crosshair;\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Sparkline tooltip \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Singleton floating tooltip attached to document.body */\n.pg-sparkline-tooltip {\n position: fixed;\n z-index: 99999;\n pointer-events: none;\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-tooltip, 0 4px 14px rgba(0,0,0,0.12));\n padding: 6px 10px;\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n color: var(--pg-colors-text-primary, #0f172a);\n white-space: nowrap;\n line-height: 1.5;\n min-width: 60px;\n}\n.pg-sparkline-tooltip--hidden {\n display: none;\n}\n\n/* x-axis label row (shown when data is an object array with xKey) */\n.pg-sparkline-tooltip__label {\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: var(--pg-typography-font-size-xs, 11px);\n margin-bottom: 2px;\n}\n\n/* Numeric value row */\n.pg-sparkline-tooltip__value {\n font-weight: 600;\n color: var(--pg-colors-text-primary, #0f172a);\n}\n\n/* OHLC four-row layout */\n.pg-sparkline-tooltip__ohlc-row {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n}\n.pg-sparkline-tooltip__ohlc-key {\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: var(--pg-typography-font-size-xs, 11px);\n min-width: 12px;\n}\n\n";
9
+ //# sourceMappingURL=sparkline.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparkline.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/sparkline.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,6uHAoGxB,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Photon Grid base styles — sparkline section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export const sparklineCss = `/* ──────────────────── Context menu submenu ──────────────────── */
9
+ .pg-context-menu__item { display: flex; align-items: center; gap: 8px; }
10
+ .pg-context-menu__item--has-sub { position: relative; padding-right: 28px; max-width: stretch; }
11
+ .pg-context-menu__item--has-sub > .pg-context-menu__sub { display: none; }
12
+ .pg-context-menu__item--has-sub:hover > .pg-context-menu__sub { display: block; }
13
+ .pg-context-menu__sub {
14
+ position: absolute; left: 100%; top: -4px; z-index: 10001;
15
+ background: var(--pg-colors-surface,#fff);
16
+ border: 1px solid var(--pg-colors-border,#e2e8f0);
17
+ border-radius: var(--pg-borders-radius-md,6px);
18
+ box-shadow: var(--pg-shadows-dropdown,0 8px 24px rgba(0,0,0,0.12));
19
+ min-width: 175px; padding: 4px;
20
+ white-space: nowrap;
21
+ }
22
+ .pg-context-menu__item--has-sub::after {
23
+ content: '›'; position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
24
+ font-size: 16px; color: var(--pg-colors-text-secondary,#64748b); line-height: 1;
25
+ }
26
+ .pg-context-menu__icon {
27
+ display: inline-flex; align-items: center; width: 16px; flex-shrink: 0;
28
+ color: var(--pg-colors-text-secondary,#64748b);
29
+ }
30
+
31
+ /* ──────────────────── Sparkline cell ──────────────────── */
32
+
33
+ /* Cell value wrapper — fills the inner cell area as a flex row */
34
+ .pg-cell__value--sparkline {
35
+ display: flex;
36
+ align-items: stretch;
37
+ width: 100%;
38
+ height: 100%;
39
+ padding: 0;
40
+ }
41
+
42
+ /* Wrapper div that stretches canvas to fill the cell */
43
+ .pg-sparkline-wrapper {
44
+ display: flex;
45
+ align-items: center;
46
+ width: 100%;
47
+ height: 100%;
48
+ min-width: 0;
49
+ }
50
+
51
+ /* Canvas element — fills wrapper, no border or background */
52
+ .pg-sparkline {
53
+ display: block;
54
+ width: 100%;
55
+ height: 100%;
56
+ min-width: 0;
57
+ cursor: crosshair;
58
+ }
59
+
60
+ /* ──────────────────── Sparkline tooltip ──────────────────── */
61
+
62
+ /* Singleton floating tooltip attached to document.body */
63
+ .pg-sparkline-tooltip {
64
+ position: fixed;
65
+ z-index: 99999;
66
+ pointer-events: none;
67
+ background: var(--pg-colors-surface, #fff);
68
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
69
+ border-radius: var(--pg-borders-radius-md, 6px);
70
+ box-shadow: var(--pg-shadows-tooltip, 0 4px 14px rgba(0,0,0,0.12));
71
+ padding: 6px 10px;
72
+ font-size: var(--pg-typography-font-size-sm, 12px);
73
+ font-family: var(--pg-typography-font-family, system-ui, sans-serif);
74
+ color: var(--pg-colors-text-primary, #0f172a);
75
+ white-space: nowrap;
76
+ line-height: 1.5;
77
+ min-width: 60px;
78
+ }
79
+ .pg-sparkline-tooltip--hidden {
80
+ display: none;
81
+ }
82
+
83
+ /* x-axis label row (shown when data is an object array with xKey) */
84
+ .pg-sparkline-tooltip__label {
85
+ color: var(--pg-colors-text-secondary, #64748b);
86
+ font-size: var(--pg-typography-font-size-xs, 11px);
87
+ margin-bottom: 2px;
88
+ }
89
+
90
+ /* Numeric value row */
91
+ .pg-sparkline-tooltip__value {
92
+ font-weight: 600;
93
+ color: var(--pg-colors-text-primary, #0f172a);
94
+ }
95
+
96
+ /* OHLC four-row layout */
97
+ .pg-sparkline-tooltip__ohlc-row {
98
+ display: flex;
99
+ justify-content: space-between;
100
+ gap: 12px;
101
+ }
102
+ .pg-sparkline-tooltip__ohlc-key {
103
+ color: var(--pg-colors-text-secondary, #64748b);
104
+ font-size: var(--pg-typography-font-size-xs, 11px);
105
+ min-width: 12px;
106
+ }
107
+
108
+ `;
109
+ //# sourceMappingURL=sparkline.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparkline.css.js","sourceRoot":"","sources":["../../../src/styles/base/sparkline.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoG3B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — tooltip section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export declare const tooltipCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Custom cell tooltip \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * Only mounted/shown for columns with renderer.tooltip \u2014 plain columns keep\n * using the free native title attribute. Positioned via a transform set\n * in JS relative to .pg-grid__body so it never affects grid layout. */\n.pg-tooltip {\n position: absolute;\n top: 0;\n left: 0;\n z-index: var(--pg-z-index-tooltip, 150);\n max-width: 320px;\n padding: var(--pg-spacing-xs, 6px) var(--pg-spacing-sm, 10px);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-tooltip-bg, #1f2937);\n color: var(--pg-colors-tooltip-text, #ffffff);\n font-family: var(--pg-typography-font-family, sans-serif);\n font-size: var(--pg-typography-font-size-xs, 12px);\n line-height: 1.4;\n box-shadow: var(--pg-shadows-dropdown, 0 4px 12px rgba(0, 0, 0, 0.15));\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n transition:\n opacity var(--pg-transitions-duration-fast, 100ms),\n visibility var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-tooltip--visible {\n opacity: 1;\n visibility: visible;\n}\n\n";
9
+ //# sourceMappingURL=tooltip.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/tooltip.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,+yCA8BtB,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Photon Grid base styles — tooltip section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export const tooltipCss = `/* ──────────────────── Custom cell tooltip ────────────────────
9
+ * Only mounted/shown for columns with renderer.tooltip — plain columns keep
10
+ * using the free native title attribute. Positioned via a transform set
11
+ * in JS relative to .pg-grid__body so it never affects grid layout. */
12
+ .pg-tooltip {
13
+ position: absolute;
14
+ top: 0;
15
+ left: 0;
16
+ z-index: var(--pg-z-index-tooltip, 150);
17
+ max-width: 320px;
18
+ padding: var(--pg-spacing-xs, 6px) var(--pg-spacing-sm, 10px);
19
+ border-radius: var(--pg-borders-radius-sm, 4px);
20
+ background: var(--pg-colors-tooltip-bg, #1f2937);
21
+ color: var(--pg-colors-tooltip-text, #ffffff);
22
+ font-family: var(--pg-typography-font-family, sans-serif);
23
+ font-size: var(--pg-typography-font-size-xs, 12px);
24
+ line-height: 1.4;
25
+ box-shadow: var(--pg-shadows-dropdown, 0 4px 12px rgba(0, 0, 0, 0.15));
26
+ pointer-events: none;
27
+ opacity: 0;
28
+ visibility: hidden;
29
+ transition:
30
+ opacity var(--pg-transitions-duration-fast, 100ms),
31
+ visibility var(--pg-transitions-duration-fast, 100ms);
32
+ }
33
+ .pg-tooltip--visible {
34
+ opacity: 1;
35
+ visibility: visible;
36
+ }
37
+
38
+ `;
39
+ //# sourceMappingURL=tooltip.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.css.js","sourceRoot":"","sources":["../../../src/styles/base/tooltip.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BzB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — tree section.
3
+ *
4
+ * Auto-split from base-styles.ts. Concatenated back (in order) by
5
+ * base-styles.ts; edit here, not there. Order is preserved because CSS
6
+ * cascade depends on it.
7
+ */
8
+ export declare const treeCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Tree Data \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n The toggle column's cell gets a marker class ('.pg-cell--tree-toggle-col',\n applied by applyTreeToggle regardless of whether the row has children \u2014\n leaves still need to sit indented under their parent), then indentation is\n purely data-level-driven CSS, the same mechanism '.pg-row--group' already\n uses (see above) \u2014 no inline styles, no per-instance stylesheet. */\n.pg-cell--tree-toggle-col {\n display: flex;\n align-items: center;\n gap: var(--pg-group-row-gap, 6px);\n min-width: 0;\n}\n\n.pg-row--tree[data-level=\"0\"] .pg-cell--tree-toggle-col { padding-left: var(--pg-tree-indent-0, 8px); }\n.pg-row--tree[data-level=\"1\"] .pg-cell--tree-toggle-col { padding-left: var(--pg-tree-indent-1, 28px); }\n.pg-row--tree[data-level=\"2\"] .pg-cell--tree-toggle-col { padding-left: var(--pg-tree-indent-2, 48px); }\n.pg-row--tree[data-level=\"3\"] .pg-cell--tree-toggle-col { padding-left: var(--pg-tree-indent-3, 68px); }\n.pg-row--tree[data-level=\"4\"] .pg-cell--tree-toggle-col { padding-left: var(--pg-tree-indent-4, 88px); }\n.pg-row--tree[data-level=\"5\"] .pg-cell--tree-toggle-col { padding-left: var(--pg-tree-indent-5, 108px); }\n.pg-row--tree[data-level=\"6\"] .pg-cell--tree-toggle-col { padding-left: var(--pg-tree-indent-6, 128px); }\n.pg-row--tree[data-level=\"7\"] .pg-cell--tree-toggle-col { padding-left: var(--pg-tree-indent-7, 148px); }\n\n.pg-tree-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--pg-group-toggle-size, 24px);\n height: var(--pg-group-toggle-size, 24px);\n border-radius: var(--pg-borders-radius-sm, 4px);\n color: var(--pg-colors-text-secondary, #64748b);\n cursor: pointer;\n transition:\n background var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-tree-toggle:hover {\n background: var(--pg-colors-row-hover, #f0f7ff);\n color: var(--pg-colors-text-primary, #1e293b);\n}\n\n/* Reserves the toggle's own footprint on leaf rows (no chevron) so a leaf's\n content lines up under its parent's content, not under the parent's toggle. */\n.pg-tree-toggle-spacer {\n display: inline-block;\n flex-shrink: 0;\n width: var(--pg-group-toggle-size, 24px);\n height: var(--pg-group-toggle-size, 24px);\n}\n\n/* A getDataPath filler node \u2014 a synthetic path-prefix row with no real backing record. */\n.pg-row--tree-filler .pg-cell__value {\n font-style: italic;\n color: var(--pg-colors-text-secondary, #64748b);\n}\n\n/* Drag-to-reparent drop feedback (3-way before/inside/after \u2014 see RowDragRenderer.setTreeMode) */\n.pg-row--drop-target.pg-row--drop-inside {\n background: var(--pg-colors-selection-background, rgba(37, 99, 235, 0.1));\n outline: 2px dashed var(--pg-colors-primary, #2563eb);\n outline-offset: -2px;\n}\n.pg-row--drop-target.pg-row--drop-before {\n box-shadow: inset 0 2px 0 0 var(--pg-colors-primary, #2563eb);\n}\n.pg-row--drop-target.pg-row--drop-after {\n box-shadow: inset 0 -2px 0 0 var(--pg-colors-primary, #2563eb);\n}\n\n";
9
+ //# sourceMappingURL=tree.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/tree.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,uwGAqEnB,CAAC"}