photon-grid-core 2.0.1 → 2.0.5

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 (236) hide show
  1. package/README.md +3 -3
  2. package/cell-selection/cell-selection-engine.d.ts +14 -0
  3. package/cell-selection/cell-selection-engine.d.ts.map +1 -1
  4. package/cell-selection/cell-selection-engine.js +63 -9
  5. package/cell-selection/cell-selection-engine.js.map +1 -1
  6. package/chart/range-chart-controller.d.ts +10 -0
  7. package/chart/range-chart-controller.d.ts.map +1 -1
  8. package/chart/range-chart-controller.js +22 -2
  9. package/chart/range-chart-controller.js.map +1 -1
  10. package/column-groups/column-group-drag-handler.d.ts.map +1 -1
  11. package/column-groups/column-group-drag-handler.js +64 -25
  12. package/column-groups/column-group-drag-handler.js.map +1 -1
  13. package/column-groups/column-group-header-builder.d.ts.map +1 -1
  14. package/column-groups/column-group-header-builder.js +7 -5
  15. package/column-groups/column-group-header-builder.js.map +1 -1
  16. package/column-groups/display-group-drag-handler.d.ts +7 -3
  17. package/column-groups/display-group-drag-handler.d.ts.map +1 -1
  18. package/column-groups/display-group-drag-handler.js +46 -7
  19. package/column-groups/display-group-drag-handler.js.map +1 -1
  20. package/column-groups/display-group-header-builder.d.ts +1 -1
  21. package/column-groups/display-group-header-builder.d.ts.map +1 -1
  22. package/column-groups/display-group-header-builder.js +9 -7
  23. package/column-groups/display-group-header-builder.js.map +1 -1
  24. package/core/column-model.d.ts +88 -5
  25. package/core/column-model.d.ts.map +1 -1
  26. package/core/column-model.js +215 -3
  27. package/core/column-model.js.map +1 -1
  28. package/core/grid-api.d.ts +34 -2
  29. package/core/grid-api.d.ts.map +1 -1
  30. package/core/grid-api.js +40 -0
  31. package/core/grid-api.js.map +1 -1
  32. package/core/grid-core.d.ts +7 -0
  33. package/core/grid-core.d.ts.map +1 -1
  34. package/core/grid-core.js +42 -12
  35. package/core/grid-core.js.map +1 -1
  36. package/core/grid-store.d.ts +5 -5
  37. package/core/grid-store.d.ts.map +1 -1
  38. package/core/pointer-utils.d.ts +59 -0
  39. package/core/pointer-utils.d.ts.map +1 -0
  40. package/core/pointer-utils.js +59 -0
  41. package/core/pointer-utils.js.map +1 -0
  42. package/drag-drop/drag-drop-engine.d.ts.map +1 -1
  43. package/drag-drop/drag-drop-engine.js +8 -8
  44. package/drag-drop/drag-drop-engine.js.map +1 -1
  45. package/engines/editing/cell-editor-engine.js +1 -1
  46. package/engines/editing/cell-editor-engine.js.map +1 -1
  47. package/engines/master-detail/master-detail-engine.d.ts +4 -3
  48. package/engines/master-detail/master-detail-engine.d.ts.map +1 -1
  49. package/engines/master-detail/master-detail-engine.js +14 -5
  50. package/engines/master-detail/master-detail-engine.js.map +1 -1
  51. package/engines/selection/row-selection-engine.d.ts +41 -0
  52. package/engines/selection/row-selection-engine.d.ts.map +1 -1
  53. package/engines/selection/row-selection-engine.js +103 -0
  54. package/engines/selection/row-selection-engine.js.map +1 -1
  55. package/index.d.ts +8 -4
  56. package/index.d.ts.map +1 -1
  57. package/index.js +4 -1
  58. package/index.js.map +1 -1
  59. package/package.json +1 -1
  60. package/photon-ai/index.d.ts +2 -0
  61. package/photon-ai/index.d.ts.map +1 -1
  62. package/photon-ai/index.js +2 -0
  63. package/photon-ai/index.js.map +1 -1
  64. package/photon-ai/photon-ai-panel.d.ts +40 -0
  65. package/photon-ai/photon-ai-panel.d.ts.map +1 -1
  66. package/photon-ai/photon-ai-panel.js +163 -8
  67. package/photon-ai/photon-ai-panel.js.map +1 -1
  68. package/photon-ai/photon-ai-service.d.ts +38 -1
  69. package/photon-ai/photon-ai-service.d.ts.map +1 -1
  70. package/photon-ai/photon-ai-service.js +72 -1
  71. package/photon-ai/photon-ai-service.js.map +1 -1
  72. package/photon-ai/provider/ai-provider.types.d.ts +174 -0
  73. package/photon-ai/provider/ai-provider.types.d.ts.map +1 -0
  74. package/photon-ai/provider/ai-provider.types.js +42 -0
  75. package/photon-ai/provider/ai-provider.types.js.map +1 -0
  76. package/photon-ai/provider/command-normalizer.d.ts +36 -0
  77. package/photon-ai/provider/command-normalizer.d.ts.map +1 -0
  78. package/photon-ai/provider/command-normalizer.js +120 -0
  79. package/photon-ai/provider/command-normalizer.js.map +1 -0
  80. package/photon-ai/provider/grid-context-builder.d.ts +37 -0
  81. package/photon-ai/provider/grid-context-builder.d.ts.map +1 -0
  82. package/photon-ai/provider/grid-context-builder.js +96 -0
  83. package/photon-ai/provider/grid-context-builder.js.map +1 -0
  84. package/photon-ai/provider/http-ai-provider.d.ts +42 -0
  85. package/photon-ai/provider/http-ai-provider.d.ts.map +1 -0
  86. package/photon-ai/provider/http-ai-provider.js +125 -0
  87. package/photon-ai/provider/http-ai-provider.js.map +1 -0
  88. package/photon-ai/provider/index.d.ts +30 -0
  89. package/photon-ai/provider/index.d.ts.map +1 -0
  90. package/photon-ai/provider/index.js +42 -0
  91. package/photon-ai/provider/index.js.map +1 -0
  92. package/photon-ai/provider/presets.d.ts +29 -0
  93. package/photon-ai/provider/presets.d.ts.map +1 -0
  94. package/photon-ai/provider/presets.js +110 -0
  95. package/photon-ai/provider/presets.js.map +1 -0
  96. package/photon-ai/provider/response-parsing.d.ts +22 -0
  97. package/photon-ai/provider/response-parsing.d.ts.map +1 -0
  98. package/photon-ai/provider/response-parsing.js +79 -0
  99. package/photon-ai/provider/response-parsing.js.map +1 -0
  100. package/photon-ai/provider/system-prompt.d.ts +26 -0
  101. package/photon-ai/provider/system-prompt.d.ts.map +1 -0
  102. package/photon-ai/provider/system-prompt.js +82 -0
  103. package/photon-ai/provider/system-prompt.js.map +1 -0
  104. package/photon-grid.min.js +697 -488
  105. package/renderer/body-renderer.d.ts.map +1 -1
  106. package/renderer/body-renderer.js +34 -9
  107. package/renderer/body-renderer.js.map +1 -1
  108. package/renderer/column-chooser.d.ts +82 -0
  109. package/renderer/column-chooser.d.ts.map +1 -0
  110. package/renderer/column-chooser.js +335 -0
  111. package/renderer/column-chooser.js.map +1 -0
  112. package/renderer/column-menu.d.ts.map +1 -1
  113. package/renderer/column-menu.js +32 -20
  114. package/renderer/column-menu.js.map +1 -1
  115. package/renderer/column-style-manager.d.ts +17 -0
  116. package/renderer/column-style-manager.d.ts.map +1 -1
  117. package/renderer/column-style-manager.js +28 -0
  118. package/renderer/column-style-manager.js.map +1 -1
  119. package/renderer/detail-row-renderer.d.ts.map +1 -1
  120. package/renderer/detail-row-renderer.js +9 -7
  121. package/renderer/detail-row-renderer.js.map +1 -1
  122. package/renderer/grid-renderer.d.ts +23 -1
  123. package/renderer/grid-renderer.d.ts.map +1 -1
  124. package/renderer/grid-renderer.js +66 -8
  125. package/renderer/grid-renderer.js.map +1 -1
  126. package/renderer/group-drop-zone.js +14 -14
  127. package/renderer/group-drop-zone.js.map +1 -1
  128. package/renderer/header-renderer.d.ts +70 -0
  129. package/renderer/header-renderer.d.ts.map +1 -1
  130. package/renderer/header-renderer.js +361 -52
  131. package/renderer/header-renderer.js.map +1 -1
  132. package/renderer/row-animator.d.ts +18 -1
  133. package/renderer/row-animator.d.ts.map +1 -1
  134. package/renderer/row-animator.js +96 -20
  135. package/renderer/row-animator.js.map +1 -1
  136. package/renderer/row-drag-renderer.js +6 -6
  137. package/renderer/row-drag-renderer.js.map +1 -1
  138. package/renderer/scroll-controller.d.ts +40 -0
  139. package/renderer/scroll-controller.d.ts.map +1 -1
  140. package/renderer/scroll-controller.js +215 -13
  141. package/renderer/scroll-controller.js.map +1 -1
  142. package/styles/base/cells.css.d.ts +1 -1
  143. package/styles/base/cells.css.d.ts.map +1 -1
  144. package/styles/base/cells.css.js +13 -13
  145. package/styles/base/column-chooser.css.d.ts +13 -0
  146. package/styles/base/column-chooser.css.d.ts.map +1 -0
  147. package/styles/base/column-chooser.css.js +241 -0
  148. package/styles/base/column-chooser.css.js.map +1 -0
  149. package/styles/base/column-context-menu.css.d.ts +1 -1
  150. package/styles/base/column-context-menu.css.d.ts.map +1 -1
  151. package/styles/base/column-context-menu.css.js +29 -5
  152. package/styles/base/column-context-menu.css.js.map +1 -1
  153. package/styles/base/column-group-header.css.d.ts +1 -1
  154. package/styles/base/column-group-header.css.d.ts.map +1 -1
  155. package/styles/base/column-group-header.css.js +1 -1
  156. package/styles/base/context-menu.css.d.ts +1 -1
  157. package/styles/base/context-menu.css.d.ts.map +1 -1
  158. package/styles/base/context-menu.css.js +8 -0
  159. package/styles/base/context-menu.css.js.map +1 -1
  160. package/styles/base/filter.css.d.ts +1 -1
  161. package/styles/base/filter.css.d.ts.map +1 -1
  162. package/styles/base/filter.css.js +7 -7
  163. package/styles/base/group-drop-zone.css.d.ts +1 -1
  164. package/styles/base/group-drop-zone.css.d.ts.map +1 -1
  165. package/styles/base/group-drop-zone.css.js +3 -3
  166. package/styles/base/header.css.d.ts +1 -1
  167. package/styles/base/header.css.d.ts.map +1 -1
  168. package/styles/base/header.css.js +23 -0
  169. package/styles/base/header.css.js.map +1 -1
  170. package/styles/base/photon-ai.css.d.ts +1 -1
  171. package/styles/base/photon-ai.css.d.ts.map +1 -1
  172. package/styles/base/photon-ai.css.js +65 -0
  173. package/styles/base/photon-ai.css.js.map +1 -1
  174. package/styles/base/row-drag.css.d.ts +1 -1
  175. package/styles/base/row-drag.css.d.ts.map +1 -1
  176. package/styles/base/row-drag.css.js +1 -1
  177. package/styles/base/rows.css.d.ts +1 -1
  178. package/styles/base/rows.css.d.ts.map +1 -1
  179. package/styles/base/rows.css.js +4 -16
  180. package/styles/base/rows.css.js.map +1 -1
  181. package/styles/base/scrollbars.css.d.ts +1 -1
  182. package/styles/base/scrollbars.css.d.ts.map +1 -1
  183. package/styles/base/scrollbars.css.js +56 -7
  184. package/styles/base/scrollbars.css.js.map +1 -1
  185. package/styles/base/sparkline.css.d.ts +1 -1
  186. package/styles/base/sparkline.css.d.ts.map +1 -1
  187. package/styles/base/sparkline.css.js +6 -0
  188. package/styles/base/sparkline.css.js.map +1 -1
  189. package/styles/base/tooltip.css.d.ts +1 -1
  190. package/styles/base/tooltip.css.d.ts.map +1 -1
  191. package/styles/base/tooltip.css.js +1 -1
  192. package/styles/base/touch.css.d.ts +23 -0
  193. package/styles/base/touch.css.d.ts.map +1 -0
  194. package/styles/base/touch.css.js +85 -0
  195. package/styles/base/touch.css.js.map +1 -0
  196. package/styles/base-styles.d.ts.map +1 -1
  197. package/styles/base-styles.js +9 -2
  198. package/styles/base-styles.js.map +1 -1
  199. package/styles/themes/theme-alpine.d.ts +9 -1
  200. package/styles/themes/theme-alpine.d.ts.map +1 -1
  201. package/styles/themes/theme-alpine.js +34 -43
  202. package/styles/themes/theme-alpine.js.map +1 -1
  203. package/styles/themes/theme-balham.d.ts +9 -1
  204. package/styles/themes/theme-balham.d.ts.map +1 -1
  205. package/styles/themes/theme-balham.js +33 -42
  206. package/styles/themes/theme-balham.js.map +1 -1
  207. package/styles/themes/theme-material.d.ts +9 -1
  208. package/styles/themes/theme-material.d.ts.map +1 -1
  209. package/styles/themes/theme-material.js +35 -43
  210. package/styles/themes/theme-material.js.map +1 -1
  211. package/styles/themes/theme-quartz.d.ts +14 -1
  212. package/styles/themes/theme-quartz.d.ts.map +1 -1
  213. package/styles/themes/theme-quartz.js +63 -43
  214. package/styles/themes/theme-quartz.js.map +1 -1
  215. package/theme/theme-manager.d.ts +55 -7
  216. package/theme/theme-manager.d.ts.map +1 -1
  217. package/theme/theme-manager.js +139 -35
  218. package/theme/theme-manager.js.map +1 -1
  219. package/types/column.types.d.ts +78 -0
  220. package/types/column.types.d.ts.map +1 -1
  221. package/types/column.types.js +26 -1
  222. package/types/column.types.js.map +1 -1
  223. package/types/grid.types.d.ts +92 -3
  224. package/types/grid.types.d.ts.map +1 -1
  225. package/types/photon-ai.types.d.ts +125 -5
  226. package/types/photon-ai.types.d.ts.map +1 -1
  227. package/types/photon-ai.types.js +18 -1
  228. package/types/photon-ai.types.js.map +1 -1
  229. package/types/theme.types.d.ts +19 -0
  230. package/types/theme.types.d.ts.map +1 -1
  231. package/types/theme.types.js +7 -1
  232. package/types/theme.types.js.map +1 -1
  233. package/styles/themes/theme-dark.d.ts +0 -2
  234. package/styles/themes/theme-dark.d.ts.map +0 -1
  235. package/styles/themes/theme-dark.js +0 -216
  236. package/styles/themes/theme-dark.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Photon Grid base styles — touch / coarse-pointer section.
3
+ *
4
+ * Auto-split style module (see base-styles.ts). Everything here supports touch
5
+ * input:
6
+ *
7
+ * 1. `touch-action` declarations that let the JS pointer handlers own their
8
+ * gestures instead of the browser's native scroll/zoom. The grid scrolls via
9
+ * transform (not native overflow), so finger panning is synthesized in
10
+ * `ScrollController`; `touch-action: none` on the scroll surfaces stops the
11
+ * browser from hijacking the drag and cancelling the pointer stream.
12
+ * 2. `@media (pointer: coarse)` overrides that grow the resize / drag / fill
13
+ * handles from mouse-sized (2–6px) targets to finger-sized ones.
14
+ *
15
+ * `touch-action` is intentionally scoped to the header and the cell panel bodies
16
+ * (`.pg-panel__body`) — NOT the whole `.pg-grid__body`. Overlay children that
17
+ * scroll natively (the AI panel, editor dropdowns) are siblings of the panels,
18
+ * so this leaves their native scrolling intact.
19
+ *
20
+ * All colors come from theme tokens; no hardcoded palette values.
21
+ */
22
+ export declare const touchCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Touch / coarse pointer \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Scroll surfaces: suppress native pan/zoom so JS panning owns the gesture. */\n.pg-grid__header,\n.pg-panel__body { touch-action: none; }\n\n/* Interactive handles own their own drag \u2014 never let a touch on them scroll. */\n.pg-th__resize-handle,\n.pg-th__resize-handle--group,\n[data-row-drag],\n[data-detail-resize-handle],\n.pg-fill-handle { touch-action: none; }\n\n/* Column header \"picked up\" via long-press (touch reorder). */\n.pg-th--drag-armed {\n background: var(--pg-colors-row-selected, rgba(37, 99, 235, 0.08));\n cursor: grabbing;\n}\n\n/* \u2500\u2500 Finger-sized hit targets \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Coarse pointers (touch) get enlarged, transparent hit areas; the visible\n affordance (a thin line / small square) is preserved via ::after or the\n existing box so the look is unchanged on desktop. */\n@media (pointer: coarse) {\n /* Column resize handle: widen the invisible grab zone, keep a thin visual line. */\n .pg-th__resize-handle {\n width: 18px;\n right: -9px;\n background: transparent;\n }\n .pg-th--pinned-right .pg-th__resize-handle {\n left: -9px;\n right: auto;\n }\n .pg-th__resize-handle::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n width: 2px;\n transform: translateX(-50%);\n background: var(--pg-colors-resize-handle-color, #d9d9db);\n }\n\n /* Row drag handle: larger and more visible for fingers. */\n .pg-row-drag-handle {\n width: 32px;\n opacity: 0.6;\n }\n\n /* Fill handle: grow the corner target so it can be grabbed with a finger. */\n .pg-fill-handle {\n width: 14px;\n height: 14px;\n }\n\n /* Master/Detail bottom-edge resize handle: taller grab strip. */\n [data-detail-resize-handle] {\n min-height: 16px;\n }\n}\n";
23
+ //# sourceMappingURL=touch.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touch.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/touch.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,QAAQ,gxEA8DpB,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Photon Grid base styles — touch / coarse-pointer section.
3
+ *
4
+ * Auto-split style module (see base-styles.ts). Everything here supports touch
5
+ * input:
6
+ *
7
+ * 1. `touch-action` declarations that let the JS pointer handlers own their
8
+ * gestures instead of the browser's native scroll/zoom. The grid scrolls via
9
+ * transform (not native overflow), so finger panning is synthesized in
10
+ * `ScrollController`; `touch-action: none` on the scroll surfaces stops the
11
+ * browser from hijacking the drag and cancelling the pointer stream.
12
+ * 2. `@media (pointer: coarse)` overrides that grow the resize / drag / fill
13
+ * handles from mouse-sized (2–6px) targets to finger-sized ones.
14
+ *
15
+ * `touch-action` is intentionally scoped to the header and the cell panel bodies
16
+ * (`.pg-panel__body`) — NOT the whole `.pg-grid__body`. Overlay children that
17
+ * scroll natively (the AI panel, editor dropdowns) are siblings of the panels,
18
+ * so this leaves their native scrolling intact.
19
+ *
20
+ * All colors come from theme tokens; no hardcoded palette values.
21
+ */
22
+ export const touchCss = `/* ──────────────────── Touch / coarse pointer ──────────────────── */
23
+
24
+ /* Scroll surfaces: suppress native pan/zoom so JS panning owns the gesture. */
25
+ .pg-grid__header,
26
+ .pg-panel__body { touch-action: none; }
27
+
28
+ /* Interactive handles own their own drag — never let a touch on them scroll. */
29
+ .pg-th__resize-handle,
30
+ .pg-th__resize-handle--group,
31
+ [data-row-drag],
32
+ [data-detail-resize-handle],
33
+ .pg-fill-handle { touch-action: none; }
34
+
35
+ /* Column header "picked up" via long-press (touch reorder). */
36
+ .pg-th--drag-armed {
37
+ background: var(--pg-colors-row-selected, rgba(37, 99, 235, 0.08));
38
+ cursor: grabbing;
39
+ }
40
+
41
+ /* ── Finger-sized hit targets ─────────────────────────────────────────────
42
+ Coarse pointers (touch) get enlarged, transparent hit areas; the visible
43
+ affordance (a thin line / small square) is preserved via ::after or the
44
+ existing box so the look is unchanged on desktop. */
45
+ @media (pointer: coarse) {
46
+ /* Column resize handle: widen the invisible grab zone, keep a thin visual line. */
47
+ .pg-th__resize-handle {
48
+ width: 18px;
49
+ right: -9px;
50
+ background: transparent;
51
+ }
52
+ .pg-th--pinned-right .pg-th__resize-handle {
53
+ left: -9px;
54
+ right: auto;
55
+ }
56
+ .pg-th__resize-handle::after {
57
+ content: '';
58
+ position: absolute;
59
+ top: 0;
60
+ bottom: 0;
61
+ left: 50%;
62
+ width: 2px;
63
+ transform: translateX(-50%);
64
+ background: var(--pg-colors-resize-handle-color, #d9d9db);
65
+ }
66
+
67
+ /* Row drag handle: larger and more visible for fingers. */
68
+ .pg-row-drag-handle {
69
+ width: 32px;
70
+ opacity: 0.6;
71
+ }
72
+
73
+ /* Fill handle: grow the corner target so it can be grabbed with a finger. */
74
+ .pg-fill-handle {
75
+ width: 14px;
76
+ height: 14px;
77
+ }
78
+
79
+ /* Master/Detail bottom-edge resize handle: taller grab strip. */
80
+ [data-detail-resize-handle] {
81
+ min-height: 16px;
82
+ }
83
+ }
84
+ `;
85
+ //# sourceMappingURL=touch.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touch.css.js","sourceRoot":"","sources":["../../../src/styles/base/touch.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-styles.d.ts","sourceRoot":"","sources":["../../src/styles/base-styles.ts"],"names":[],"mappings":"AAwEA,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
1
+ {"version":3,"file":"base-styles.d.ts","sourceRoot":"","sources":["../../src/styles/base-styles.ts"],"names":[],"mappings":"AA+EA,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -2,7 +2,6 @@ import { themeQuartzCss } from './themes/theme-quartz';
2
2
  import { themeAlpineCss } from './themes/theme-alpine';
3
3
  import { themeBalhamCss } from './themes/theme-balham';
4
4
  import { themeMaterialCss } from './themes/theme-material';
5
- import { themeDarkCss } from './themes/theme-dark';
6
5
  // Base styles are authored as focused per-feature modules under ./base/ for
7
6
  // maintainability, then concatenated here in a FIXED order. The order matters:
8
7
  // CSS cascade resolves same-specificity conflicts by source order, so these
@@ -33,6 +32,8 @@ import { photonAiCss } from './base/photon-ai.css';
33
32
  import { tooltipCss } from './base/tooltip.css';
34
33
  import { chartConfigCss } from './base/chart-config.css';
35
34
  import { chartControlsCss } from './base/chart-controls.css';
35
+ import { columnChooserCss } from './base/column-chooser.css';
36
+ import { touchCss } from './base/touch.css';
36
37
  const STYLE_ID = 'photon-grid-base-styles';
37
38
  // Joined with '' (not '\n') so the output is byte-identical to the original
38
39
  // single template: each module already carries its own leading/trailing
@@ -63,8 +64,14 @@ const baseCss = [
63
64
  tooltipCss,
64
65
  chartConfigCss,
65
66
  chartControlsCss,
67
+ columnChooserCss,
68
+ touchCss,
66
69
  ].join('');
67
- const css = [baseCss, themeQuartzCss, themeAlpineCss, themeBalhamCss, themeMaterialCss, themeDarkCss].join('\n');
70
+ // Variant skins are appended after the base rules. Each is a cosmetic layer
71
+ // (density, radii, typography, accent) that composes with either color mode;
72
+ // the light/dark palettes themselves are injected as tokens by ThemeManager,
73
+ // so no class-based dark skin is bundled here.
74
+ const css = [baseCss, themeQuartzCss, themeAlpineCss, themeBalhamCss, themeMaterialCss].join('\n');
68
75
  export function injectBaseStyles() {
69
76
  if (document.getElementById(STYLE_ID))
70
77
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"base-styles.js","sourceRoot":"","sources":["../../src/styles/base-styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-styles.js","sourceRoot":"","sources":["../../src/styles/base-styles.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,10 @@
1
- export declare const themeAlpineCss = "\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 pg-alpine-theme variables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-alpine-theme .pg-grid {\n --pg-colors-border: #e5e7eb;\n --pg-colors-header-background: #ffffff;\n --pg-colors-header-border: #e5e7eb;\n --pg-colors-header-text: #374151;\n --pg-colors-row-background: #ffffff;\n --pg-colors-row-alt-background: #fafafa;\n --pg-colors-row-hover: #f0fdf4;\n --pg-colors-row-selected: #dcfce7;\n --pg-colors-row-selected-hover: #bbf7d0;\n --pg-colors-text-primary: #111827;\n --pg-colors-text-secondary: #6b7280;\n --pg-colors-text-muted: #9ca3af;\n --pg-colors-text-disabled: #d1d5db;\n --pg-colors-primary: #16a34a;\n --pg-colors-filter-background: #ffffff;\n --pg-colors-scrollbar-bg: #f9fafb;\n --pg-colors-badge-background: #dcfce7;\n --pg-colors-badge-text: #166534;\n --pg-colors-resize-handle-color: #d1d5db;\n\n --pg-typography-font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', sans-serif;\n --pg-typography-font-size-md: 0.8rem;\n --pg-typography-font-size-sm: 12px;\n --pg-typography-font-size-xs: 11px;\n --pg-typography-font-weight-medium: 400;\n --pg-typography-font-weight-semi-bold: 600;\n --pg-typography-letter-spacing-wide: 0em;\n\n --pg-header-row-height: 42px;\n --pg-row-height: 40px;\n --pg-borders-radius-md: 4px;\n --pg-borders-radius-sm: 2px;\n --pg-borders-radius-pill: 9999px;\n --pg-transitions-duration-fast: 100ms;\n --pg-sizing-checkbox-size: 15px;\n}\n\n/* Alpine header \u2014 no uppercase, clean weight */\n.pg-alpine-theme .pg-th {\n text-transform: none;\n font-size: 13px;\n font-weight: 600;\n letter-spacing: 0em;\n color: #374151;\n}\n.pg-alpine-theme .pg-th--sorted { color: #16a34a; }\n.pg-alpine-theme .pg-grid__header { border-bottom: 2px solid #e5e7eb; }\n\n/* Alpine rows \u2014 thin full-width divider */\n.pg-alpine-theme .pg-row { border-bottom: 1px solid #f3f4f6; }\n\n/* Alpine icon tones */\n.pg-alpine-theme .pg-icon { color: #6b7280; }\n.pg-alpine-theme .pg-th--sorted .pg-icon { color: #16a34a; }\n.pg-alpine-theme .pg-row-drag-handle { color: #9ca3af; }\n\n/* Alpine checkbox \u2014 15px, 2px-radius, slim green outline \u2192 fill */\n.pg-alpine-theme .pg-checkbox {\n appearance: none;\n -webkit-appearance: none;\n width: 15px;\n height: 15px;\n border: 1.5px solid #d1d5db;\n border-radius: 2px;\n background: #fff;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n transition: background 100ms linear, border-color 100ms linear;\n}\n.pg-alpine-theme .pg-checkbox:hover { border-color: #16a34a; }\n.pg-alpine-theme .pg-checkbox:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px rgba(22,163,74,0.3);\n}\n.pg-alpine-theme .pg-checkbox:checked {\n background: #16a34a;\n border-color: #16a34a;\n}\n.pg-alpine-theme .pg-checkbox:checked::after {\n content: '';\n position: absolute;\n left: 3px;\n top: 1px;\n width: 5px;\n height: 8px;\n border: 1.5px solid #fff;\n border-top: none;\n border-left: none;\n transform: rotate(45deg);\n}\n.pg-alpine-theme .pg-checkbox:indeterminate {\n background: #16a34a;\n border-color: #16a34a;\n}\n.pg-alpine-theme .pg-checkbox:indeterminate::after {\n content: '';\n position: absolute;\n left: 2px;\n top: 50%;\n width: 7px;\n height: 1.5px;\n background: #fff;\n transform: translateY(-50%);\n}\n\n/* Alpine selection \u2014 clean green underline */\n.pg-alpine-theme .pg-row--selected { box-shadow: inset 2px 0 0 #16a34a; }\n\n/* Alpine row-drag animation \u2014 snappy, fast linear */\n.pg-alpine-theme .pg-grid--row-dragging .pg-row {\n transition: background 100ms linear, top 100ms ease-out;\n}\n";
1
+ /**
2
+ * pg-alpine-theme — clean, minimal (emerald accent).
3
+ *
4
+ * Cosmetic variant layered on the active mode (light/dark). Overrides only
5
+ * density, radii, typography, accent and motion; base colors come from the
6
+ * mode tokens so it works in both light and dark. See {@link themeQuartzCss}
7
+ * for the shared design rationale.
8
+ */
9
+ export declare const themeAlpineCss = "\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 pg-alpine-theme: structural + accent tokens \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-alpine-theme .pg-grid {\n --pg-colors-primary: #16a34a;\n\n --pg-typography-font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', sans-serif;\n --pg-typography-font-size-md: 0.8rem;\n --pg-typography-font-size-sm: 12px;\n --pg-typography-font-size-xs: 11px;\n --pg-typography-font-weight-medium: 400;\n --pg-typography-font-weight-semi-bold: 600;\n --pg-typography-letter-spacing-wide: 0em;\n\n --pg-header-row-height: 42px;\n --pg-row-height: 40px;\n\n --pg-borders-radius-md: 4px;\n --pg-borders-radius-sm: 2px;\n --pg-borders-radius-pill: 9999px;\n --pg-sizing-checkbox-size: 15px;\n\n --pg-transitions-duration-fast: 100ms;\n}\n\n/* Alpine header \u2014 no uppercase, clean weight; color follows the mode. */\n.pg-alpine-theme .pg-th {\n text-transform: none;\n font-size: 13px;\n font-weight: 600;\n letter-spacing: 0em;\n color: var(--pg-colors-header-text);\n}\n.pg-alpine-theme .pg-th--sorted { color: var(--pg-colors-primary); }\n.pg-alpine-theme .pg-grid__header { border-bottom: 2px solid var(--pg-colors-header-border); }\n\n/* Alpine rows \u2014 thin full-width divider */\n.pg-alpine-theme .pg-row { border-bottom: 1px solid var(--pg-colors-border); }\n\n/* Alpine icon tones \u2014 mode-aware */\n.pg-alpine-theme .pg-icon { color: var(--pg-colors-text-secondary); }\n.pg-alpine-theme .pg-th--sorted .pg-icon { color: var(--pg-colors-primary); }\n.pg-alpine-theme .pg-row-drag-handle { color: var(--pg-colors-text-disabled); }\n\n/* Alpine checkbox \u2014 15px, 2px-radius, slim accent outline \u2192 fill */\n.pg-alpine-theme .pg-checkbox {\n appearance: none;\n -webkit-appearance: none;\n width: 15px;\n height: 15px;\n border: 1.5px solid var(--pg-colors-checkbox-border);\n border-radius: 2px;\n background: var(--pg-colors-checkbox-background);\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n transition: background 100ms linear, border-color 100ms linear;\n}\n.pg-alpine-theme .pg-checkbox:hover { border-color: var(--pg-colors-primary); }\n.pg-alpine-theme .pg-checkbox:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--pg-colors-primary) 30%, transparent);\n}\n.pg-alpine-theme .pg-checkbox:checked {\n background: var(--pg-colors-primary);\n border-color: var(--pg-colors-primary);\n}\n.pg-alpine-theme .pg-checkbox:checked::after {\n content: '';\n position: absolute;\n left: 3px;\n top: 1px;\n width: 5px;\n height: 8px;\n border: 1.5px solid var(--pg-colors-primary-text);\n border-top: none;\n border-left: none;\n transform: rotate(45deg);\n}\n.pg-alpine-theme .pg-checkbox:indeterminate {\n background: var(--pg-colors-primary);\n border-color: var(--pg-colors-primary);\n}\n.pg-alpine-theme .pg-checkbox:indeterminate::after {\n content: '';\n position: absolute;\n left: 2px;\n top: 50%;\n width: 7px;\n height: 1.5px;\n background: var(--pg-colors-primary-text);\n transform: translateY(-50%);\n}\n\n/* Alpine selection \u2014 clean accent left bar */\n.pg-alpine-theme .pg-row--selected { box-shadow: inset 2px 0 0 var(--pg-colors-primary); }\n\n/* Alpine row-drag animation \u2014 snappy, fast linear */\n.pg-alpine-theme .pg-grid--row-dragging .pg-row {\n transition: background 100ms linear, top 100ms ease-out;\n}\n";
2
10
  //# sourceMappingURL=theme-alpine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-alpine.d.ts","sourceRoot":"","sources":["../../../src/styles/themes/theme-alpine.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,opHAqH1B,CAAC"}
1
+ {"version":3,"file":"theme-alpine.d.ts","sourceRoot":"","sources":["../../../src/styles/themes/theme-alpine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,y5GAqG1B,CAAC"}
@@ -1,27 +1,16 @@
1
- /* pg-alpine-theme — clean, minimal, emerald green */
1
+ /**
2
+ * pg-alpine-theme — clean, minimal (emerald accent).
3
+ *
4
+ * Cosmetic variant layered on the active mode (light/dark). Overrides only
5
+ * density, radii, typography, accent and motion; base colors come from the
6
+ * mode tokens so it works in both light and dark. See {@link themeQuartzCss}
7
+ * for the shared design rationale.
8
+ */
2
9
  export const themeAlpineCss = `
3
10
 
4
- /* ──────────── pg-alpine-theme variables ──────────── */
11
+ /* ──────────── pg-alpine-theme: structural + accent tokens ──────────── */
5
12
  .pg-alpine-theme .pg-grid {
6
- --pg-colors-border: #e5e7eb;
7
- --pg-colors-header-background: #ffffff;
8
- --pg-colors-header-border: #e5e7eb;
9
- --pg-colors-header-text: #374151;
10
- --pg-colors-row-background: #ffffff;
11
- --pg-colors-row-alt-background: #fafafa;
12
- --pg-colors-row-hover: #f0fdf4;
13
- --pg-colors-row-selected: #dcfce7;
14
- --pg-colors-row-selected-hover: #bbf7d0;
15
- --pg-colors-text-primary: #111827;
16
- --pg-colors-text-secondary: #6b7280;
17
- --pg-colors-text-muted: #9ca3af;
18
- --pg-colors-text-disabled: #d1d5db;
19
13
  --pg-colors-primary: #16a34a;
20
- --pg-colors-filter-background: #ffffff;
21
- --pg-colors-scrollbar-bg: #f9fafb;
22
- --pg-colors-badge-background: #dcfce7;
23
- --pg-colors-badge-text: #166534;
24
- --pg-colors-resize-handle-color: #d1d5db;
25
14
 
26
15
  --pg-typography-font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', sans-serif;
27
16
  --pg-typography-font-size-md: 0.8rem;
@@ -33,54 +22,56 @@ export const themeAlpineCss = `
33
22
 
34
23
  --pg-header-row-height: 42px;
35
24
  --pg-row-height: 40px;
25
+
36
26
  --pg-borders-radius-md: 4px;
37
27
  --pg-borders-radius-sm: 2px;
38
28
  --pg-borders-radius-pill: 9999px;
39
- --pg-transitions-duration-fast: 100ms;
40
29
  --pg-sizing-checkbox-size: 15px;
30
+
31
+ --pg-transitions-duration-fast: 100ms;
41
32
  }
42
33
 
43
- /* Alpine header — no uppercase, clean weight */
34
+ /* Alpine header — no uppercase, clean weight; color follows the mode. */
44
35
  .pg-alpine-theme .pg-th {
45
36
  text-transform: none;
46
37
  font-size: 13px;
47
38
  font-weight: 600;
48
39
  letter-spacing: 0em;
49
- color: #374151;
40
+ color: var(--pg-colors-header-text);
50
41
  }
51
- .pg-alpine-theme .pg-th--sorted { color: #16a34a; }
52
- .pg-alpine-theme .pg-grid__header { border-bottom: 2px solid #e5e7eb; }
42
+ .pg-alpine-theme .pg-th--sorted { color: var(--pg-colors-primary); }
43
+ .pg-alpine-theme .pg-grid__header { border-bottom: 2px solid var(--pg-colors-header-border); }
53
44
 
54
45
  /* Alpine rows — thin full-width divider */
55
- .pg-alpine-theme .pg-row { border-bottom: 1px solid #f3f4f6; }
46
+ .pg-alpine-theme .pg-row { border-bottom: 1px solid var(--pg-colors-border); }
56
47
 
57
- /* Alpine icon tones */
58
- .pg-alpine-theme .pg-icon { color: #6b7280; }
59
- .pg-alpine-theme .pg-th--sorted .pg-icon { color: #16a34a; }
60
- .pg-alpine-theme .pg-row-drag-handle { color: #9ca3af; }
48
+ /* Alpine icon tones — mode-aware */
49
+ .pg-alpine-theme .pg-icon { color: var(--pg-colors-text-secondary); }
50
+ .pg-alpine-theme .pg-th--sorted .pg-icon { color: var(--pg-colors-primary); }
51
+ .pg-alpine-theme .pg-row-drag-handle { color: var(--pg-colors-text-disabled); }
61
52
 
62
- /* Alpine checkbox — 15px, 2px-radius, slim green outline → fill */
53
+ /* Alpine checkbox — 15px, 2px-radius, slim accent outline → fill */
63
54
  .pg-alpine-theme .pg-checkbox {
64
55
  appearance: none;
65
56
  -webkit-appearance: none;
66
57
  width: 15px;
67
58
  height: 15px;
68
- border: 1.5px solid #d1d5db;
59
+ border: 1.5px solid var(--pg-colors-checkbox-border);
69
60
  border-radius: 2px;
70
- background: #fff;
61
+ background: var(--pg-colors-checkbox-background);
71
62
  cursor: pointer;
72
63
  position: relative;
73
64
  flex-shrink: 0;
74
65
  transition: background 100ms linear, border-color 100ms linear;
75
66
  }
76
- .pg-alpine-theme .pg-checkbox:hover { border-color: #16a34a; }
67
+ .pg-alpine-theme .pg-checkbox:hover { border-color: var(--pg-colors-primary); }
77
68
  .pg-alpine-theme .pg-checkbox:focus-visible {
78
69
  outline: none;
79
- box-shadow: 0 0 0 2px rgba(22,163,74,0.3);
70
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--pg-colors-primary) 30%, transparent);
80
71
  }
81
72
  .pg-alpine-theme .pg-checkbox:checked {
82
- background: #16a34a;
83
- border-color: #16a34a;
73
+ background: var(--pg-colors-primary);
74
+ border-color: var(--pg-colors-primary);
84
75
  }
85
76
  .pg-alpine-theme .pg-checkbox:checked::after {
86
77
  content: '';
@@ -89,14 +80,14 @@ export const themeAlpineCss = `
89
80
  top: 1px;
90
81
  width: 5px;
91
82
  height: 8px;
92
- border: 1.5px solid #fff;
83
+ border: 1.5px solid var(--pg-colors-primary-text);
93
84
  border-top: none;
94
85
  border-left: none;
95
86
  transform: rotate(45deg);
96
87
  }
97
88
  .pg-alpine-theme .pg-checkbox:indeterminate {
98
- background: #16a34a;
99
- border-color: #16a34a;
89
+ background: var(--pg-colors-primary);
90
+ border-color: var(--pg-colors-primary);
100
91
  }
101
92
  .pg-alpine-theme .pg-checkbox:indeterminate::after {
102
93
  content: '';
@@ -105,12 +96,12 @@ export const themeAlpineCss = `
105
96
  top: 50%;
106
97
  width: 7px;
107
98
  height: 1.5px;
108
- background: #fff;
99
+ background: var(--pg-colors-primary-text);
109
100
  transform: translateY(-50%);
110
101
  }
111
102
 
112
- /* Alpine selection — clean green underline */
113
- .pg-alpine-theme .pg-row--selected { box-shadow: inset 2px 0 0 #16a34a; }
103
+ /* Alpine selection — clean accent left bar */
104
+ .pg-alpine-theme .pg-row--selected { box-shadow: inset 2px 0 0 var(--pg-colors-primary); }
114
105
 
115
106
  /* Alpine row-drag animation — snappy, fast linear */
116
107
  .pg-alpine-theme .pg-grid--row-dragging .pg-row {
@@ -1 +1 @@
1
- {"version":3,"file":"theme-alpine.js","sourceRoot":"","sources":["../../../src/styles/themes/theme-alpine.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqH7B,CAAC"}
1
+ {"version":3,"file":"theme-alpine.js","sourceRoot":"","sources":["../../../src/styles/themes/theme-alpine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqG7B,CAAC"}
@@ -1,2 +1,10 @@
1
- export declare const themeBalhamCss = "\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 pg-balham-theme variables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-balham-theme .pg-grid {\n --pg-colors-border: #d1d5db;\n --pg-colors-header-background: #f3f4f6;\n --pg-colors-header-border: #d1d5db;\n --pg-colors-header-text: #374151;\n --pg-colors-row-background: #ffffff;\n --pg-colors-row-alt-background: #f9fafb;\n --pg-colors-row-hover: #fef3c7;\n --pg-colors-row-selected: #fffbeb;\n --pg-colors-row-selected-hover: #fef08a;\n --pg-colors-text-primary: #111827;\n --pg-colors-text-secondary: #6b7280;\n --pg-colors-text-muted: #9ca3af;\n --pg-colors-text-disabled: #d1d5db;\n --pg-colors-primary: #d97706;\n --pg-colors-filter-background: #ffffff;\n --pg-colors-scrollbar-bg: #f3f4f6;\n --pg-colors-badge-background: #fef3c7;\n --pg-colors-badge-text: #92400e;\n --pg-colors-resize-handle-color: #d1d5db;\n\n --pg-typography-font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;\n --pg-typography-font-size-sm: 11px;\n --pg-typography-font-size-xs: 10px;\n --pg-typography-font-weight-medium: 400;\n --pg-typography-font-weight-semi-bold: 600;\n --pg-typography-letter-spacing-wide: 0.04em;\n\n --pg-header-row-height: 36px;\n --pg-row-height: 32px;\n --pg-borders-radius-md: 2px;\n --pg-borders-radius-sm: 0px;\n --pg-borders-radius-pill: 2px;\n --pg-transitions-duration-fast: 80ms;\n --pg-sizing-checkbox-size: 14px;\n}\n\n/* Balham header \u2014 dense, uppercase, pronounced border */\n.pg-balham-theme .pg-th {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.06em;\n color: #374151;\n}\n.pg-balham-theme .pg-th--sorted { color: #d97706; }\n.pg-balham-theme .pg-grid__header { border-bottom: 2px solid #d1d5db; }\n\n/* Balham rows \u2014 full row border, classic spreadsheet look */\n.pg-balham-theme .pg-row { border-bottom: 1px solid #e5e7eb; }\n\n/* Balham icon tones \u2014 warmer grays */\n.pg-balham-theme .pg-icon { color: #6b7280; }\n.pg-balham-theme .pg-th--sorted .pg-icon { color: #d97706; }\n.pg-balham-theme .pg-row-drag-handle { color: #9ca3af; }\n\n/* Balham checkbox \u2014 14px, square (0 radius), flat amber fill */\n.pg-balham-theme .pg-checkbox {\n appearance: none;\n -webkit-appearance: none;\n width: 14px;\n height: 14px;\n border: 1px solid #9ca3af;\n border-radius: 0px;\n background: #fff;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n transition: background 80ms linear, border-color 80ms linear;\n}\n.pg-balham-theme .pg-checkbox:hover { border-color: #d97706; }\n.pg-balham-theme .pg-checkbox:focus-visible {\n outline: 1px solid #d97706;\n outline-offset: 1px;\n}\n.pg-balham-theme .pg-checkbox:checked {\n background: #d97706;\n border-color: #d97706;\n}\n.pg-balham-theme .pg-checkbox:checked::after {\n content: '';\n position: absolute;\n left: 3px;\n top: 1px;\n width: 5px;\n height: 8px;\n border: 2px solid #fff;\n border-top: none;\n border-left: none;\n transform: rotate(45deg);\n}\n.pg-balham-theme .pg-checkbox:indeterminate {\n background: #d97706;\n border-color: #d97706;\n}\n.pg-balham-theme .pg-checkbox:indeterminate::after {\n content: '';\n position: absolute;\n left: 2px;\n top: 50%;\n width: 8px;\n height: 2px;\n background: #fff;\n transform: translateY(-50%);\n}\n\n/* Balham selection \u2014 amber left accent bar */\n.pg-balham-theme .pg-row--selected { box-shadow: inset 3px 0 0 #d97706; }\n\n/* Balham row-drag \u2014 very fast, minimal */\n.pg-balham-theme .pg-grid--row-dragging .pg-row {\n transition: background 80ms linear, top 80ms linear;\n}\n";
1
+ /**
2
+ * pg-balham-theme — compact, professional (amber accent).
3
+ *
4
+ * Cosmetic variant layered on the active mode (light/dark). Overrides only
5
+ * density, radii, typography, accent and motion; base colors come from the
6
+ * mode tokens so it works in both light and dark. See {@link themeQuartzCss}
7
+ * for the shared design rationale.
8
+ */
9
+ export declare const themeBalhamCss = "\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 pg-balham-theme: structural + accent tokens \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-balham-theme .pg-grid {\n --pg-colors-primary: #d97706;\n\n --pg-typography-font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;\n --pg-typography-font-size-sm: 11px;\n --pg-typography-font-size-xs: 10px;\n --pg-typography-font-weight-medium: 400;\n --pg-typography-font-weight-semi-bold: 600;\n --pg-typography-letter-spacing-wide: 0.04em;\n\n --pg-header-row-height: 36px;\n --pg-row-height: 32px;\n\n --pg-borders-radius-md: 2px;\n --pg-borders-radius-sm: 0px;\n --pg-borders-radius-pill: 2px;\n --pg-sizing-checkbox-size: 14px;\n\n --pg-transitions-duration-fast: 80ms;\n}\n\n/* Balham header \u2014 dense, uppercase, pronounced border; color follows the mode. */\n.pg-balham-theme .pg-th {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.06em;\n color: var(--pg-colors-header-text);\n}\n.pg-balham-theme .pg-th--sorted { color: var(--pg-colors-primary); }\n.pg-balham-theme .pg-grid__header { border-bottom: 2px solid var(--pg-colors-header-border); }\n\n/* Balham rows \u2014 full row border, classic spreadsheet look */\n.pg-balham-theme .pg-row { border-bottom: 1px solid var(--pg-colors-border); }\n\n/* Balham icon tones \u2014 mode-aware */\n.pg-balham-theme .pg-icon { color: var(--pg-colors-text-secondary); }\n.pg-balham-theme .pg-th--sorted .pg-icon { color: var(--pg-colors-primary); }\n.pg-balham-theme .pg-row-drag-handle { color: var(--pg-colors-text-disabled); }\n\n/* Balham checkbox \u2014 14px, square (0 radius), flat accent fill */\n.pg-balham-theme .pg-checkbox {\n appearance: none;\n -webkit-appearance: none;\n width: 14px;\n height: 14px;\n border: 1px solid var(--pg-colors-checkbox-border);\n border-radius: 0px;\n background: var(--pg-colors-checkbox-background);\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n transition: background 80ms linear, border-color 80ms linear;\n}\n.pg-balham-theme .pg-checkbox:hover { border-color: var(--pg-colors-primary); }\n.pg-balham-theme .pg-checkbox:focus-visible {\n outline: 1px solid var(--pg-colors-primary);\n outline-offset: 1px;\n}\n.pg-balham-theme .pg-checkbox:checked {\n background: var(--pg-colors-primary);\n border-color: var(--pg-colors-primary);\n}\n.pg-balham-theme .pg-checkbox:checked::after {\n content: '';\n position: absolute;\n left: 3px;\n top: 1px;\n width: 5px;\n height: 8px;\n border: 2px solid var(--pg-colors-primary-text);\n border-top: none;\n border-left: none;\n transform: rotate(45deg);\n}\n.pg-balham-theme .pg-checkbox:indeterminate {\n background: var(--pg-colors-primary);\n border-color: var(--pg-colors-primary);\n}\n.pg-balham-theme .pg-checkbox:indeterminate::after {\n content: '';\n position: absolute;\n left: 2px;\n top: 50%;\n width: 8px;\n height: 2px;\n background: var(--pg-colors-primary-text);\n transform: translateY(-50%);\n}\n\n/* Balham selection \u2014 amber left accent bar */\n.pg-balham-theme .pg-row--selected { box-shadow: inset 3px 0 0 var(--pg-colors-primary); }\n\n/* Balham row-drag \u2014 very fast, minimal */\n.pg-balham-theme .pg-grid--row-dragging .pg-row {\n transition: background 80ms linear, top 80ms linear;\n}\n";
2
10
  //# sourceMappingURL=theme-balham.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-balham.d.ts","sourceRoot":"","sources":["../../../src/styles/themes/theme-balham.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,umHAoH1B,CAAC"}
1
+ {"version":3,"file":"theme-balham.d.ts","sourceRoot":"","sources":["../../../src/styles/themes/theme-balham.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,+zGAoG1B,CAAC"}
@@ -1,27 +1,16 @@
1
- /* pg-balham-theme — compact, professional, amber accent */
1
+ /**
2
+ * pg-balham-theme — compact, professional (amber accent).
3
+ *
4
+ * Cosmetic variant layered on the active mode (light/dark). Overrides only
5
+ * density, radii, typography, accent and motion; base colors come from the
6
+ * mode tokens so it works in both light and dark. See {@link themeQuartzCss}
7
+ * for the shared design rationale.
8
+ */
2
9
  export const themeBalhamCss = `
3
10
 
4
- /* ──────────── pg-balham-theme variables ──────────── */
11
+ /* ──────────── pg-balham-theme: structural + accent tokens ──────────── */
5
12
  .pg-balham-theme .pg-grid {
6
- --pg-colors-border: #d1d5db;
7
- --pg-colors-header-background: #f3f4f6;
8
- --pg-colors-header-border: #d1d5db;
9
- --pg-colors-header-text: #374151;
10
- --pg-colors-row-background: #ffffff;
11
- --pg-colors-row-alt-background: #f9fafb;
12
- --pg-colors-row-hover: #fef3c7;
13
- --pg-colors-row-selected: #fffbeb;
14
- --pg-colors-row-selected-hover: #fef08a;
15
- --pg-colors-text-primary: #111827;
16
- --pg-colors-text-secondary: #6b7280;
17
- --pg-colors-text-muted: #9ca3af;
18
- --pg-colors-text-disabled: #d1d5db;
19
13
  --pg-colors-primary: #d97706;
20
- --pg-colors-filter-background: #ffffff;
21
- --pg-colors-scrollbar-bg: #f3f4f6;
22
- --pg-colors-badge-background: #fef3c7;
23
- --pg-colors-badge-text: #92400e;
24
- --pg-colors-resize-handle-color: #d1d5db;
25
14
 
26
15
  --pg-typography-font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
27
16
  --pg-typography-font-size-sm: 11px;
@@ -32,54 +21,56 @@ export const themeBalhamCss = `
32
21
 
33
22
  --pg-header-row-height: 36px;
34
23
  --pg-row-height: 32px;
24
+
35
25
  --pg-borders-radius-md: 2px;
36
26
  --pg-borders-radius-sm: 0px;
37
27
  --pg-borders-radius-pill: 2px;
38
- --pg-transitions-duration-fast: 80ms;
39
28
  --pg-sizing-checkbox-size: 14px;
29
+
30
+ --pg-transitions-duration-fast: 80ms;
40
31
  }
41
32
 
42
- /* Balham header — dense, uppercase, pronounced border */
33
+ /* Balham header — dense, uppercase, pronounced border; color follows the mode. */
43
34
  .pg-balham-theme .pg-th {
44
35
  text-transform: uppercase;
45
36
  font-size: 10px;
46
37
  font-weight: 700;
47
38
  letter-spacing: 0.06em;
48
- color: #374151;
39
+ color: var(--pg-colors-header-text);
49
40
  }
50
- .pg-balham-theme .pg-th--sorted { color: #d97706; }
51
- .pg-balham-theme .pg-grid__header { border-bottom: 2px solid #d1d5db; }
41
+ .pg-balham-theme .pg-th--sorted { color: var(--pg-colors-primary); }
42
+ .pg-balham-theme .pg-grid__header { border-bottom: 2px solid var(--pg-colors-header-border); }
52
43
 
53
44
  /* Balham rows — full row border, classic spreadsheet look */
54
- .pg-balham-theme .pg-row { border-bottom: 1px solid #e5e7eb; }
45
+ .pg-balham-theme .pg-row { border-bottom: 1px solid var(--pg-colors-border); }
55
46
 
56
- /* Balham icon tones — warmer grays */
57
- .pg-balham-theme .pg-icon { color: #6b7280; }
58
- .pg-balham-theme .pg-th--sorted .pg-icon { color: #d97706; }
59
- .pg-balham-theme .pg-row-drag-handle { color: #9ca3af; }
47
+ /* Balham icon tones — mode-aware */
48
+ .pg-balham-theme .pg-icon { color: var(--pg-colors-text-secondary); }
49
+ .pg-balham-theme .pg-th--sorted .pg-icon { color: var(--pg-colors-primary); }
50
+ .pg-balham-theme .pg-row-drag-handle { color: var(--pg-colors-text-disabled); }
60
51
 
61
- /* Balham checkbox — 14px, square (0 radius), flat amber fill */
52
+ /* Balham checkbox — 14px, square (0 radius), flat accent fill */
62
53
  .pg-balham-theme .pg-checkbox {
63
54
  appearance: none;
64
55
  -webkit-appearance: none;
65
56
  width: 14px;
66
57
  height: 14px;
67
- border: 1px solid #9ca3af;
58
+ border: 1px solid var(--pg-colors-checkbox-border);
68
59
  border-radius: 0px;
69
- background: #fff;
60
+ background: var(--pg-colors-checkbox-background);
70
61
  cursor: pointer;
71
62
  position: relative;
72
63
  flex-shrink: 0;
73
64
  transition: background 80ms linear, border-color 80ms linear;
74
65
  }
75
- .pg-balham-theme .pg-checkbox:hover { border-color: #d97706; }
66
+ .pg-balham-theme .pg-checkbox:hover { border-color: var(--pg-colors-primary); }
76
67
  .pg-balham-theme .pg-checkbox:focus-visible {
77
- outline: 1px solid #d97706;
68
+ outline: 1px solid var(--pg-colors-primary);
78
69
  outline-offset: 1px;
79
70
  }
80
71
  .pg-balham-theme .pg-checkbox:checked {
81
- background: #d97706;
82
- border-color: #d97706;
72
+ background: var(--pg-colors-primary);
73
+ border-color: var(--pg-colors-primary);
83
74
  }
84
75
  .pg-balham-theme .pg-checkbox:checked::after {
85
76
  content: '';
@@ -88,14 +79,14 @@ export const themeBalhamCss = `
88
79
  top: 1px;
89
80
  width: 5px;
90
81
  height: 8px;
91
- border: 2px solid #fff;
82
+ border: 2px solid var(--pg-colors-primary-text);
92
83
  border-top: none;
93
84
  border-left: none;
94
85
  transform: rotate(45deg);
95
86
  }
96
87
  .pg-balham-theme .pg-checkbox:indeterminate {
97
- background: #d97706;
98
- border-color: #d97706;
88
+ background: var(--pg-colors-primary);
89
+ border-color: var(--pg-colors-primary);
99
90
  }
100
91
  .pg-balham-theme .pg-checkbox:indeterminate::after {
101
92
  content: '';
@@ -104,12 +95,12 @@ export const themeBalhamCss = `
104
95
  top: 50%;
105
96
  width: 8px;
106
97
  height: 2px;
107
- background: #fff;
98
+ background: var(--pg-colors-primary-text);
108
99
  transform: translateY(-50%);
109
100
  }
110
101
 
111
102
  /* Balham selection — amber left accent bar */
112
- .pg-balham-theme .pg-row--selected { box-shadow: inset 3px 0 0 #d97706; }
103
+ .pg-balham-theme .pg-row--selected { box-shadow: inset 3px 0 0 var(--pg-colors-primary); }
113
104
 
114
105
  /* Balham row-drag — very fast, minimal */
115
106
  .pg-balham-theme .pg-grid--row-dragging .pg-row {
@@ -1 +1 @@
1
- {"version":3,"file":"theme-balham.js","sourceRoot":"","sources":["../../../src/styles/themes/theme-balham.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoH7B,CAAC"}
1
+ {"version":3,"file":"theme-balham.js","sourceRoot":"","sources":["../../../src/styles/themes/theme-balham.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoG7B,CAAC"}
@@ -1,2 +1,10 @@
1
- export declare const themeMaterialCss = "\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 pg-material-theme variables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-material-theme .pg-grid {\n border-radius: 4px;\n border-color: transparent;\n box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);\n\n --pg-colors-border: rgba(0,0,0,.12);\n --pg-colors-header-background: #ffffff;\n --pg-colors-header-border: transparent;\n --pg-colors-header-text: rgba(0,0,0,.54);\n --pg-colors-row-background: #ffffff;\n --pg-colors-row-alt-background: #fafafa;\n --pg-colors-row-hover: rgba(0,0,0,.04);\n --pg-colors-row-selected: rgba(25,118,210,.10);\n --pg-colors-row-selected-hover: rgba(25,118,210,.16);\n --pg-colors-text-primary: rgba(0,0,0,.87);\n --pg-colors-text-secondary: rgba(0,0,0,.54);\n --pg-colors-text-muted: rgba(0,0,0,.38);\n --pg-colors-text-disabled: rgba(0,0,0,.26);\n --pg-colors-primary: #1976d2;\n --pg-colors-filter-background: #ffffff;\n --pg-colors-scrollbar-bg: #fafafa;\n --pg-colors-badge-background: #e3f2fd;\n --pg-colors-badge-text: #0d47a1;\n --pg-colors-resize-handle-color: rgba(0,0,0,.20);\n\n --pg-typography-font-family: Roboto, 'Helvetica Neue', Arial, sans-serif;\n --pg-typography-font-size-sm: 12px;\n --pg-typography-font-size-xs: 11px;\n --pg-typography-font-weight-medium: 400;\n --pg-typography-font-weight-semi-bold: 500;\n --pg-typography-letter-spacing-wide: 0.04em;\n\n --pg-header-row-height: 56px;\n --pg-row-height: 52px;\n --pg-borders-radius-md: 4px;\n --pg-borders-radius-sm: 2px;\n --pg-borders-radius-pill: 4px;\n --pg-transitions-duration-fast: 200ms;\n --pg-sizing-checkbox-size: 18px;\n}\n\n/* Material header \u2014 no uppercase, medium weight, subdued */\n.pg-material-theme .pg-th {\n text-transform: none;\n font-size: 12px;\n font-weight: 500;\n letter-spacing: 0.04em;\n color: rgba(0,0,0,.54);\n}\n.pg-material-theme .pg-th--sorted { color: #1976d2; }\n.pg-material-theme .pg-grid__header { border-bottom: 1px solid rgba(0,0,0,.12); }\n\n/* Material rows \u2014 thin divider lines */\n.pg-material-theme .pg-row { border-bottom: 1px solid rgba(0,0,0,.06); }\n.pg-material-theme .pg-cell--v-border { border-right-color: rgba(0,0,0,.06); }\n\n/* Material filter row */\n.pg-material-theme .pg-filter-row { border-top-color: rgba(0,0,0,.08); }\n\n/* Material icon tones */\n.pg-material-theme .pg-icon { color: rgba(0,0,0,.54); }\n.pg-material-theme .pg-th--sorted .pg-icon { color: #1976d2; }\n.pg-material-theme .pg-row-drag-handle { color: rgba(0,0,0,.38); }\n\n/* Material checkbox \u2014 18px, 2px radius, blue, Material motion */\n.pg-material-theme .pg-checkbox {\n appearance: none;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n border: 2px solid rgba(0,0,0,.38);\n border-radius: 2px;\n background: transparent;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n transition: background 200ms cubic-bezier(0.4,0,0.2,1),\n border-color 200ms cubic-bezier(0.4,0,0.2,1),\n box-shadow 200ms cubic-bezier(0.4,0,0.2,1);\n}\n.pg-material-theme .pg-checkbox:hover {\n border-color: #1976d2;\n box-shadow: 0 0 0 8px rgba(25,118,210,.1);\n}\n.pg-material-theme .pg-checkbox:focus-visible {\n outline: none;\n box-shadow: 0 0 0 8px rgba(25,118,210,.2);\n}\n.pg-material-theme .pg-checkbox:checked {\n background: #1976d2;\n border-color: #1976d2;\n}\n.pg-material-theme .pg-checkbox:checked::after {\n content: '';\n position: absolute;\n left: 4px;\n top: 1px;\n width: 7px;\n height: 11px;\n border: 2px solid #fff;\n border-top: none;\n border-left: none;\n transform: rotate(45deg);\n}\n.pg-material-theme .pg-checkbox:indeterminate {\n background: #1976d2;\n border-color: #1976d2;\n}\n.pg-material-theme .pg-checkbox:indeterminate::after {\n content: '';\n position: absolute;\n left: 2px;\n top: 50%;\n width: 10px;\n height: 2px;\n background: #fff;\n transform: translateY(-50%);\n}\n\n/* Material selection \u2014 no left bar, full-row tint only */\n.pg-material-theme .pg-row--selected { box-shadow: none; }\n\n/* Material row-drag animation \u2014 Material motion curve */\n.pg-material-theme .pg-grid--row-dragging .pg-row {\n transition: background 200ms cubic-bezier(0.4,0,0.2,1),\n top 200ms cubic-bezier(0.4,0,0.2,1);\n}\n";
1
+ /**
2
+ * pg-material-theme — Material Design 3 (indigo accent).
3
+ *
4
+ * Cosmetic variant layered on the active mode (light/dark). Overrides only
5
+ * density, radii, typography, accent, elevation and motion; base colors come
6
+ * from the mode tokens so it works in both light and dark. See
7
+ * {@link themeQuartzCss} for the shared design rationale.
8
+ */
9
+ export declare const themeMaterialCss = "\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 pg-material-theme: structural + accent tokens \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-material-theme .pg-grid {\n /* Material uses elevation instead of a hard border. */\n border-radius: 4px;\n border-color: transparent;\n box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);\n\n --pg-colors-primary: #1976d2;\n\n --pg-typography-font-family: Roboto, 'Helvetica Neue', Arial, sans-serif;\n --pg-typography-font-size-sm: 12px;\n --pg-typography-font-size-xs: 11px;\n --pg-typography-font-weight-medium: 400;\n --pg-typography-font-weight-semi-bold: 500;\n --pg-typography-letter-spacing-wide: 0.04em;\n\n --pg-header-row-height: 56px;\n --pg-row-height: 52px;\n\n --pg-borders-radius-md: 4px;\n --pg-borders-radius-sm: 2px;\n --pg-borders-radius-pill: 4px;\n --pg-sizing-checkbox-size: 18px;\n\n --pg-transitions-duration-fast: 200ms;\n}\n\n/* Material header \u2014 no uppercase, medium weight; color follows the mode. */\n.pg-material-theme .pg-th {\n text-transform: none;\n font-size: 12px;\n font-weight: 500;\n letter-spacing: 0.04em;\n color: var(--pg-colors-header-text);\n}\n.pg-material-theme .pg-th--sorted { color: var(--pg-colors-primary); }\n.pg-material-theme .pg-grid__header { border-bottom: 1px solid var(--pg-colors-header-border); }\n\n/* Material rows \u2014 thin divider lines */\n.pg-material-theme .pg-row { border-bottom: 1px solid var(--pg-colors-border); }\n.pg-material-theme .pg-cell--v-border { border-right-color: var(--pg-colors-border); }\n\n/* Material filter row */\n.pg-material-theme .pg-filter-row { border-top-color: var(--pg-colors-border); }\n\n/* Material icon tones \u2014 mode-aware */\n.pg-material-theme .pg-icon { color: var(--pg-colors-text-secondary); }\n.pg-material-theme .pg-th--sorted .pg-icon { color: var(--pg-colors-primary); }\n.pg-material-theme .pg-row-drag-handle { color: var(--pg-colors-text-disabled); }\n\n/* Material checkbox \u2014 18px, 2px radius, accent, Material motion + ripple */\n.pg-material-theme .pg-checkbox {\n appearance: none;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n border: 2px solid var(--pg-colors-checkbox-border);\n border-radius: 2px;\n background: transparent;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n transition: background 200ms cubic-bezier(0.4,0,0.2,1),\n border-color 200ms cubic-bezier(0.4,0,0.2,1),\n box-shadow 200ms cubic-bezier(0.4,0,0.2,1);\n}\n.pg-material-theme .pg-checkbox:hover {\n border-color: var(--pg-colors-primary);\n box-shadow: 0 0 0 8px color-mix(in srgb, var(--pg-colors-primary) 10%, transparent);\n}\n.pg-material-theme .pg-checkbox:focus-visible {\n outline: none;\n box-shadow: 0 0 0 8px color-mix(in srgb, var(--pg-colors-primary) 20%, transparent);\n}\n.pg-material-theme .pg-checkbox:checked {\n background: var(--pg-colors-primary);\n border-color: var(--pg-colors-primary);\n}\n.pg-material-theme .pg-checkbox:checked::after {\n content: '';\n position: absolute;\n left: 4px;\n top: 1px;\n width: 7px;\n height: 11px;\n border: 2px solid var(--pg-colors-primary-text);\n border-top: none;\n border-left: none;\n transform: rotate(45deg);\n}\n.pg-material-theme .pg-checkbox:indeterminate {\n background: var(--pg-colors-primary);\n border-color: var(--pg-colors-primary);\n}\n.pg-material-theme .pg-checkbox:indeterminate::after {\n content: '';\n position: absolute;\n left: 2px;\n top: 50%;\n width: 10px;\n height: 2px;\n background: var(--pg-colors-primary-text);\n transform: translateY(-50%);\n}\n\n/* Material selection \u2014 no left bar, full-row tint only */\n.pg-material-theme .pg-row--selected { box-shadow: none; }\n\n/* Material row-drag animation \u2014 Material motion curve */\n.pg-material-theme .pg-grid--row-dragging .pg-row {\n transition: background 200ms cubic-bezier(0.4,0,0.2,1),\n top 200ms cubic-bezier(0.4,0,0.2,1);\n}\n";
2
10
  //# sourceMappingURL=theme-material.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-material.d.ts","sourceRoot":"","sources":["../../../src/styles/themes/theme-material.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,0zIAkI5B,CAAC"}
1
+ {"version":3,"file":"theme-material.d.ts","sourceRoot":"","sources":["../../../src/styles/themes/theme-material.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,s/HAmH5B,CAAC"}