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,233 @@
1
+ /**
2
+ * Photon Grid base styles — cells 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 cellsCss = `/* ──────────────────── Cells ──────────────────── */
9
+ .pg-cell {
10
+ display: flex;
11
+ align-items: center;
12
+ flex-shrink: 0;
13
+ min-width: var(--pg-sizing-column-min-width, 40px);
14
+ border-right: 1px solid transparent;
15
+ padding: 0;
16
+ overflow: hidden;
17
+ position: relative;
18
+ }
19
+ .pg-cell--v-border { border-right-color: var(--pg-colors-border, #e2e8f0); }
20
+ .pg-cell:last-child { border-right: none; }
21
+ .pg-cell--align-right { justify-content: flex-end; }
22
+ .pg-cell--align-center { justify-content: center; }
23
+ .pg-cell--align-right .pg-cell__inner { text-align: right; }
24
+ .pg-cell--align-center .pg-cell__inner { text-align: center; }
25
+
26
+ /* ─── Cell selection (CSS-based, replaces canvas) ─── */
27
+ /* Suppress the browser's native focus ring — the grid uses its own blue
28
+ box-shadow indicator on .pg-cell--active-cell instead. */
29
+ .pg-cell { user-select: none; outline: none; }
30
+
31
+ /*
32
+ * Range selection — edge borders drawn via ::after so CSS border corners
33
+ * always connect cleanly (no box-shadow joining artefacts).
34
+ * The JS engine adds sel-top/right/bottom/left only on cells that sit on
35
+ * the outer edge of the range; interior cells carry no edge classes.
36
+ */
37
+ .pg-cell--in-selection {
38
+ background-color: var(--pg-colors-selection-background, aliceblue) !important;
39
+ position: relative;
40
+ z-index: 1;
41
+ }
42
+ .pg-cell--in-selection::after {
43
+ content: '';
44
+ position: absolute;
45
+ inset: 0;
46
+ border: 0 solid var(--pg-colors-primary, #2563eb);
47
+ pointer-events: none;
48
+ }
49
+ .pg-cell--sel-top::after { border-top-width: 1px; }
50
+ .pg-cell--sel-bottom::after { border-bottom-width: 1px; }
51
+ .pg-cell--sel-left::after { border-left-width: 1px; }
52
+ .pg-cell--sel-right::after { border-right-width: 1px; }
53
+
54
+ /* Active (focused) cell — solid 2px inset border, no background */
55
+ .pg-cell--active-cell {
56
+ background-color: transparent !important;
57
+ box-shadow: inset 0 0 0 2px var(--pg-colors-primary, #2563eb) !important;
58
+ position: relative;
59
+ z-index: 2;
60
+ outline: none;
61
+ }
62
+ /* Suppress the ::after edge overlay only when the active cell is NOT inside a selection */
63
+ .pg-cell--active-cell:not(.pg-cell--in-selection)::after { content: none; }
64
+
65
+ /* Active cell inside a range — selection wins entirely: no 2px border, full selection look */
66
+ .pg-cell--in-selection.pg-cell--active-cell {
67
+ background-color: var(--pg-colors-selection-background, aliceblue) !important;
68
+ box-shadow: none !important;
69
+ }
70
+
71
+ /* Dark-mode overrides */
72
+ .pg-grid[data-theme="dark"] .pg-cell--in-selection {
73
+ background-color: rgba(37,99,235,0.18) !important;
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 {
80
+ background-color: rgba(37,99,235,0.25) !important;
81
+ box-shadow: inset 0 0 0 2px #60a5fa !important;
82
+ }
83
+ .pg-grid[data-theme="dark"] .pg-cell--in-selection.pg-cell--active-cell {
84
+ background-color: rgba(37,99,235,0.18) !important;
85
+ box-shadow:
86
+ inset 0 var(--_t) 0 0 #60a5fa,
87
+ inset 0 var(--_b) 0 0 #60a5fa,
88
+ inset var(--_l) 0 0 0 #60a5fa,
89
+ inset var(--_r) 0 0 0 #60a5fa !important;
90
+ }
91
+
92
+ /* ─── Group aggregate cells ─── */
93
+ /*
94
+ * Aggregate values are displayed inside .pg-cell--agg cells that sit directly
95
+ * under their column headers, aligned with normal data-row cells via the same
96
+ * [data-col-id] width rules managed by ColumnStyleManager.
97
+ */
98
+ .pg-cell--agg {
99
+ color: var(--pg-colors-agg-text, var(--pg-colors-text-secondary, #475569));
100
+ font-style: italic;
101
+ font-weight: var(--pg-typography-font-weight-semi-bold, 600);
102
+ }
103
+ .pg-grid[data-theme="dark"] .pg-cell--agg {
104
+ color: var(--pg-colors-agg-text, var(--pg-colors-text-secondary, #94a3b8));
105
+ }
106
+
107
+ /* ─── Copy / Cut flash feedback ─── */
108
+ /*
109
+ * background-color: !important on pg-cell--in-selection blocks keyframe bg changes.
110
+ * Use a ::after overlay instead — it's a separate layer, no !important conflict.
111
+ */
112
+ @keyframes pg-copy-flash-overlay {
113
+ 0% { opacity: 0; }
114
+ 15% { opacity: 1; }
115
+ 100% { opacity: 0; }
116
+ }
117
+ @keyframes pg-cut-flash-overlay {
118
+ 0% { opacity: 0; }
119
+ 15% { opacity: 1; }
120
+ 100% { opacity: 0; }
121
+ }
122
+ /*
123
+ * Flash overlay uses ::before so it never conflicts with the ::after
124
+ * pseudo-element that draws the selection edge borders.
125
+ */
126
+ .pg-cell--copy-flash::before,
127
+ .pg-cell--cut-flash::before {
128
+ content: '';
129
+ position: absolute;
130
+ inset: 0;
131
+ pointer-events: none;
132
+ z-index: 5;
133
+ }
134
+ .pg-cell--copy-flash::before {
135
+ background: rgba(59, 130, 246, 0.45);
136
+ animation: pg-copy-flash-overlay 0.75s ease-out forwards;
137
+ }
138
+ .pg-cell--cut-flash::before {
139
+ background: rgba(239, 68, 68, 0.45);
140
+ animation: pg-cut-flash-overlay 0.75s ease-out forwards;
141
+ }
142
+ /* Dark mode uses stronger overlay */
143
+ .pg-grid[data-theme="dark"] .pg-cell--copy-flash::before {
144
+ background: rgba(99, 165, 253, 0.5);
145
+ }
146
+ .pg-grid[data-theme="dark"] .pg-cell--cut-flash::before {
147
+ background: rgba(252, 100, 100, 0.5);
148
+ }
149
+
150
+ /* ─── Fill success flash ─── */
151
+ /*
152
+ * Applied to the newly filled cells after a fill-handle drag completes.
153
+ * Uses ::before (same as copy/cut flash) so it never conflicts with the
154
+ * selection edge border drawn on ::after.
155
+ */
156
+ @keyframes pg-fill-flash-overlay {
157
+ 0% { opacity: 0; }
158
+ 20% { opacity: 1; }
159
+ 100% { opacity: 0; }
160
+ }
161
+ .pg-cell--fill-flash::before {
162
+ content: '';
163
+ position: absolute;
164
+ inset: 0;
165
+ pointer-events: none;
166
+ z-index: 5;
167
+ background: rgba(34, 197, 94, 0.45);
168
+ animation: pg-fill-flash-overlay 0.75s ease-out forwards;
169
+ }
170
+ .pg-grid[data-theme="dark"] .pg-cell--fill-flash::before {
171
+ background: rgba(74, 222, 128, 0.5);
172
+ }
173
+
174
+ /* ─── Fill handle ─── */
175
+ /*
176
+ * The fill handle is a small drag target at the bottom-right corner of the
177
+ * primary selection range. It lives inside the corner cell as an absolutely-
178
+ * positioned child so it scrolls with the grid naturally.
179
+ *
180
+ * pg-cell--has-fill-handle lets the handle extend 4 px past the cell edge
181
+ * (standard AG Grid behaviour) by lifting overflow:hidden on that one cell.
182
+ *
183
+ * Dragging from the handle copies the source range into the dragged area in
184
+ * one direction at a time; a dashed overlay (pg-cell--fill-preview) previews
185
+ * the fill area before the mouse button is released.
186
+ */
187
+ .pg-cell--has-fill-handle {
188
+ overflow: visible !important;
189
+ }
190
+ .pg-fill-handle {
191
+ position: absolute;
192
+ right: 0px;
193
+ bottom: 0px;
194
+ width: 6px;
195
+ height: 6px;
196
+ box-sizing: border-box;
197
+ background-color: var(--pg-colors-primary, #2563eb);
198
+ cursor: crosshair;
199
+ z-index: 10;
200
+ pointer-events: auto;
201
+ user-select: none;
202
+ }
203
+
204
+ /* ─── Fill preview — dashed border on cells being hovered during fill drag ─── */
205
+ .pg-cell--fill-preview {
206
+ background-color: var(--pg-colors-selection-background, aliceblue) !important;
207
+ position: relative;
208
+ z-index: 1;
209
+ }
210
+ /*
211
+ * The fill-preview ::after uses a dashed border (vs the solid selection border)
212
+ * to clearly distinguish "about to be filled" from "already selected."
213
+ * These classes are orthogonal to sel-top/bottom/left/right — fill-preview
214
+ * cells are never pg-cell--in-selection, so there is no ::after conflict.
215
+ */
216
+ .pg-cell--fill-preview::after {
217
+ content: '';
218
+ position: absolute;
219
+ inset: 0;
220
+ border: 0 dashed var(--pg-colors-primary, #2563eb);
221
+ pointer-events: none;
222
+ }
223
+ .pg-cell--fp-top::after { border-top-width: 1px; }
224
+ .pg-cell--fp-bottom::after { border-bottom-width: 1px; }
225
+ .pg-cell--fp-left::after { border-left-width: 1px; }
226
+ .pg-cell--fp-right::after { border-right-width: 1px; }
227
+
228
+ .pg-grid[data-theme="dark"] .pg-cell--fill-preview {
229
+ background-color: rgba(37, 99, 235, 0.12) !important;
230
+ }
231
+
232
+ `;
233
+ //# sourceMappingURL=cells.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cells.css.js","sourceRoot":"","sources":["../../../src/styles/base/cells.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgOvB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Styles for the chart configuration drawer (Chart / Set Up / Customize tabs).
3
+ * The drawer is a child of the chart panel body: it is anchored to the right
4
+ * edge and slides in (right → left) when opened and out (left → right) when
5
+ * closed via a `transform` transition. All colors, spacing and fonts come from
6
+ * Photon theme tokens so the drawer matches light / dark / custom themes with no
7
+ * hardcoded values.
8
+ */
9
+ export declare const chartConfigCss = "\n.pg-chart-config {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 30;\n width: 264px;\n max-width: 85%;\n display: flex;\n flex-direction: column;\n background: var(--pg-colors-surface, #fff);\n border-left: 1px solid var(--pg-colors-border, #e2e8f0);\n // box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n color: var(--pg-colors-text-primary, #0f172a);\n overflow: hidden;\n transform: translateX(100%);\n transition: transform 240ms cubic-bezier(0.22, 0.61, 0.36, 1);\n will-change: transform;\n}\n.pg-chart-config--open { transform: translateX(0); }\n@media (prefers-reduced-motion: reduce) {\n .pg-chart-config { transition: none; }\n}\n.pg-chart-config__header {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 6px 0 6px;\n border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);\n flex-shrink: 0;\n}\n.pg-chart-config__close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: transparent;\n color: var(--pg-colors-text-secondary, #64748b);\n border-radius: 4px;\n cursor: pointer;\n}\n.pg-chart-config__close:hover {\n background: var(--pg-colors-background-alt, #f1f5f9);\n color: var(--pg-colors-text-primary, #0f172a);\n}\n.pg-chart-config__tabs {\n display: flex;\n gap: 2px;\n flex: 1;\n}\n.pg-chart-config__tab {\n flex: 1;\n padding: 8px 6px;\n border: none;\n background: transparent;\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n border-bottom: 2px solid transparent;\n font-family: inherit;\n}\n.pg-chart-config__tab:hover { color: var(--pg-colors-text-primary, #0f172a); }\n.pg-chart-config__tab--active {\n color: var(--pg-colors-primary, #2563eb);\n border-bottom-color: var(--pg-colors-primary, #2563eb);\n}\n.pg-chart-config__body {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 10px 12px;\n}\n.pg-chart-config__group-title {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--pg-colors-text-secondary, #64748b);\n margin: 10px 0 6px;\n}\n.pg-chart-config__gallery {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 6px;\n}\n.pg-chart-config__gallery-item {\n display: block;\n height: 58px;\n padding: 3px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 6px;\n background: var(--pg-colors-surface, #fff);\n cursor: pointer;\n overflow: hidden;\n transition: border-color 80ms, background 80ms, box-shadow 80ms;\n}\n.pg-chart-config__gallery-item:hover {\n border-color: var(--pg-colors-primary, #2563eb);\n background: var(--pg-colors-background-alt, #f1f5f9);\n}\n.pg-chart-config__gallery-item--active {\n border-color: var(--pg-colors-primary, #2563eb);\n background: var(--pg-colors-background-alt, #f1f5f9);\n box-shadow: 0 0 0 1px var(--pg-colors-primary, #2563eb) inset;\n}\n.pg-chart-config__gallery-canvas {\n display: block;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n";
10
+ //# sourceMappingURL=chart-config.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/chart-config.css.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,4mGAoH1B,CAAC"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Styles for the chart configuration drawer (Chart / Set Up / Customize tabs).
3
+ * The drawer is a child of the chart panel body: it is anchored to the right
4
+ * edge and slides in (right → left) when opened and out (left → right) when
5
+ * closed via a `transform` transition. All colors, spacing and fonts come from
6
+ * Photon theme tokens so the drawer matches light / dark / custom themes with no
7
+ * hardcoded values.
8
+ */
9
+ export const chartConfigCss = `
10
+ .pg-chart-config {
11
+ position: absolute;
12
+ top: 0;
13
+ right: 0;
14
+ bottom: 0;
15
+ z-index: 30;
16
+ width: 264px;
17
+ max-width: 85%;
18
+ display: flex;
19
+ flex-direction: column;
20
+ background: var(--pg-colors-surface, #fff);
21
+ border-left: 1px solid var(--pg-colors-border, #e2e8f0);
22
+ // box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
23
+ font-family: var(--pg-typography-font-family, system-ui, sans-serif);
24
+ color: var(--pg-colors-text-primary, #0f172a);
25
+ overflow: hidden;
26
+ transform: translateX(100%);
27
+ transition: transform 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
28
+ will-change: transform;
29
+ }
30
+ .pg-chart-config--open { transform: translateX(0); }
31
+ @media (prefers-reduced-motion: reduce) {
32
+ .pg-chart-config { transition: none; }
33
+ }
34
+ .pg-chart-config__header {
35
+ display: flex;
36
+ align-items: center;
37
+ gap: 4px;
38
+ padding: 6px 6px 0 6px;
39
+ border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);
40
+ flex-shrink: 0;
41
+ }
42
+ .pg-chart-config__close {
43
+ display: inline-flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ width: 26px;
47
+ height: 26px;
48
+ border: none;
49
+ background: transparent;
50
+ color: var(--pg-colors-text-secondary, #64748b);
51
+ border-radius: 4px;
52
+ cursor: pointer;
53
+ }
54
+ .pg-chart-config__close:hover {
55
+ background: var(--pg-colors-background-alt, #f1f5f9);
56
+ color: var(--pg-colors-text-primary, #0f172a);
57
+ }
58
+ .pg-chart-config__tabs {
59
+ display: flex;
60
+ gap: 2px;
61
+ flex: 1;
62
+ }
63
+ .pg-chart-config__tab {
64
+ flex: 1;
65
+ padding: 8px 6px;
66
+ border: none;
67
+ background: transparent;
68
+ color: var(--pg-colors-text-secondary, #64748b);
69
+ font-size: 12px;
70
+ font-weight: 500;
71
+ cursor: pointer;
72
+ border-bottom: 2px solid transparent;
73
+ font-family: inherit;
74
+ }
75
+ .pg-chart-config__tab:hover { color: var(--pg-colors-text-primary, #0f172a); }
76
+ .pg-chart-config__tab--active {
77
+ color: var(--pg-colors-primary, #2563eb);
78
+ border-bottom-color: var(--pg-colors-primary, #2563eb);
79
+ }
80
+ .pg-chart-config__body {
81
+ flex: 1;
82
+ min-height: 0;
83
+ overflow-y: auto;
84
+ padding: 10px 12px;
85
+ }
86
+ .pg-chart-config__group-title {
87
+ font-size: 11px;
88
+ font-weight: 600;
89
+ text-transform: uppercase;
90
+ letter-spacing: 0.04em;
91
+ color: var(--pg-colors-text-secondary, #64748b);
92
+ margin: 10px 0 6px;
93
+ }
94
+ .pg-chart-config__gallery {
95
+ display: grid;
96
+ grid-template-columns: repeat(3, 1fr);
97
+ gap: 6px;
98
+ }
99
+ .pg-chart-config__gallery-item {
100
+ display: block;
101
+ height: 58px;
102
+ padding: 3px;
103
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
104
+ border-radius: 6px;
105
+ background: var(--pg-colors-surface, #fff);
106
+ cursor: pointer;
107
+ overflow: hidden;
108
+ transition: border-color 80ms, background 80ms, box-shadow 80ms;
109
+ }
110
+ .pg-chart-config__gallery-item:hover {
111
+ border-color: var(--pg-colors-primary, #2563eb);
112
+ background: var(--pg-colors-background-alt, #f1f5f9);
113
+ }
114
+ .pg-chart-config__gallery-item--active {
115
+ border-color: var(--pg-colors-primary, #2563eb);
116
+ background: var(--pg-colors-background-alt, #f1f5f9);
117
+ box-shadow: 0 0 0 1px var(--pg-colors-primary, #2563eb) inset;
118
+ }
119
+ .pg-chart-config__gallery-canvas {
120
+ display: block;
121
+ width: 100%;
122
+ height: 100%;
123
+ pointer-events: none;
124
+ }
125
+ `;
126
+ //# sourceMappingURL=chart-config.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config.css.js","sourceRoot":"","sources":["../../../src/styles/base/chart-config.css.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoH7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Styles for the reusable chart-config form controls (dropdown, toggle, color,
3
+ * number/text inputs, segmented buttons, collapsible sections, reorderable
4
+ * list). Token-driven — no hardcoded colors, spacing or fonts.
5
+ */
6
+ export declare const chartControlsCss = "\n.pg-chart-ctrl__row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin: 8px 0;\n}\n.pg-chart-ctrl__label {\n font-size: 12px;\n color: var(--pg-colors-text-secondary, #64748b);\n flex: 1;\n}\n.pg-chart-ctrl__select,\n.pg-chart-ctrl__input {\n min-width: 0;\n max-width: 140px;\n flex: 1 1 auto;\n padding: 5px 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 5px;\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-primary, #0f172a);\n font-size: 12px;\n font-family: inherit;\n}\n.pg-chart-ctrl__select:focus,\n.pg-chart-ctrl__input:focus {\n outline: none;\n border-color: var(--pg-colors-primary, #2563eb);\n}\n.pg-chart-ctrl__color {\n width: 34px;\n height: 24px;\n padding: 0;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 5px;\n background: var(--pg-colors-surface, #fff);\n cursor: pointer;\n}\n.pg-chart-ctrl__toggle {\n position: relative;\n width: 34px;\n height: 18px;\n border: none;\n border-radius: 9px;\n background: var(--pg-colors-border, #cbd5e1);\n cursor: pointer;\n transition: background 120ms;\n flex: 0 0 auto;\n}\n.pg-chart-ctrl__toggle--on { background: var(--pg-colors-primary, #2563eb); }\n.pg-chart-ctrl__toggle-knob {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #fff;\n transition: transform 120ms;\n}\n.pg-chart-ctrl__toggle--on .pg-chart-ctrl__toggle-knob { transform: translateX(16px); }\n.pg-chart-ctrl__segmented {\n display: inline-flex;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 5px;\n overflow: hidden;\n}\n.pg-chart-ctrl__segment {\n padding: 4px 9px;\n border: none;\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: 11px;\n cursor: pointer;\n font-family: inherit;\n}\n.pg-chart-ctrl__segment--active {\n background: var(--pg-colors-primary, #2563eb);\n color: #fff;\n}\n.pg-chart-ctrl__section { border-top: 1px solid var(--pg-colors-border, #e2e8f0); }\n.pg-chart-ctrl__section:first-child { border-top: none; }\n.pg-chart-ctrl__section-header {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 9px 2px;\n border: none;\n background: transparent;\n color: var(--pg-colors-text-primary, #0f172a);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n font-family: inherit;\n}\n.pg-chart-ctrl__section-chevron {\n display: inline-flex;\n color: var(--pg-colors-text-secondary, #64748b);\n transition: transform 120ms;\n transform: rotate(-90deg);\n}\n.pg-chart-ctrl__section--open .pg-chart-ctrl__section-chevron { transform: rotate(0deg); }\n.pg-chart-ctrl__section-body { display: none; padding: 0 2px 8px; }\n.pg-chart-ctrl__section--open .pg-chart-ctrl__section-body { display: block; }\n.pg-chart-ctrl__list { display: flex; flex-direction: column; gap: 4px; }\n.pg-chart-ctrl__list-item {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 6px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 5px;\n background: var(--pg-colors-surface, #fff);\n}\n.pg-chart-ctrl__list-item--dragging { opacity: 0.6; }\n.pg-chart-ctrl__list-handle {\n display: inline-flex;\n color: var(--pg-colors-text-secondary, #94a3b8);\n cursor: grab;\n}\n.pg-chart-ctrl__list-swatch {\n width: 12px;\n height: 12px;\n border-radius: 3px;\n background: var(--pg-chart-swatch, var(--pg-colors-primary, #2563eb));\n flex: 0 0 auto;\n}\n.pg-chart-ctrl__list-label {\n flex: 1;\n font-size: 12px;\n color: var(--pg-colors-text-primary, #0f172a);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.pg-chart-ctrl__list-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: none;\n background: transparent;\n color: var(--pg-colors-text-secondary, #94a3b8);\n border-radius: 4px;\n cursor: pointer;\n}\n.pg-chart-ctrl__list-remove:hover {\n background: var(--pg-colors-background-alt, #f1f5f9);\n color: var(--pg-colors-danger, #dc2626);\n}\n.pg-chart-panel__dots-item--disabled {\n opacity: 0.4;\n pointer-events: none;\n}\n";
7
+ //# sourceMappingURL=chart-controls.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-controls.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/chart-controls.css.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,+sIA8J5B,CAAC"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Styles for the reusable chart-config form controls (dropdown, toggle, color,
3
+ * number/text inputs, segmented buttons, collapsible sections, reorderable
4
+ * list). Token-driven — no hardcoded colors, spacing or fonts.
5
+ */
6
+ export const chartControlsCss = `
7
+ .pg-chart-ctrl__row {
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: space-between;
11
+ gap: 8px;
12
+ margin: 8px 0;
13
+ }
14
+ .pg-chart-ctrl__label {
15
+ font-size: 12px;
16
+ color: var(--pg-colors-text-secondary, #64748b);
17
+ flex: 1;
18
+ }
19
+ .pg-chart-ctrl__select,
20
+ .pg-chart-ctrl__input {
21
+ min-width: 0;
22
+ max-width: 140px;
23
+ flex: 1 1 auto;
24
+ padding: 5px 8px;
25
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
26
+ border-radius: 5px;
27
+ background: var(--pg-colors-surface, #fff);
28
+ color: var(--pg-colors-text-primary, #0f172a);
29
+ font-size: 12px;
30
+ font-family: inherit;
31
+ }
32
+ .pg-chart-ctrl__select:focus,
33
+ .pg-chart-ctrl__input:focus {
34
+ outline: none;
35
+ border-color: var(--pg-colors-primary, #2563eb);
36
+ }
37
+ .pg-chart-ctrl__color {
38
+ width: 34px;
39
+ height: 24px;
40
+ padding: 0;
41
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
42
+ border-radius: 5px;
43
+ background: var(--pg-colors-surface, #fff);
44
+ cursor: pointer;
45
+ }
46
+ .pg-chart-ctrl__toggle {
47
+ position: relative;
48
+ width: 34px;
49
+ height: 18px;
50
+ border: none;
51
+ border-radius: 9px;
52
+ background: var(--pg-colors-border, #cbd5e1);
53
+ cursor: pointer;
54
+ transition: background 120ms;
55
+ flex: 0 0 auto;
56
+ }
57
+ .pg-chart-ctrl__toggle--on { background: var(--pg-colors-primary, #2563eb); }
58
+ .pg-chart-ctrl__toggle-knob {
59
+ position: absolute;
60
+ top: 2px;
61
+ left: 2px;
62
+ width: 14px;
63
+ height: 14px;
64
+ border-radius: 50%;
65
+ background: #fff;
66
+ transition: transform 120ms;
67
+ }
68
+ .pg-chart-ctrl__toggle--on .pg-chart-ctrl__toggle-knob { transform: translateX(16px); }
69
+ .pg-chart-ctrl__segmented {
70
+ display: inline-flex;
71
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
72
+ border-radius: 5px;
73
+ overflow: hidden;
74
+ }
75
+ .pg-chart-ctrl__segment {
76
+ padding: 4px 9px;
77
+ border: none;
78
+ background: var(--pg-colors-surface, #fff);
79
+ color: var(--pg-colors-text-secondary, #64748b);
80
+ font-size: 11px;
81
+ cursor: pointer;
82
+ font-family: inherit;
83
+ }
84
+ .pg-chart-ctrl__segment--active {
85
+ background: var(--pg-colors-primary, #2563eb);
86
+ color: #fff;
87
+ }
88
+ .pg-chart-ctrl__section { border-top: 1px solid var(--pg-colors-border, #e2e8f0); }
89
+ .pg-chart-ctrl__section:first-child { border-top: none; }
90
+ .pg-chart-ctrl__section-header {
91
+ display: flex;
92
+ align-items: center;
93
+ gap: 6px;
94
+ width: 100%;
95
+ padding: 9px 2px;
96
+ border: none;
97
+ background: transparent;
98
+ color: var(--pg-colors-text-primary, #0f172a);
99
+ font-size: 12px;
100
+ font-weight: 600;
101
+ cursor: pointer;
102
+ font-family: inherit;
103
+ }
104
+ .pg-chart-ctrl__section-chevron {
105
+ display: inline-flex;
106
+ color: var(--pg-colors-text-secondary, #64748b);
107
+ transition: transform 120ms;
108
+ transform: rotate(-90deg);
109
+ }
110
+ .pg-chart-ctrl__section--open .pg-chart-ctrl__section-chevron { transform: rotate(0deg); }
111
+ .pg-chart-ctrl__section-body { display: none; padding: 0 2px 8px; }
112
+ .pg-chart-ctrl__section--open .pg-chart-ctrl__section-body { display: block; }
113
+ .pg-chart-ctrl__list { display: flex; flex-direction: column; gap: 4px; }
114
+ .pg-chart-ctrl__list-item {
115
+ display: flex;
116
+ align-items: center;
117
+ gap: 6px;
118
+ padding: 5px 6px;
119
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
120
+ border-radius: 5px;
121
+ background: var(--pg-colors-surface, #fff);
122
+ }
123
+ .pg-chart-ctrl__list-item--dragging { opacity: 0.6; }
124
+ .pg-chart-ctrl__list-handle {
125
+ display: inline-flex;
126
+ color: var(--pg-colors-text-secondary, #94a3b8);
127
+ cursor: grab;
128
+ }
129
+ .pg-chart-ctrl__list-swatch {
130
+ width: 12px;
131
+ height: 12px;
132
+ border-radius: 3px;
133
+ background: var(--pg-chart-swatch, var(--pg-colors-primary, #2563eb));
134
+ flex: 0 0 auto;
135
+ }
136
+ .pg-chart-ctrl__list-label {
137
+ flex: 1;
138
+ font-size: 12px;
139
+ color: var(--pg-colors-text-primary, #0f172a);
140
+ overflow: hidden;
141
+ text-overflow: ellipsis;
142
+ white-space: nowrap;
143
+ }
144
+ .pg-chart-ctrl__list-remove {
145
+ display: inline-flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ width: 20px;
149
+ height: 20px;
150
+ border: none;
151
+ background: transparent;
152
+ color: var(--pg-colors-text-secondary, #94a3b8);
153
+ border-radius: 4px;
154
+ cursor: pointer;
155
+ }
156
+ .pg-chart-ctrl__list-remove:hover {
157
+ background: var(--pg-colors-background-alt, #f1f5f9);
158
+ color: var(--pg-colors-danger, #dc2626);
159
+ }
160
+ .pg-chart-panel__dots-item--disabled {
161
+ opacity: 0.4;
162
+ pointer-events: none;
163
+ }
164
+ `;
165
+ //# sourceMappingURL=chart-controls.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-controls.css.js","sourceRoot":"","sources":["../../../src/styles/base/chart-controls.css.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8J/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — chart-panel 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 chartPanelCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Chart Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-chart-panel-backdrop {\n position: absolute; inset: 0; z-index: 9990;\n background: transparent;\n overflow: hidden;\n pointer-events: none;\n}\n// .pg-chart-panel-backdrop--open {\n// pointer-events: auto;\n// }\n.pg-chart-panel-backdrop--fullscreen {\n position: fixed !important;\n background: rgba(0,0,0,0.40) !important;\n}\n.pg-chart-panel {\n position: absolute;\n background: var(--pg-colors-surface,#fff);\n border-radius: 4px;\n box-shadow: 0 8px 40px rgba(0,0,0,0.18),0 2px 12px rgba(0,0,0,0.10);\n display: flex; flex-direction: column;\n width: min(720px, 88%); height: min(520px, 85%);\n overflow: hidden;\n pointer-events: auto;\n}\n.pg-chart-panel--fullscreen {\n width: calc(100%) !important; height: calc(100%) !important;\n}\n.pg-chart-panel__header {\n display: flex; align-items: center; justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--pg-colors-border,#e2e8f0);\n flex-shrink: 0;\n cursor: grab; user-select: none;\n}\n.pg-chart-panel__header--dragging { cursor: grabbing; }\n.pg-chart-panel--dragging .pg-chart-panel__body { pointer-events: none; }\n.pg-chart-panel__title {\n font-size: 15px; font-weight: 600;\n color: var(--pg-colors-text-primary,#0f172a);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n}\n.pg-chart-panel__actions { display: flex; align-items: center; gap: 4px; }\n.pg-chart-panel__action-btn {\n display: inline-flex; align-items: center; justify-content: center;\n width: 28px; height: 28px; border-radius: 4px;\n border: none; background: transparent;\n color: var(--pg-colors-text-secondary,#64748b); cursor: pointer;\n transition: background 80ms, color 80ms;\n}\n.pg-chart-panel__action-btn:hover {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__body {\n flex: 1; min-height: 0; position: relative; overflow: hidden;\n}\n.pg-chart-panel__chart-area {\n position: absolute; top: 0; left: 0; bottom: 0; right: 0;\n padding: 8px; overflow: hidden;\n transition: right 240ms cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion: reduce) {\n .pg-chart-panel__chart-area { transition: none; }\n}\n.pg-chart-panel__canvas { display: block; }\n.pg-chart-panel__dots-btn {\n position: absolute; top: 12px; right: 12px; z-index: 10;\n display: inline-flex; align-items: center; justify-content: center;\n width: 26px; height: 26px; border-radius: 4px;\n border: none; background: transparent;\n color: var(--pg-colors-text-secondary,#64748b); cursor: pointer;\n transition: background 80ms;\n}\n.pg-chart-panel__dots-btn:hover, .pg-chart-panel__dots-btn--active {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__dots-menu {\n display: none; position: absolute; top: 40px; right: 8px; z-index: 20;\n background: var(--pg-colors-surface,#fff);\n border: 1px solid var(--pg-colors-border,#e2e8f0);\n border-radius: 6px;\n box-shadow: 0 8px 24px rgba(0,0,0,0.12);\n min-width: 160px; padding: 4px;\n}\n.pg-chart-panel__dots-menu--open { display: block; }\n.pg-chart-panel__dots-item {\n display: flex; align-items: center; gap: 8px;\n width: 100%; padding: 7px 10px;\n border: none; border-radius: 4px; background: transparent;\n cursor: pointer; text-align: left;\n font-size: 13px; color: var(--pg-colors-text-primary,#0f172a);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n transition: background 80ms;\n}\n.pg-chart-panel__dots-item:hover { background: var(--pg-colors-background-alt,#f1f5f9); }\n.pg-chart-panel__empty {\n display: flex; flex-direction: column; align-items: center; justify-content: center;\n height: 100%; gap: 10px; padding: 24px;\n color: var(--pg-colors-text-secondary,#64748b);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n}\n.pg-chart-panel__empty-icon { opacity: 0.35; color: var(--pg-colors-text-secondary,#64748b); }\n.pg-chart-panel__empty-text {\n font-size: 15px; font-weight: 600;\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__empty-sub {\n font-size: 12px; text-align: center; max-width: 280px;\n color: var(--pg-colors-text-secondary,#64748b);\n}\n.pg-chart-panel__legend {\n display: flex; flex-wrap: wrap; align-items: center; justify-content: center;\n gap: 2px 4px; padding: 5px 12px 8px;\n flex-shrink: 0;\n border-top: 1px solid var(--pg-colors-border,#e2e8f0);\n}\n.pg-chart-panel__legend:empty { border-top: none; padding: 0; }\n.pg-chart-panel__legend-item {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 4px 8px; border-radius: 5px;\n border: none; background: transparent; cursor: pointer;\n font-size: 12px; color: var(--pg-colors-text-secondary,#64748b);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n user-select: none;\n transition: background 80ms, opacity 220ms;\n}\n.pg-chart-panel__legend-item:hover {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__legend-item--hidden { opacity: 0.35; }\n.pg-chart-panel__legend-swatch {\n width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0;\n}\n.pg-chart-panel__legend-label {\n max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n";
9
+ //# sourceMappingURL=chart-panel.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-panel.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/chart-panel.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,qjLA2IzB,CAAC"}