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,312 @@
1
+ /**
2
+ * Photon Grid base styles — filter 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 filterCss = `/* ──────────────────── Filter Row ──────────────────── */
9
+ .pg-drag-preview {
10
+ position: fixed;
11
+ pointer-events: none;
12
+ z-index: 99999;
13
+ display: flex;
14
+ align-items: center;
15
+ gap: var(--pg-drag-preview-gap, 8px);
16
+ padding: var(--pg-drag-preview-padding, 6px 12px);
17
+ border-radius: var(--pg-borders-radius-md, 6px);
18
+ box-shadow: var(--pg-shadows-drag-preview, 0 4px 16px rgba(0,0,0,0.18));
19
+ font-size: var(--pg-typography-font-size-md, 13px);
20
+ font-weight: var(--pg-typography-font-weight-medium, 500);
21
+ white-space: nowrap;
22
+ will-change: transform;
23
+ background: var(--pg-colors-drag-preview-background, var(--pg-drag-preview-bg, #fff));
24
+ border: 1px solid var(--pg-colors-drag-preview-border, var(--pg-drag-preview-border, #e0e0e0));
25
+ color: var(--pg-colors-text-primary, var(--pg-text-primary, #222));
26
+ top: 0;
27
+ left: 0;
28
+ transform: translate(-9999px, -9999px);
29
+ }
30
+ .pg-drag-preview__avatar {
31
+ width: var(--pg-drag-preview-avatar-size, 24px);
32
+ height: var(--pg-drag-preview-avatar-size, 24px);
33
+ background: var(--pg-colors-primary, var(--pg-primary, #2563eb));
34
+ overflow: hidden;
35
+ flex-shrink: 0;
36
+ }
37
+ .pg-drag-preview__avatar--circle { border-radius: 50%; }
38
+ .pg-drag-preview__avatar--square { border-radius: var(--pg-borders-radius-sm, 4px); }
39
+ .pg-drag-preview__avatar-img {
40
+ width: 100%;
41
+ height: 100%;
42
+ object-fit: cover;
43
+ }
44
+ .pg-drag-preview__label {
45
+ flex: 1;
46
+ min-width: 0;
47
+ }
48
+ .pg-drag-preview__badge {
49
+ background: var(--pg-colors-primary, var(--pg-primary, #2563eb));
50
+ color: var(--pg-colors-primary-contrast, #fff);
51
+ border-radius: var(--pg-borders-radius-pill, 999px);
52
+ padding: 1px 7px;
53
+ font-size: var(--pg-typography-font-size-xs, 11px);
54
+ font-weight: var(--pg-typography-font-weight-semi-bold, 600);
55
+ min-width: 20px;
56
+ text-align: center;
57
+ }
58
+
59
+ .pg-filter-cell {
60
+ display: flex;
61
+ align-items: center;
62
+ flex-shrink: 0;
63
+ padding: 0 6px;
64
+ border-right: 1px solid var(--pg-colors-border, #e2e8f0);
65
+ }
66
+ .pg-filter-cell:last-child { border-right: none; }
67
+ .pg-filter-cell--checkbox {
68
+ width: 44px;
69
+ min-width: 44px;
70
+ max-width: 44px;
71
+ flex-shrink: 0;
72
+ }
73
+ .pg-filter-cell--serial {
74
+ width: 52px;
75
+ min-width: 52px;
76
+ max-width: 52px;
77
+ flex-shrink: 0;
78
+ }
79
+ .pg-filter-input {
80
+ width: 100%;
81
+ height: 24px;
82
+ padding: 0 8px;
83
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
84
+ border-radius: var(--pg-borders-radius-sm, 4px);
85
+ font-size: var(--pg-typography-font-size-sm, 12px);
86
+ font-family: inherit;
87
+ background: var(--pg-colors-surface, #fff);
88
+ color: inherit;
89
+ outline: none;
90
+ transition: border-color var(--pg-transitions-duration-fast, 100ms);
91
+ }
92
+ .pg-filter-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }
93
+
94
+ /* ──────────────────── Filter Panel ──────────────────── */
95
+ .pg-filter-panel {
96
+ position: absolute;
97
+ z-index: var(--pg-z-index-filter-panel, 200);
98
+ min-width: 270px;
99
+ max-width: 320px;
100
+ width: max-content;
101
+ background: var(--pg-colors-surface, #fff);
102
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
103
+ border-radius: var(--pg-borders-radius-md, 6px);
104
+ box-shadow: var(--pg-shadows-lg, 0 8px 24px rgba(0,0,0,.12));
105
+ overflow: hidden;
106
+ font-size: var(--pg-typography-font-size-sm, 13px);
107
+ color: var(--pg-colors-text, #1e293b);
108
+ user-select: none;
109
+ }
110
+
111
+ /* ── Condition filter ── */
112
+ .pg-filter-cond-wrap { padding: 10px; display: flex; flex-direction: column; gap: 6px; }
113
+
114
+ .pg-filter-cond__row { display: flex; flex-direction: column; gap: 4px; }
115
+ .pg-filter-cond__row--hidden { display: none; }
116
+
117
+ .pg-filter-cond__select {
118
+ width: 100%;
119
+ height: 30px;
120
+ padding: 0 8px;
121
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
122
+ border-radius: var(--pg-borders-radius-sm, 4px);
123
+ background: var(--pg-colors-surface, #fff);
124
+ color: var(--pg-colors-text, #1e293b);
125
+ font-size: inherit;
126
+ font-family: inherit;
127
+ cursor: pointer;
128
+ outline: none;
129
+ transition: border-color var(--pg-transitions-duration-fast, 100ms);
130
+ }
131
+ .pg-filter-cond__select:focus { border-color: var(--pg-colors-border-focus, #2563eb); }
132
+
133
+ .pg-filter-cond__inputs { display: flex; align-items: center; gap: 4px; }
134
+ .pg-filter-cond__inputs--hidden { display: none; }
135
+ /* Stack inputs vertically in range (Between) mode so the panel never overflows horizontally */
136
+ .pg-filter-cond__inputs--range { flex-direction: column; align-items: stretch; gap: 4px; }
137
+ .pg-filter-cond__inputs--range .pg-filter-cond__range-sep {
138
+ text-align: center;
139
+ padding: 2px 0;
140
+ color: var(--pg-colors-text-secondary, #64748b);
141
+ font-size: var(--pg-typography-font-size-xs, 11px);
142
+ font-weight: 500;
143
+ }
144
+
145
+ .pg-filter-cond__input {
146
+ flex: 1;
147
+ height: 30px;
148
+ padding: 0 8px;
149
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
150
+ border-radius: var(--pg-borders-radius-sm, 4px);
151
+ background: var(--pg-colors-surface, #fff);
152
+ color: var(--pg-colors-text, #1e293b);
153
+ font-size: inherit;
154
+ font-family: inherit;
155
+ outline: none;
156
+ padding: 6px;
157
+ transition: border-color var(--pg-transitions-duration-fast, 100ms);
158
+ }
159
+ .pg-filter-cond__input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }
160
+ .pg-filter-cond__input--hidden { display: none; }
161
+
162
+ .pg-filter-cond__range-sep {
163
+ flex-shrink: 0;
164
+ font-size: var(--pg-typography-font-size-xs, 11px);
165
+ color: var(--pg-colors-text-secondary, #475569);
166
+ padding: 0 2px;
167
+ }
168
+ .pg-filter-cond__range-sep--hidden { display: none; }
169
+
170
+ /* ── Logic toggle row (AND / OR / None) ── */
171
+ .pg-filter-logic {
172
+ display: flex;
173
+ gap: 4px;
174
+ padding: 4px 0 2px;
175
+ }
176
+ .pg-filter-logic--hidden { display: none; }
177
+
178
+ .pg-filter-logic__btn {
179
+ flex: 1;
180
+ height: 26px;
181
+ padding: 0 6px;
182
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
183
+ border-radius: var(--pg-borders-radius-sm, 4px);
184
+ background: var(--pg-colors-surface, #fff);
185
+ color: var(--pg-colors-text-secondary, #475569);
186
+ font-size: var(--pg-typography-font-size-xs, 11px);
187
+ font-family: inherit;
188
+ font-weight: 500;
189
+ cursor: pointer;
190
+ text-align: center;
191
+ transition: background var(--pg-transitions-duration-fast, 100ms),
192
+ color var(--pg-transitions-duration-fast, 100ms),
193
+ border-color var(--pg-transitions-duration-fast, 100ms);
194
+ }
195
+ .pg-filter-logic__btn:hover { background: var(--pg-colors-background-alt, #f1f5f9); }
196
+ .pg-filter-logic__btn--active {
197
+ background: var(--pg-colors-primary, #2563eb);
198
+ color: #fff;
199
+ border-color: var(--pg-colors-primary, #2563eb);
200
+ }
201
+
202
+ /* ── Set filter (dropdown / array) ── */
203
+ .pg-filter-set { display: flex; flex-direction: column; }
204
+
205
+ .pg-filter-set__search {
206
+ padding: 8px 10px 4px;
207
+ }
208
+ .pg-filter-set__search-input {
209
+ width: 100%;
210
+ height: 30px;
211
+ padding: 0 10px;
212
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
213
+ border-radius: var(--pg-borders-radius-sm, 4px);
214
+ background: var(--pg-colors-surface, #fff);
215
+ color: var(--pg-colors-text, #1e293b);
216
+ font-size: inherit;
217
+ font-family: inherit;
218
+ box-sizing: border-box;
219
+ outline: none;
220
+ transition: border-color var(--pg-transitions-duration-fast, 100ms);
221
+ }
222
+ .pg-filter-set__search-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }
223
+
224
+ .pg-filter-set__divider {
225
+ height: 1px;
226
+ background: var(--pg-colors-border, #e2e8f0);
227
+ margin: 2px 0;
228
+ }
229
+
230
+ /* Select All item */
231
+ .pg-filter-set__item {
232
+ display: flex;
233
+ align-items: center;
234
+ gap: 8px;
235
+ height: 28px;
236
+ padding: 0 10px;
237
+ cursor: pointer;
238
+ transition: background var(--pg-transitions-duration-fast, 100ms);
239
+ box-sizing: border-box;
240
+ position: absolute;
241
+ left: 0;
242
+ right: 0;
243
+ }
244
+ .pg-filter-set__item:hover { background: var(--pg-colors-background-alt, #f1f5f9); }
245
+ .pg-filter-set__item--select-all {
246
+ position: static;
247
+ font-weight: 500;
248
+ color: var(--pg-colors-text, #1e293b);
249
+ }
250
+ .pg-filter-set__item-label {
251
+ overflow: hidden;
252
+ text-overflow: ellipsis;
253
+ white-space: nowrap;
254
+ }
255
+ .pg-filter-set__item-label--blank { color: var(--pg-colors-text-disabled, #94a3b8); font-style: italic; }
256
+
257
+ .pg-filter-set__checkbox {
258
+ flex-shrink: 0;
259
+ width: 14px;
260
+ height: 14px;
261
+ cursor: pointer;
262
+ accent-color: var(--pg-colors-primary, #2563eb);
263
+ }
264
+
265
+ /* Virtual scroll containers */
266
+ .pg-filter-set__list {
267
+ overflow-y: auto;
268
+ overflow-x: hidden;
269
+ position: relative;
270
+ scrollbar-width: thin;
271
+ scrollbar-color: var(--pg-colors-border, #e2e8f0) transparent;
272
+ }
273
+ .pg-filter-set__list::-webkit-scrollbar { width: 6px; }
274
+ .pg-filter-set__list::-webkit-scrollbar-track { background: transparent; }
275
+ .pg-filter-set__list::-webkit-scrollbar-thumb {
276
+ background: var(--pg-colors-border, #e2e8f0);
277
+ border-radius: 3px;
278
+ }
279
+ .pg-filter-set__list-inner { position: relative; width: 100%; }
280
+
281
+ /* ── Panel footer ── */
282
+ .pg-filter-panel__footer {
283
+ display: flex;
284
+ align-items: center;
285
+ justify-content: flex-end;
286
+ padding: 8px 10px;
287
+ // border-top: 1px solid var(--pg-colors-border, #e2e8f0);
288
+ // background: var(--pg-colors-background, #f8fafc);
289
+ }
290
+
291
+ .pg-filter-panel__clear-btn {
292
+ height: 28px;
293
+ padding: 0 14px;
294
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
295
+ border-radius: var(--pg-borders-radius-sm, 4px);
296
+ background: var(--pg-colors-surface, #fff);
297
+ color: var(--pg-colors-text-secondary, #475569);
298
+ font-size: var(--pg-typography-font-size-sm, 12px);
299
+ font-family: inherit;
300
+ cursor: pointer;
301
+ transition: background var(--pg-transitions-duration-fast, 100ms),
302
+ border-color var(--pg-transitions-duration-fast, 100ms),
303
+ color var(--pg-transitions-duration-fast, 100ms);
304
+ }
305
+ .pg-filter-panel__clear-btn:hover {
306
+ background: var(--pg-colors-background-alt, #f1f5f9);
307
+ border-color: var(--pg-colors-text-secondary, #475569);
308
+ color: var(--pg-colors-text, #1e293b);
309
+ }
310
+
311
+ `;
312
+ //# sourceMappingURL=filter.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.css.js","sourceRoot":"","sources":["../../../src/styles/base/filter.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+SxB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — footer 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 footerCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Footer \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-grid__footer {\n flex-shrink: 0;\n border-top: 1px solid var(--pg-colors-footer-border, #e2e8f0);\n background: var(--pg-colors-footer-background, #f8fafc);\n}\n.pg-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 16px;\n height: 44px;\n gap: 16px;\n}\n.pg-pagination {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.pg-pagination__info {\n font-size: var(--pg-typography-font-size-sm, 12px);\n color: var(--pg-colors-text-secondary, #475569);\n min-width: 100px;\n text-align: center;\n}\n.pg-pagination__btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-primary, #0f172a);\n cursor: pointer;\n transition: all var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-pagination__btn:hover:not(:disabled) { background: var(--pg-colors-background-alt, #f1f5f9); border-color: var(--pg-colors-border-strong, #cbd5e1); }\n.pg-pagination__btn:disabled { opacity: 0.38; cursor: not-allowed; }\n.pg-pagination__page-input {\n width: 54px;\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n background: var(--pg-colors-surface, #fff);\n color: inherit;\n text-align: center;\n outline: none;\n}\n.pg-pagination__page-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n.pg-pagination__size { display: flex; align-items: center; gap: 8px; }\n.pg-pagination__size-label { font-size: var(--pg-typography-font-size-sm, 12px); color: var(--pg-colors-text-secondary, #475569); white-space: nowrap; }\n.pg-pagination__size-select {\n height: 30px;\n padding: 0 6px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n background: var(--pg-colors-surface, #fff);\n color: inherit;\n cursor: pointer;\n outline: none;\n}\n\n";
9
+ //# sourceMappingURL=footer.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/footer.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,w+EAqErB,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Photon Grid base styles — footer 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 footerCss = `/* ──────────────────── Footer ──────────────────── */
9
+ .pg-grid__footer {
10
+ flex-shrink: 0;
11
+ border-top: 1px solid var(--pg-colors-footer-border, #e2e8f0);
12
+ background: var(--pg-colors-footer-background, #f8fafc);
13
+ }
14
+ .pg-footer {
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: space-between;
18
+ padding: 0 16px;
19
+ height: 44px;
20
+ gap: 16px;
21
+ }
22
+ .pg-pagination {
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 4px;
26
+ }
27
+ .pg-pagination__info {
28
+ font-size: var(--pg-typography-font-size-sm, 12px);
29
+ color: var(--pg-colors-text-secondary, #475569);
30
+ min-width: 100px;
31
+ text-align: center;
32
+ }
33
+ .pg-pagination__btn {
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ width: 30px;
38
+ height: 30px;
39
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
40
+ border-radius: var(--pg-borders-radius-sm, 4px);
41
+ background: var(--pg-colors-surface, #fff);
42
+ color: var(--pg-colors-text-primary, #0f172a);
43
+ cursor: pointer;
44
+ transition: all var(--pg-transitions-duration-fast, 100ms);
45
+ }
46
+ .pg-pagination__btn:hover:not(:disabled) { background: var(--pg-colors-background-alt, #f1f5f9); border-color: var(--pg-colors-border-strong, #cbd5e1); }
47
+ .pg-pagination__btn:disabled { opacity: 0.38; cursor: not-allowed; }
48
+ .pg-pagination__page-input {
49
+ width: 54px;
50
+ height: 30px;
51
+ padding: 0 8px;
52
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
53
+ border-radius: var(--pg-borders-radius-sm, 4px);
54
+ font-size: var(--pg-typography-font-size-sm, 12px);
55
+ font-family: inherit;
56
+ background: var(--pg-colors-surface, #fff);
57
+ color: inherit;
58
+ text-align: center;
59
+ outline: none;
60
+ }
61
+ .pg-pagination__page-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }
62
+ .pg-pagination__size { display: flex; align-items: center; gap: 8px; }
63
+ .pg-pagination__size-label { font-size: var(--pg-typography-font-size-sm, 12px); color: var(--pg-colors-text-secondary, #475569); white-space: nowrap; }
64
+ .pg-pagination__size-select {
65
+ height: 30px;
66
+ padding: 0 6px;
67
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
68
+ border-radius: var(--pg-borders-radius-sm, 4px);
69
+ font-size: var(--pg-typography-font-size-sm, 12px);
70
+ font-family: inherit;
71
+ background: var(--pg-colors-surface, #fff);
72
+ color: inherit;
73
+ cursor: pointer;
74
+ outline: none;
75
+ }
76
+
77
+ `;
78
+ //# sourceMappingURL=footer.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.css.js","sourceRoot":"","sources":["../../../src/styles/base/footer.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqExB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — group-bar-search 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 groupBarSearchCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Group bar quick-filter search \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-group-search {\n display: flex;\n align-items: center;\n padding: 0 10px;\n flex-shrink: 0;\n height: 100%;\n}\n.pg-group-drop-zone--left .pg-group-search,\n.pg-group-drop-zone--right .pg-group-search { display: none; }\n\n/* Field wrapper: position:relative so icon + clear button can overlay the input */\n.pg-group-search__field {\n position: relative;\n display: flex;\n align-items: center;\n}\n.pg-group-search__icon {\n position: absolute;\n left: 9px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n color: var(--pg-colors-text-disabled, #94a3b8);\n pointer-events: none;\n transition: color 150ms;\n z-index: 1;\n}\n.pg-group-search__field:focus-within .pg-group-search__icon {\n color: var(--pg-colors-primary, #2563eb);\n}\n.pg-group-search__input {\n width: 210px;\n height: 32px;\n padding: 0 28px 0 30px;\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n color: var(--pg-colors-text-primary, #0f172a);\n background: var(--pg-colors-surface, #ffffff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n outline: none;\n transition: border-color 150ms, box-shadow 150ms;\n appearance: none;\n}\n.pg-group-search__input::placeholder { color: var(--pg-colors-text-disabled, #94a3b8); }\n.pg-group-search__input:focus {\n border-color: var(--pg-colors-border-focus, #2563eb);\n box-shadow: 0 0 0 3px var(--pg-colors-selection-background, rgba(37, 99, 235, 0.12));\n}\n.pg-group-search__clear {\n position: absolute;\n right: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n cursor: pointer;\n color: var(--pg-colors-text-secondary, #64748b);\n opacity: 0;\n pointer-events: none;\n transition: opacity 150ms, background 100ms;\n}\n.pg-group-search__clear--visible {\n opacity: 0.55;\n pointer-events: auto;\n}\n.pg-group-search__clear--visible:hover {\n opacity: 1;\n background: var(--pg-colors-background-alt, #f1f5f9);\n}\n\n";
9
+ //# sourceMappingURL=group-bar-search.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-bar-search.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/group-bar-search.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,q3EA6E7B,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Photon Grid base styles — group-bar-search 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 groupBarSearchCss = `/* ──────────────────── Group bar quick-filter search ──────────────────── */
9
+ .pg-group-search {
10
+ display: flex;
11
+ align-items: center;
12
+ padding: 0 10px;
13
+ flex-shrink: 0;
14
+ height: 100%;
15
+ }
16
+ .pg-group-drop-zone--left .pg-group-search,
17
+ .pg-group-drop-zone--right .pg-group-search { display: none; }
18
+
19
+ /* Field wrapper: position:relative so icon + clear button can overlay the input */
20
+ .pg-group-search__field {
21
+ position: relative;
22
+ display: flex;
23
+ align-items: center;
24
+ }
25
+ .pg-group-search__icon {
26
+ position: absolute;
27
+ left: 9px;
28
+ top: 50%;
29
+ transform: translateY(-50%);
30
+ display: flex;
31
+ align-items: center;
32
+ color: var(--pg-colors-text-disabled, #94a3b8);
33
+ pointer-events: none;
34
+ transition: color 150ms;
35
+ z-index: 1;
36
+ }
37
+ .pg-group-search__field:focus-within .pg-group-search__icon {
38
+ color: var(--pg-colors-primary, #2563eb);
39
+ }
40
+ .pg-group-search__input {
41
+ width: 210px;
42
+ height: 32px;
43
+ padding: 0 28px 0 30px;
44
+ font-size: var(--pg-typography-font-size-sm, 12px);
45
+ font-family: inherit;
46
+ color: var(--pg-colors-text-primary, #0f172a);
47
+ background: var(--pg-colors-surface, #ffffff);
48
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
49
+ border-radius: var(--pg-borders-radius-sm, 4px);
50
+ outline: none;
51
+ transition: border-color 150ms, box-shadow 150ms;
52
+ appearance: none;
53
+ }
54
+ .pg-group-search__input::placeholder { color: var(--pg-colors-text-disabled, #94a3b8); }
55
+ .pg-group-search__input:focus {
56
+ border-color: var(--pg-colors-border-focus, #2563eb);
57
+ box-shadow: 0 0 0 3px var(--pg-colors-selection-background, rgba(37, 99, 235, 0.12));
58
+ }
59
+ .pg-group-search__clear {
60
+ position: absolute;
61
+ right: 6px;
62
+ top: 50%;
63
+ transform: translateY(-50%);
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ width: 18px;
68
+ height: 18px;
69
+ border-radius: 50%;
70
+ cursor: pointer;
71
+ color: var(--pg-colors-text-secondary, #64748b);
72
+ opacity: 0;
73
+ pointer-events: none;
74
+ transition: opacity 150ms, background 100ms;
75
+ }
76
+ .pg-group-search__clear--visible {
77
+ opacity: 0.55;
78
+ pointer-events: auto;
79
+ }
80
+ .pg-group-search__clear--visible:hover {
81
+ opacity: 1;
82
+ background: var(--pg-colors-background-alt, #f1f5f9);
83
+ }
84
+
85
+ `;
86
+ //# sourceMappingURL=group-bar-search.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-bar-search.css.js","sourceRoot":"","sources":["../../../src/styles/base/group-bar-search.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EhC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Photon Grid base styles — group-drop-zone 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 groupDropZoneCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Group drop zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-group-drop-zone--top {\n display: flex;\n flex-direction: row;\n align-items: center;\n flex-shrink: 0;\n height: var(--pg-header-row-height, 44px);\n background: var(--pg-colors-header-background, #f8fafc);\n border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);\n overflow: hidden;\n}\n.pg-group-drop-zone--left {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n width: 160px;\n background: var(--pg-colors-header-background, #f8fafc);\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n overflow: hidden;\n position: relative;\n}\n.pg-group-drop-zone--right {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n width: 160px;\n background: var(--pg-colors-header-background, #f8fafc);\n border-left: 1px solid var(--pg-colors-border, #e2e8f0);\n overflow: hidden;\n position: relative;\n}\n\n/* Zone header row (grip + \"Groups\" label) */\n.pg-group-zone-header {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px 4px 8px;\n flex-shrink: 0;\n border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);\n user-select: none;\n}\n.pg-group-zone-grip {\n display: flex;\n align-items: center;\n cursor: grab;\n opacity: 0.45;\n padding: 2px 3px;\n border-radius: 3px;\n color: var(--pg-colors-text-secondary, #64748b);\n flex-shrink: 0;\n transition: opacity 100ms, background 100ms;\n}\n.pg-group-zone-grip:hover { opacity: 0.85; background: rgba(0,0,0,0.06); }\n.pg-group-zone-grip:active { cursor: grabbing; }\n.pg-group-zone-label {\n flex: 1;\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 user-select: none;\n}\n\n/* Chips area (the actual drop target) */\n.pg-group-zone-chips {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n padding: 6px 10px;\n min-height: 38px;\n flex: 1;\n overflow: auto;\n}\n.pg-group-drop-zone--left .pg-group-zone-chips,\n.pg-group-drop-zone--right .pg-group-zone-chips {\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n}\n.pg-group-zone-chips--over {\n background: var(--pg-colors-group-zone-over, #eff6ff);\n outline: 1px dashed var(--pg-colors-primary, #2563eb);\n outline-offset: -2px;\n}\n\n/* Resize handle */\n.pg-group-drop-zone--top .pg-group-zone-resize {\n height: 4px;\n flex-shrink: 0;\n cursor: ns-resize;\n background: transparent;\n transition: background 100ms;\n}\n.pg-group-drop-zone--top .pg-group-zone-resize:hover { background: var(--pg-colors-primary, #2563eb); opacity: 0.35; }\n.pg-group-drop-zone--left .pg-group-zone-resize {\n position: absolute;\n top: 0; right: 0; bottom: 0;\n width: 4px;\n cursor: ew-resize;\n background: transparent;\n transition: background 100ms;\n}\n.pg-group-drop-zone--right .pg-group-zone-resize {\n position: absolute;\n top: 0; left: 0; bottom: 0;\n width: 4px;\n cursor: ew-resize;\n background: transparent;\n transition: background 100ms;\n}\n.pg-group-drop-zone--left .pg-group-zone-resize:hover,\n.pg-group-drop-zone--right .pg-group-zone-resize:hover { background: var(--pg-colors-primary, #2563eb); opacity: 0.35; }\n\n/* Hint text */\n.pg-group-drop-zone__hint {\n font-size: var(--pg-typography-font-size-sm, 12px);\n color: var(--pg-colors-text-disabled, #94a3b8);\n pointer-events: none;\n user-select: none;\n}\n\n/* Chips */\n.pg-group-chip {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 6px 3px 10px;\n border-radius: var(--pg-borders-radius-pill, 9999px);\n background: var(--pg-colors-chip-background, #e0e7ff);\n color: var(--pg-colors-chip-text, #1e40af);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-weight: var(--pg-typography-font-weight-medium, 500);\n user-select: none;\n white-space: nowrap;\n transition: opacity 120ms;\n}\n.pg-group-chip--ghost {\n cursor: grabbing;\n}\n.pg-group-chip__label { line-height: 1.2; }\n.pg-group-chip__close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n cursor: pointer;\n opacity: 0.55;\n transition: opacity 100ms, background 100ms;\n flex-shrink: 0;\n}\n.pg-group-chip__close:hover { opacity: 1; background: rgba(30,64,175,0.18); }\n.pg-group-chip__sep {\n display: inline-flex;\n align-items: center;\n color: var(--pg-colors-text-disabled, #94a3b8);\n flex-shrink: 0;\n}\n\n";
9
+ //# sourceMappingURL=group-drop-zone.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-drop-zone.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/group-drop-zone.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,yqJAoK5B,CAAC"}