photon-grid-core 0.0.1 → 0.0.3

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 (142) hide show
  1. package/README.md +305 -0
  2. package/icons/icon-sets/core-icons.js +1 -1
  3. package/icons/icon-sets/core-icons.js.map +1 -1
  4. package/index.d.ts +1 -0
  5. package/index.d.ts.map +1 -1
  6. package/package.json +22 -16
  7. package/renderer/body-renderer.d.ts.map +1 -1
  8. package/renderer/body-renderer.js +21 -4
  9. package/renderer/body-renderer.js.map +1 -1
  10. package/renderer/cell-renderer.js +1 -1
  11. package/renderer/cell-renderer.js.map +1 -1
  12. package/renderer/column-menu.js +24 -25
  13. package/renderer/column-menu.js.map +1 -1
  14. package/renderer/column-style-manager.d.ts.map +1 -1
  15. package/renderer/column-style-manager.js +11 -2
  16. package/renderer/column-style-manager.js.map +1 -1
  17. package/renderer/grid-renderer.js +1 -1
  18. package/renderer/grid-renderer.js.map +1 -1
  19. package/renderer/header-renderer.d.ts.map +1 -1
  20. package/renderer/header-renderer.js +17 -3
  21. package/renderer/header-renderer.js.map +1 -1
  22. package/renderer/row-drag-renderer.d.ts +18 -0
  23. package/renderer/row-drag-renderer.d.ts.map +1 -1
  24. package/renderer/row-drag-renderer.js +53 -0
  25. package/renderer/row-drag-renderer.js.map +1 -1
  26. package/styles/base/cells.css.d.ts +9 -0
  27. package/styles/base/cells.css.d.ts.map +1 -0
  28. package/styles/base/cells.css.js +233 -0
  29. package/styles/base/cells.css.js.map +1 -0
  30. package/styles/base/chart-panel.css.d.ts +9 -0
  31. package/styles/base/chart-panel.css.d.ts.map +1 -0
  32. package/styles/base/chart-panel.css.js +140 -0
  33. package/styles/base/chart-panel.css.js.map +1 -0
  34. package/styles/base/column-context-menu.css.d.ts +9 -0
  35. package/styles/base/column-context-menu.css.d.ts.map +1 -0
  36. package/styles/base/column-context-menu.css.js +153 -0
  37. package/styles/base/column-context-menu.css.js.map +1 -0
  38. package/styles/base/column-group-header.css.d.ts +9 -0
  39. package/styles/base/column-group-header.css.d.ts.map +1 -0
  40. package/styles/base/column-group-header.css.js +270 -0
  41. package/styles/base/column-group-header.css.js.map +1 -0
  42. package/styles/base/context-menu.css.d.ts +9 -0
  43. package/styles/base/context-menu.css.d.ts.map +1 -0
  44. package/styles/base/context-menu.css.js +103 -0
  45. package/styles/base/context-menu.css.js.map +1 -0
  46. package/styles/base/editors.css.d.ts +9 -0
  47. package/styles/base/editors.css.d.ts.map +1 -0
  48. package/styles/base/editors.css.js +291 -0
  49. package/styles/base/editors.css.js.map +1 -0
  50. package/styles/base/filter.css.d.ts +9 -0
  51. package/styles/base/filter.css.d.ts.map +1 -0
  52. package/styles/base/filter.css.js +312 -0
  53. package/styles/base/filter.css.js.map +1 -0
  54. package/styles/base/footer.css.d.ts +9 -0
  55. package/styles/base/footer.css.d.ts.map +1 -0
  56. package/styles/base/footer.css.js +78 -0
  57. package/styles/base/footer.css.js.map +1 -0
  58. package/styles/base/group-bar-search.css.d.ts +9 -0
  59. package/styles/base/group-bar-search.css.d.ts.map +1 -0
  60. package/styles/base/group-bar-search.css.js +86 -0
  61. package/styles/base/group-bar-search.css.js.map +1 -0
  62. package/styles/base/group-drop-zone.css.d.ts +9 -0
  63. package/styles/base/group-drop-zone.css.d.ts.map +1 -0
  64. package/styles/base/group-drop-zone.css.js +173 -0
  65. package/styles/base/group-drop-zone.css.js.map +1 -0
  66. package/styles/base/header.css.d.ts +9 -0
  67. package/styles/base/header.css.d.ts.map +1 -0
  68. package/styles/base/header.css.js +206 -0
  69. package/styles/base/header.css.js.map +1 -0
  70. package/styles/base/master-detail.css.d.ts +9 -0
  71. package/styles/base/master-detail.css.d.ts.map +1 -0
  72. package/styles/base/master-detail.css.js +202 -0
  73. package/styles/base/master-detail.css.js.map +1 -0
  74. package/styles/base/misc.css.d.ts +9 -0
  75. package/styles/base/misc.css.d.ts.map +1 -0
  76. package/styles/base/misc.css.js +65 -0
  77. package/styles/base/misc.css.js.map +1 -0
  78. package/styles/base/panels.css.d.ts +9 -0
  79. package/styles/base/panels.css.d.ts.map +1 -0
  80. package/styles/base/panels.css.js +162 -0
  81. package/styles/base/panels.css.js.map +1 -0
  82. package/styles/base/photon-ai.css.d.ts +9 -0
  83. package/styles/base/photon-ai.css.d.ts.map +1 -0
  84. package/styles/base/photon-ai.css.js +200 -0
  85. package/styles/base/photon-ai.css.js.map +1 -0
  86. package/styles/base/root.css.d.ts +9 -0
  87. package/styles/base/root.css.d.ts.map +1 -0
  88. package/styles/base/root.css.js +56 -0
  89. package/styles/base/root.css.js.map +1 -0
  90. package/styles/base/row-drag.css.d.ts +9 -0
  91. package/styles/base/row-drag.css.d.ts.map +1 -0
  92. package/styles/base/row-drag.css.js +93 -0
  93. package/styles/base/row-drag.css.js.map +1 -0
  94. package/styles/base/row-group.css.d.ts +9 -0
  95. package/styles/base/row-group.css.d.ts.map +1 -0
  96. package/styles/base/row-group.css.js +79 -0
  97. package/styles/base/row-group.css.js.map +1 -0
  98. package/styles/base/rows.css.d.ts +9 -0
  99. package/styles/base/rows.css.d.ts.map +1 -0
  100. package/styles/base/rows.css.js +83 -0
  101. package/styles/base/rows.css.js.map +1 -0
  102. package/styles/base/scrollbars.css.d.ts +9 -0
  103. package/styles/base/scrollbars.css.d.ts.map +1 -0
  104. package/styles/base/scrollbars.css.js +56 -0
  105. package/styles/base/scrollbars.css.js.map +1 -0
  106. package/styles/base/sparkline.css.d.ts +9 -0
  107. package/styles/base/sparkline.css.d.ts.map +1 -0
  108. package/styles/base/sparkline.css.js +109 -0
  109. package/styles/base/sparkline.css.js.map +1 -0
  110. package/styles/base/tooltip.css.d.ts +9 -0
  111. package/styles/base/tooltip.css.d.ts.map +1 -0
  112. package/styles/base/tooltip.css.js +39 -0
  113. package/styles/base/tooltip.css.js.map +1 -0
  114. package/styles/base/tree.css.d.ts +9 -0
  115. package/styles/base/tree.css.d.ts.map +1 -0
  116. package/styles/base/tree.css.js +78 -0
  117. package/styles/base/tree.css.js.map +1 -0
  118. package/styles/base-styles.d.ts.map +1 -1
  119. package/styles/base-styles.js +56 -3026
  120. package/styles/base-styles.js.map +1 -1
  121. package/styles/themes/theme-alpine.d.ts +1 -1
  122. package/styles/themes/theme-alpine.d.ts.map +1 -1
  123. package/styles/themes/theme-alpine.js +1 -1
  124. package/styles/themes/theme-balham.d.ts +1 -1
  125. package/styles/themes/theme-balham.d.ts.map +1 -1
  126. package/styles/themes/theme-balham.js +0 -1
  127. package/styles/themes/theme-balham.js.map +1 -1
  128. package/styles/themes/theme-dark.d.ts +1 -1
  129. package/styles/themes/theme-dark.d.ts.map +1 -1
  130. package/styles/themes/theme-dark.js +1 -1
  131. package/styles/themes/theme-material.d.ts +1 -1
  132. package/styles/themes/theme-material.d.ts.map +1 -1
  133. package/styles/themes/theme-material.js +0 -1
  134. package/styles/themes/theme-material.js.map +1 -1
  135. package/styles/themes/theme-quartz.d.ts +1 -1
  136. package/styles/themes/theme-quartz.d.ts.map +1 -1
  137. package/styles/themes/theme-quartz.js +1 -1
  138. package/LICENSE +0 -1
  139. package/chart/chart-analyzer.d.ts +0 -12
  140. package/chart/chart-analyzer.d.ts.map +0 -1
  141. package/chart/chart-analyzer.js +0 -77
  142. package/chart/chart-analyzer.js.map +0 -1
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Photon Grid base styles — editors 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 editorsCss = `/* ──────────────────── Editors ──────────────────── */
9
+ .pg-editor {
10
+ width: 100%;
11
+ height: 100%;
12
+ padding: 0 12px;
13
+ border: none;
14
+ outline: none;
15
+ font-size: inherit;
16
+ font-family: inherit;
17
+ background: var(--pg-colors-cell-edit-background, #fff);
18
+ color: inherit;
19
+ box-sizing: border-box;
20
+ }
21
+ .pg-editor:focus { outline: none; box-shadow: inset 0 0 0 2px var(--pg-colors-primary, #2563eb); }
22
+ .pg-editor--select { cursor: pointer; padding-right: 8px; }
23
+ .pg-editor--checkbox { width: auto; height: auto; margin: auto; cursor: pointer; }
24
+
25
+ /* ── Multi-select (array) editor ── */
26
+ .pg-editor--multiselect {
27
+ position: relative;
28
+ display: flex;
29
+ align-items: center;
30
+ height: 100%;
31
+ padding: 0;
32
+ cursor: pointer;
33
+ background: var(--pg-colors-cell-edit-background, #fff);
34
+ }
35
+ .pg-editor__ms-trigger {
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: space-between;
39
+ width: 100%;
40
+ height: 100%;
41
+ padding: 0 8px 0 12px;
42
+ user-select: none;
43
+ gap: 6px;
44
+ }
45
+ .pg-editor__ms-text {
46
+ flex: 1;
47
+ min-width: 0;
48
+ overflow: hidden;
49
+ text-overflow: ellipsis;
50
+ white-space: nowrap;
51
+ font-size: inherit;
52
+ color: inherit;
53
+ }
54
+ .pg-editor__ms-arrow {
55
+ flex-shrink: 0;
56
+ width: 16px;
57
+ height: 16px;
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ color: var(--pg-colors-text-secondary, #64748b);
62
+ }
63
+ .pg-editor__ms-arrow::after {
64
+ content: '';
65
+ display: block;
66
+ width: 0;
67
+ height: 0;
68
+ border-left: 4px solid transparent;
69
+ border-right: 4px solid transparent;
70
+ border-top: 5px solid currentColor;
71
+ }
72
+ .pg-editor__ms-panel {
73
+ display: none;
74
+ position: absolute;
75
+ top: calc(100% + 2px);
76
+ left: 0;
77
+ min-width: 100%;
78
+ max-height: 220px;
79
+ overflow-y: auto;
80
+ background: var(--pg-colors-surface, #fff);
81
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
82
+ border-radius: 6px;
83
+ box-shadow: 0 8px 24px rgba(0,0,0,0.12), 0 2px 6px rgba(0,0,0,0.06);
84
+ z-index: 9999;
85
+ padding: 4px;
86
+ }
87
+ .pg-editor__ms-panel--open { display: block; }
88
+ .pg-editor__ms-option {
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 8px;
92
+ padding: 6px 10px;
93
+ border-radius: 4px;
94
+ cursor: pointer;
95
+ transition: background 80ms;
96
+ font-size: inherit;
97
+ font-family: inherit;
98
+ color: var(--pg-colors-text-primary, #0f172a);
99
+ }
100
+ .pg-editor__ms-option:hover { background: var(--pg-colors-background-alt, #f1f5f9); }
101
+ .pg-editor__ms-check {
102
+ flex-shrink: 0;
103
+ width: 14px;
104
+ height: 14px;
105
+ cursor: pointer;
106
+ accent-color: var(--pg-colors-primary, #2563eb);
107
+ }
108
+ .pg-editor__ms-label {
109
+ flex: 1;
110
+ min-width: 0;
111
+ overflow: hidden;
112
+ text-overflow: ellipsis;
113
+ white-space: nowrap;
114
+ }
115
+
116
+ /* ── Custom dropdown editor ── */
117
+ .pg-dropdown-editor__trigger {
118
+ display: flex;
119
+ align-items: center;
120
+ width: 100%;
121
+ height: 100%;
122
+ padding: 0 6px 0 12px;
123
+ gap: 6px;
124
+ cursor: default;
125
+ }
126
+ .pg-dropdown-editor__trigger-label {
127
+ flex: 1;
128
+ min-width: 0;
129
+ overflow: hidden;
130
+ text-overflow: ellipsis;
131
+ white-space: nowrap;
132
+ font-size: inherit;
133
+ color: inherit;
134
+ }
135
+ .pg-dropdown-editor__arrow {
136
+ flex-shrink: 0;
137
+ width: 16px;
138
+ height: 16px;
139
+ display: flex;
140
+ align-items: center;
141
+ justify-content: center;
142
+ color: var(--pg-colors-text-secondary, #64748b);
143
+ }
144
+ .pg-dropdown-editor__arrow::after {
145
+ content: '';
146
+ display: block;
147
+ width: 0;
148
+ height: 0;
149
+ border-left: 4px solid transparent;
150
+ border-right: 4px solid transparent;
151
+ border-top: 5px solid currentColor;
152
+ }
153
+ /* Panel — position:fixed, appended to document.body */
154
+ .pg-dropdown-editor__panel {
155
+ position: fixed;
156
+ z-index: 99999;
157
+ background: var(--pg-colors-surface, #fff);
158
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
159
+ border-radius: 8px;
160
+ box-shadow: 0 8px 32px rgba(0,0,0,0.13), 0 2px 8px rgba(0,0,0,0.07);
161
+ overflow: hidden;
162
+ opacity: 0;
163
+ transform: scaleY(0.94) translateY(-4px);
164
+ transform-origin: top center;
165
+ transition: opacity 130ms ease, transform 130ms ease;
166
+ }
167
+ .pg-dropdown-editor__panel--visible {
168
+ opacity: 1;
169
+ transform: scaleY(1) translateY(0);
170
+ }
171
+ .pg-dropdown-editor__panel--above {
172
+ transform-origin: bottom center;
173
+ transform: scaleY(0.94) translateY(4px);
174
+ }
175
+ .pg-dropdown-editor__panel--above.pg-dropdown-editor__panel--visible {
176
+ transform: scaleY(1) translateY(0);
177
+ }
178
+ /* Scrollable list */
179
+ .pg-dropdown-editor__scroll {
180
+ overflow-y: auto;
181
+ overflow-x: hidden;
182
+ outline: none;
183
+ }
184
+ .pg-dropdown-editor__scroll::-webkit-scrollbar { width: 5px; }
185
+ .pg-dropdown-editor__scroll::-webkit-scrollbar-track { background: transparent; }
186
+ .pg-dropdown-editor__scroll::-webkit-scrollbar-thumb {
187
+ background: var(--pg-colors-border, #e2e8f0);
188
+ border-radius: 3px;
189
+ }
190
+ /* Virtual scroll layout */
191
+ .pg-dropdown-editor__spacer { position: relative; }
192
+ .pg-dropdown-editor__items { position: absolute; left: 0; right: 0; top: 0; }
193
+ /* Option rows — height must equal CustomDropdownEditor.ITEM_HEIGHT (34px) */
194
+ .pg-dropdown-editor__option {
195
+ display: flex;
196
+ align-items: center;
197
+ gap: 8px;
198
+ padding: 0 10px;
199
+ height: 34px;
200
+ cursor: pointer;
201
+ transition: background 60ms;
202
+ color: var(--pg-colors-text-primary, #0f172a);
203
+ font-family: var(--pg-typography-font-family, system-ui, sans-serif);
204
+ font-size: 13px;
205
+ }
206
+ .pg-dropdown-editor__option:hover,
207
+ .pg-dropdown-editor__option--highlighted {
208
+ background: var(--pg-colors-background-alt, #f1f5f9);
209
+ }
210
+ .pg-dropdown-editor__option--selected {
211
+ background: var(--pg-colors-primary-subtle, #eff6ff);
212
+ color: var(--pg-colors-primary, #2563eb);
213
+ font-weight: 500;
214
+ }
215
+ .pg-dropdown-editor__option--selected.pg-dropdown-editor__option--highlighted {
216
+ background: var(--pg-colors-primary-subtle-hover, #dbeafe);
217
+ }
218
+ /* Icon / image before label */
219
+ .pg-dropdown-editor__opt-icon {
220
+ flex-shrink: 0;
221
+ width: 20px;
222
+ height: 20px;
223
+ display: inline-flex;
224
+ align-items: center;
225
+ justify-content: center;
226
+ overflow: hidden;
227
+ border-radius: 3px;
228
+ }
229
+ .pg-dropdown-editor__opt-icon img {
230
+ width: 20px;
231
+ height: 20px;
232
+ object-fit: cover;
233
+ border-radius: 2px;
234
+ display: block;
235
+ }
236
+ .pg-dropdown-editor__opt-label {
237
+ flex: 1;
238
+ min-width: 0;
239
+ overflow: hidden;
240
+ text-overflow: ellipsis;
241
+ white-space: nowrap;
242
+ }
243
+ /* Checkmark for the currently selected option */
244
+ .pg-dropdown-editor__opt-check {
245
+ flex-shrink: 0;
246
+ width: 16px;
247
+ height: 16px;
248
+ display: flex;
249
+ align-items: center;
250
+ justify-content: center;
251
+ color: var(--pg-colors-primary, #2563eb);
252
+ }
253
+ .pg-dropdown-editor__opt-check::after {
254
+ content: '';
255
+ display: block;
256
+ width: 5px;
257
+ height: 9px;
258
+ border-right: 2px solid currentColor;
259
+ border-bottom: 2px solid currentColor;
260
+ transform: rotate(45deg) translate(-1px, -1px);
261
+ }
262
+ /* Empty state */
263
+ .pg-dropdown-editor__empty {
264
+ display: flex;
265
+ align-items: center;
266
+ justify-content: center;
267
+ height: 48px;
268
+ color: var(--pg-colors-text-secondary, #64748b);
269
+ font-size: 13px;
270
+ font-family: var(--pg-typography-font-family, system-ui, sans-serif);
271
+ }
272
+
273
+ /* ── Array cell tag display ── */
274
+ .pg-cell__value--tags {
275
+ display: flex;
276
+ align-items: center;
277
+ gap: 4px;
278
+ flex-wrap: nowrap;
279
+ overflow: hidden;
280
+ flex: 1;
281
+ min-width: 0;
282
+ }
283
+ .pg-badge--overflow {
284
+ background: var(--pg-colors-background-alt, #f1f5f9);
285
+ color: var(--pg-colors-text-secondary, #64748b);
286
+ font-size: 10px;
287
+ flex-shrink: 0;
288
+ }
289
+
290
+ `;
291
+ //# sourceMappingURL=editors.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editors.css.js","sourceRoot":"","sources":["../../../src/styles/base/editors.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0RzB,CAAC"}
@@ -0,0 +1,9 @@
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 declare const filterCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Filter Row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-drag-preview {\n position: fixed;\n pointer-events: none;\n z-index: 99999;\n display: flex;\n align-items: center;\n gap: var(--pg-drag-preview-gap, 8px);\n padding: var(--pg-drag-preview-padding, 6px 12px);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-drag-preview, 0 4px 16px rgba(0,0,0,0.18));\n font-size: var(--pg-typography-font-size-md, 13px);\n font-weight: var(--pg-typography-font-weight-medium, 500);\n white-space: nowrap;\n will-change: transform;\n background: var(--pg-colors-drag-preview-background, var(--pg-drag-preview-bg, #fff));\n border: 1px solid var(--pg-colors-drag-preview-border, var(--pg-drag-preview-border, #e0e0e0));\n color: var(--pg-colors-text-primary, var(--pg-text-primary, #222));\n top: 0;\n left: 0;\n transform: translate(-9999px, -9999px);\n}\n.pg-drag-preview__avatar {\n width: var(--pg-drag-preview-avatar-size, 24px);\n height: var(--pg-drag-preview-avatar-size, 24px);\n background: var(--pg-colors-primary, var(--pg-primary, #2563eb));\n overflow: hidden;\n flex-shrink: 0;\n}\n.pg-drag-preview__avatar--circle { border-radius: 50%; }\n.pg-drag-preview__avatar--square { border-radius: var(--pg-borders-radius-sm, 4px); }\n.pg-drag-preview__avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.pg-drag-preview__label {\n flex: 1;\n min-width: 0;\n}\n.pg-drag-preview__badge {\n background: var(--pg-colors-primary, var(--pg-primary, #2563eb));\n color: var(--pg-colors-primary-contrast, #fff);\n border-radius: var(--pg-borders-radius-pill, 999px);\n padding: 1px 7px;\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n min-width: 20px;\n text-align: center;\n}\n\n.pg-filter-cell {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n padding: 0 6px;\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-filter-cell:last-child { border-right: none; }\n.pg-filter-cell--checkbox {\n width: 44px;\n min-width: 44px;\n max-width: 44px;\n flex-shrink: 0;\n}\n.pg-filter-cell--serial {\n width: 52px;\n min-width: 52px;\n max-width: 52px;\n flex-shrink: 0;\n}\n.pg-filter-input {\n width: 100%;\n height: 24px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n background: var(--pg-colors-surface, #fff);\n color: inherit;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Filter Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-filter-panel {\n position: absolute;\n z-index: var(--pg-z-index-filter-panel, 200);\n min-width: 270px;\n max-width: 320px;\n width: max-content;\n background: var(--pg-colors-surface, #fff);\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-md, 6px);\n box-shadow: var(--pg-shadows-lg, 0 8px 24px rgba(0,0,0,.12));\n overflow: hidden;\n font-size: var(--pg-typography-font-size-sm, 13px);\n color: var(--pg-colors-text, #1e293b);\n user-select: none;\n}\n\n/* \u2500\u2500 Condition filter \u2500\u2500 */\n.pg-filter-cond-wrap { padding: 10px; display: flex; flex-direction: column; gap: 6px; }\n\n.pg-filter-cond__row { display: flex; flex-direction: column; gap: 4px; }\n.pg-filter-cond__row--hidden { display: none; }\n\n.pg-filter-cond__select {\n width: 100%;\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text, #1e293b);\n font-size: inherit;\n font-family: inherit;\n cursor: pointer;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-cond__select:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n.pg-filter-cond__inputs { display: flex; align-items: center; gap: 4px; }\n.pg-filter-cond__inputs--hidden { display: none; }\n/* Stack inputs vertically in range (Between) mode so the panel never overflows horizontally */\n.pg-filter-cond__inputs--range { flex-direction: column; align-items: stretch; gap: 4px; }\n.pg-filter-cond__inputs--range .pg-filter-cond__range-sep {\n text-align: center;\n padding: 2px 0;\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: 500;\n}\n\n.pg-filter-cond__input {\n flex: 1;\n height: 30px;\n padding: 0 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text, #1e293b);\n font-size: inherit;\n font-family: inherit;\n outline: none;\n padding: 6px;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-cond__input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n.pg-filter-cond__input--hidden { display: none; }\n\n.pg-filter-cond__range-sep {\n flex-shrink: 0;\n font-size: var(--pg-typography-font-size-xs, 11px);\n color: var(--pg-colors-text-secondary, #475569);\n padding: 0 2px;\n}\n.pg-filter-cond__range-sep--hidden { display: none; }\n\n/* \u2500\u2500 Logic toggle row (AND / OR / None) \u2500\u2500 */\n.pg-filter-logic {\n display: flex;\n gap: 4px;\n padding: 4px 0 2px;\n}\n.pg-filter-logic--hidden { display: none; }\n\n.pg-filter-logic__btn {\n flex: 1;\n height: 26px;\n padding: 0 6px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-secondary, #475569);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-family: inherit;\n font-weight: 500;\n cursor: pointer;\n text-align: center;\n transition: background var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms),\n border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-logic__btn:hover { background: var(--pg-colors-background-alt, #f1f5f9); }\n.pg-filter-logic__btn--active {\n background: var(--pg-colors-primary, #2563eb);\n color: #fff;\n border-color: var(--pg-colors-primary, #2563eb);\n}\n\n/* \u2500\u2500 Set filter (dropdown / array) \u2500\u2500 */\n.pg-filter-set { display: flex; flex-direction: column; }\n\n.pg-filter-set__search {\n padding: 8px 10px 4px;\n}\n.pg-filter-set__search-input {\n width: 100%;\n height: 30px;\n padding: 0 10px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text, #1e293b);\n font-size: inherit;\n font-family: inherit;\n box-sizing: border-box;\n outline: none;\n transition: border-color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-set__search-input:focus { border-color: var(--pg-colors-border-focus, #2563eb); }\n\n.pg-filter-set__divider {\n height: 1px;\n background: var(--pg-colors-border, #e2e8f0);\n margin: 2px 0;\n}\n\n/* Select All item */\n.pg-filter-set__item {\n display: flex;\n align-items: center;\n gap: 8px;\n height: 28px;\n padding: 0 10px;\n cursor: pointer;\n transition: background var(--pg-transitions-duration-fast, 100ms);\n box-sizing: border-box;\n position: absolute;\n left: 0;\n right: 0;\n}\n.pg-filter-set__item:hover { background: var(--pg-colors-background-alt, #f1f5f9); }\n.pg-filter-set__item--select-all {\n position: static;\n font-weight: 500;\n color: var(--pg-colors-text, #1e293b);\n}\n.pg-filter-set__item-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.pg-filter-set__item-label--blank { color: var(--pg-colors-text-disabled, #94a3b8); font-style: italic; }\n\n.pg-filter-set__checkbox {\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n cursor: pointer;\n accent-color: var(--pg-colors-primary, #2563eb);\n}\n\n/* Virtual scroll containers */\n.pg-filter-set__list {\n overflow-y: auto;\n overflow-x: hidden;\n position: relative;\n scrollbar-width: thin;\n scrollbar-color: var(--pg-colors-border, #e2e8f0) transparent;\n}\n.pg-filter-set__list::-webkit-scrollbar { width: 6px; }\n.pg-filter-set__list::-webkit-scrollbar-track { background: transparent; }\n.pg-filter-set__list::-webkit-scrollbar-thumb {\n background: var(--pg-colors-border, #e2e8f0);\n border-radius: 3px;\n}\n.pg-filter-set__list-inner { position: relative; width: 100%; }\n\n/* \u2500\u2500 Panel footer \u2500\u2500 */\n.pg-filter-panel__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 8px 10px;\n // border-top: 1px solid var(--pg-colors-border, #e2e8f0);\n // background: var(--pg-colors-background, #f8fafc);\n}\n\n.pg-filter-panel__clear-btn {\n height: 28px;\n padding: 0 14px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: var(--pg-borders-radius-sm, 4px);\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-secondary, #475569);\n font-size: var(--pg-typography-font-size-sm, 12px);\n font-family: inherit;\n cursor: pointer;\n transition: background var(--pg-transitions-duration-fast, 100ms),\n border-color var(--pg-transitions-duration-fast, 100ms),\n color var(--pg-transitions-duration-fast, 100ms);\n}\n.pg-filter-panel__clear-btn:hover {\n background: var(--pg-colors-background-alt, #f1f5f9);\n border-color: var(--pg-colors-text-secondary, #475569);\n color: var(--pg-colors-text, #1e293b);\n}\n\n";
9
+ //# sourceMappingURL=filter.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/filter.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,8kUA+SrB,CAAC"}
@@ -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"}