photon-grid-core 0.0.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +304 -304
  2. package/chart/chart-config/chart-controls.d.ts +49 -0
  3. package/chart/chart-config/chart-controls.d.ts.map +1 -0
  4. package/chart/chart-config/chart-controls.js +229 -0
  5. package/chart/chart-config/chart-controls.js.map +1 -0
  6. package/chart/chart-config/chart-tool-panel.d.ts +86 -0
  7. package/chart/chart-config/chart-tool-panel.d.ts.map +1 -0
  8. package/chart/chart-config/chart-tool-panel.js +402 -0
  9. package/chart/chart-config/chart-tool-panel.js.map +1 -0
  10. package/chart/chart-panel.d.ts +97 -0
  11. package/chart/chart-panel.d.ts.map +1 -1
  12. package/chart/chart-panel.js +211 -58
  13. package/chart/chart-panel.js.map +1 -1
  14. package/chart/chart-renderer.d.ts +97 -0
  15. package/chart/chart-renderer.d.ts.map +1 -1
  16. package/chart/chart-renderer.js +335 -72
  17. package/chart/chart-renderer.js.map +1 -1
  18. package/chart/chart-theme.d.ts +38 -0
  19. package/chart/chart-theme.d.ts.map +1 -0
  20. package/chart/chart-theme.js +47 -0
  21. package/chart/chart-theme.js.map +1 -0
  22. package/chart/model/chart-model-mapper.d.ts +38 -0
  23. package/chart/model/chart-model-mapper.d.ts.map +1 -0
  24. package/chart/model/chart-model-mapper.js +128 -0
  25. package/chart/model/chart-model-mapper.js.map +1 -0
  26. package/chart/model/chart-model.d.ts +153 -0
  27. package/chart/model/chart-model.d.ts.map +1 -0
  28. package/chart/model/chart-model.js +79 -0
  29. package/chart/model/chart-model.js.map +1 -0
  30. package/chart/range-chart-controller.d.ts +68 -0
  31. package/chart/range-chart-controller.d.ts.map +1 -0
  32. package/chart/range-chart-controller.js +209 -0
  33. package/chart/range-chart-controller.js.map +1 -0
  34. package/chart/range-chart-service.d.ts +78 -0
  35. package/chart/range-chart-service.d.ts.map +1 -0
  36. package/chart/range-chart-service.js +162 -0
  37. package/chart/range-chart-service.js.map +1 -0
  38. package/core/grid-api.d.ts +20 -0
  39. package/core/grid-api.d.ts.map +1 -1
  40. package/core/grid-api.js +41 -0
  41. package/core/grid-api.js.map +1 -1
  42. package/core/grid-context.d.ts +7 -0
  43. package/core/grid-context.d.ts.map +1 -1
  44. package/core/grid-core.d.ts.map +1 -1
  45. package/core/grid-core.js +21 -9
  46. package/core/grid-core.js.map +1 -1
  47. package/package.json +57 -70
  48. package/styles/base/chart-config.css.d.ts +10 -0
  49. package/styles/base/chart-config.css.d.ts.map +1 -0
  50. package/styles/base/chart-config.css.js +126 -0
  51. package/styles/base/chart-config.css.js.map +1 -0
  52. package/styles/base/chart-controls.css.d.ts +7 -0
  53. package/styles/base/chart-controls.css.d.ts.map +1 -0
  54. package/styles/base/chart-controls.css.js +165 -0
  55. package/styles/base/chart-controls.css.js.map +1 -0
  56. package/styles/base/chart-panel.css.d.ts +1 -1
  57. package/styles/base/chart-panel.css.d.ts.map +1 -1
  58. package/styles/base/chart-panel.css.js +12 -4
  59. package/styles/base/chart-panel.css.js.map +1 -1
  60. package/styles/base-styles.d.ts.map +1 -1
  61. package/styles/base-styles.js +4 -0
  62. package/styles/base-styles.js.map +1 -1
  63. package/types/event.types.d.ts +29 -0
  64. package/types/event.types.d.ts.map +1 -1
  65. package/types/event.types.js +1 -0
  66. package/types/event.types.js.map +1 -1
  67. package/types/grid.types.d.ts +51 -0
  68. package/types/grid.types.d.ts.map +1 -1
package/package.json CHANGED
@@ -1,70 +1,57 @@
1
- {
2
- "name": "photon-grid-core",
3
- "version": "0.0.3",
4
- "description": "Professional zero-dependency TypeScript data grid with enterprise-grade features.",
5
- "author": "Abdul Wahid",
6
- "license": "MIT",
7
-
8
- "type": "module",
9
-
10
- "main": "./index.js",
11
- "module": "./index.js",
12
- "types": "./index.d.ts",
13
-
14
- "exports": {
15
- ".": {
16
- "types": "./index.d.ts",
17
- "import": "./index.js",
18
- "default": "./index.js"
19
- },
20
- "./styles/*": "./styles/*",
21
- "./package.json": "./package.json"
22
- },
23
-
24
- "sideEffects": [
25
- "*.css",
26
- "styles/*.css"
27
- ],
28
-
29
- "keywords": [
30
- "photon-grid",
31
- "grid",
32
- "data-grid",
33
- "datatable",
34
- "table",
35
- "typescript",
36
- "javascript",
37
- "virtualization",
38
- "virtual-scrolling",
39
- "tree-grid",
40
- "pivot-table",
41
- "grouping",
42
- "sorting",
43
- "filtering",
44
- "spreadsheet",
45
- "excel",
46
- "enterprise-grid",
47
- "performance",
48
- "zero-dependency",
49
- "ag-grid-alternative"
50
- ],
51
-
52
- "repository": {
53
- "type": "git",
54
- "url": "https://github.com/YOUR_GITHUB_USERNAME/photon-grid.git"
55
- },
56
-
57
- "homepage": "https://github.com/YOUR_GITHUB_USERNAME/photon-grid#readme",
58
-
59
- "bugs": {
60
- "url": "https://github.com/YOUR_GITHUB_USERNAME/photon-grid/issues"
61
- },
62
-
63
- "engines": {
64
- "node": ">=18"
65
- },
66
-
67
- "publishConfig": {
68
- "access": "public"
69
- }
70
- }
1
+ {
2
+ "name": "photon-grid-core",
3
+ "version": "1.0.0",
4
+ "description": "Professional zero-dependency TypeScript data grid with enterprise-grade features.",
5
+ "author": "Abdul Wahid",
6
+ "license": "MIT",
7
+ "access": "public",
8
+ "type": "module",
9
+ "main": "./index.js",
10
+ "module": "./index.js",
11
+ "types": "./index.d.ts",
12
+ "browser": "./index.js",
13
+ "exports": {
14
+ ".": {
15
+ "types": "./index.d.ts",
16
+ "import": "./index.js",
17
+ "default": "./index.js"
18
+ },
19
+ "./styles/*": "./styles/*",
20
+ "./package.json": "./package.json"
21
+ },
22
+ "sideEffects": [
23
+ "*.css",
24
+ "styles/*.css"
25
+ ],
26
+ "keywords": [
27
+ "grid",
28
+ "data-grid",
29
+ "datatable",
30
+ "table",
31
+ "spreadsheet",
32
+ "excel",
33
+ "tree-grid",
34
+ "virtual-scroll",
35
+ "virtualization",
36
+ "typescript",
37
+ "javascript",
38
+ "ui",
39
+ "enterprise-grid",
40
+ "performance",
41
+ "zero-dependency"
42
+ ],
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "git+https://github.com/abdulwahid-csit/photon-grid.git"
46
+ },
47
+ "homepage": "https://github.com/abdulwahid-csit/photon-grid#readme",
48
+ "bugs": {
49
+ "url": "https://github.com/abdulwahid-csit/photon-grid/issues"
50
+ },
51
+ "engines": {
52
+ "node": ">=18"
53
+ },
54
+ "publishConfig": {
55
+ "access": "public"
56
+ }
57
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Styles for the chart configuration drawer (Chart / Set Up / Customize tabs).
3
+ * The drawer is a child of the chart panel body: it is anchored to the right
4
+ * edge and slides in (right → left) when opened and out (left → right) when
5
+ * closed via a `transform` transition. All colors, spacing and fonts come from
6
+ * Photon theme tokens so the drawer matches light / dark / custom themes with no
7
+ * hardcoded values.
8
+ */
9
+ export declare const chartConfigCss = "\n.pg-chart-config {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 30;\n width: 264px;\n max-width: 85%;\n display: flex;\n flex-direction: column;\n background: var(--pg-colors-surface, #fff);\n border-left: 1px solid var(--pg-colors-border, #e2e8f0);\n // box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);\n font-family: var(--pg-typography-font-family, system-ui, sans-serif);\n color: var(--pg-colors-text-primary, #0f172a);\n overflow: hidden;\n transform: translateX(100%);\n transition: transform 240ms cubic-bezier(0.22, 0.61, 0.36, 1);\n will-change: transform;\n}\n.pg-chart-config--open { transform: translateX(0); }\n@media (prefers-reduced-motion: reduce) {\n .pg-chart-config { transition: none; }\n}\n.pg-chart-config__header {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 6px 0 6px;\n border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);\n flex-shrink: 0;\n}\n.pg-chart-config__close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: transparent;\n color: var(--pg-colors-text-secondary, #64748b);\n border-radius: 4px;\n cursor: pointer;\n}\n.pg-chart-config__close:hover {\n background: var(--pg-colors-background-alt, #f1f5f9);\n color: var(--pg-colors-text-primary, #0f172a);\n}\n.pg-chart-config__tabs {\n display: flex;\n gap: 2px;\n flex: 1;\n}\n.pg-chart-config__tab {\n flex: 1;\n padding: 8px 6px;\n border: none;\n background: transparent;\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n border-bottom: 2px solid transparent;\n font-family: inherit;\n}\n.pg-chart-config__tab:hover { color: var(--pg-colors-text-primary, #0f172a); }\n.pg-chart-config__tab--active {\n color: var(--pg-colors-primary, #2563eb);\n border-bottom-color: var(--pg-colors-primary, #2563eb);\n}\n.pg-chart-config__body {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 10px 12px;\n}\n.pg-chart-config__group-title {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--pg-colors-text-secondary, #64748b);\n margin: 10px 0 6px;\n}\n.pg-chart-config__gallery {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 6px;\n}\n.pg-chart-config__gallery-item {\n display: block;\n height: 58px;\n padding: 3px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 6px;\n background: var(--pg-colors-surface, #fff);\n cursor: pointer;\n overflow: hidden;\n transition: border-color 80ms, background 80ms, box-shadow 80ms;\n}\n.pg-chart-config__gallery-item:hover {\n border-color: var(--pg-colors-primary, #2563eb);\n background: var(--pg-colors-background-alt, #f1f5f9);\n}\n.pg-chart-config__gallery-item--active {\n border-color: var(--pg-colors-primary, #2563eb);\n background: var(--pg-colors-background-alt, #f1f5f9);\n box-shadow: 0 0 0 1px var(--pg-colors-primary, #2563eb) inset;\n}\n.pg-chart-config__gallery-canvas {\n display: block;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n";
10
+ //# sourceMappingURL=chart-config.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/chart-config.css.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,4mGAoH1B,CAAC"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Styles for the chart configuration drawer (Chart / Set Up / Customize tabs).
3
+ * The drawer is a child of the chart panel body: it is anchored to the right
4
+ * edge and slides in (right → left) when opened and out (left → right) when
5
+ * closed via a `transform` transition. All colors, spacing and fonts come from
6
+ * Photon theme tokens so the drawer matches light / dark / custom themes with no
7
+ * hardcoded values.
8
+ */
9
+ export const chartConfigCss = `
10
+ .pg-chart-config {
11
+ position: absolute;
12
+ top: 0;
13
+ right: 0;
14
+ bottom: 0;
15
+ z-index: 30;
16
+ width: 264px;
17
+ max-width: 85%;
18
+ display: flex;
19
+ flex-direction: column;
20
+ background: var(--pg-colors-surface, #fff);
21
+ border-left: 1px solid var(--pg-colors-border, #e2e8f0);
22
+ // box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
23
+ font-family: var(--pg-typography-font-family, system-ui, sans-serif);
24
+ color: var(--pg-colors-text-primary, #0f172a);
25
+ overflow: hidden;
26
+ transform: translateX(100%);
27
+ transition: transform 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
28
+ will-change: transform;
29
+ }
30
+ .pg-chart-config--open { transform: translateX(0); }
31
+ @media (prefers-reduced-motion: reduce) {
32
+ .pg-chart-config { transition: none; }
33
+ }
34
+ .pg-chart-config__header {
35
+ display: flex;
36
+ align-items: center;
37
+ gap: 4px;
38
+ padding: 6px 6px 0 6px;
39
+ border-bottom: 1px solid var(--pg-colors-border, #e2e8f0);
40
+ flex-shrink: 0;
41
+ }
42
+ .pg-chart-config__close {
43
+ display: inline-flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ width: 26px;
47
+ height: 26px;
48
+ border: none;
49
+ background: transparent;
50
+ color: var(--pg-colors-text-secondary, #64748b);
51
+ border-radius: 4px;
52
+ cursor: pointer;
53
+ }
54
+ .pg-chart-config__close:hover {
55
+ background: var(--pg-colors-background-alt, #f1f5f9);
56
+ color: var(--pg-colors-text-primary, #0f172a);
57
+ }
58
+ .pg-chart-config__tabs {
59
+ display: flex;
60
+ gap: 2px;
61
+ flex: 1;
62
+ }
63
+ .pg-chart-config__tab {
64
+ flex: 1;
65
+ padding: 8px 6px;
66
+ border: none;
67
+ background: transparent;
68
+ color: var(--pg-colors-text-secondary, #64748b);
69
+ font-size: 12px;
70
+ font-weight: 500;
71
+ cursor: pointer;
72
+ border-bottom: 2px solid transparent;
73
+ font-family: inherit;
74
+ }
75
+ .pg-chart-config__tab:hover { color: var(--pg-colors-text-primary, #0f172a); }
76
+ .pg-chart-config__tab--active {
77
+ color: var(--pg-colors-primary, #2563eb);
78
+ border-bottom-color: var(--pg-colors-primary, #2563eb);
79
+ }
80
+ .pg-chart-config__body {
81
+ flex: 1;
82
+ min-height: 0;
83
+ overflow-y: auto;
84
+ padding: 10px 12px;
85
+ }
86
+ .pg-chart-config__group-title {
87
+ font-size: 11px;
88
+ font-weight: 600;
89
+ text-transform: uppercase;
90
+ letter-spacing: 0.04em;
91
+ color: var(--pg-colors-text-secondary, #64748b);
92
+ margin: 10px 0 6px;
93
+ }
94
+ .pg-chart-config__gallery {
95
+ display: grid;
96
+ grid-template-columns: repeat(3, 1fr);
97
+ gap: 6px;
98
+ }
99
+ .pg-chart-config__gallery-item {
100
+ display: block;
101
+ height: 58px;
102
+ padding: 3px;
103
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
104
+ border-radius: 6px;
105
+ background: var(--pg-colors-surface, #fff);
106
+ cursor: pointer;
107
+ overflow: hidden;
108
+ transition: border-color 80ms, background 80ms, box-shadow 80ms;
109
+ }
110
+ .pg-chart-config__gallery-item:hover {
111
+ border-color: var(--pg-colors-primary, #2563eb);
112
+ background: var(--pg-colors-background-alt, #f1f5f9);
113
+ }
114
+ .pg-chart-config__gallery-item--active {
115
+ border-color: var(--pg-colors-primary, #2563eb);
116
+ background: var(--pg-colors-background-alt, #f1f5f9);
117
+ box-shadow: 0 0 0 1px var(--pg-colors-primary, #2563eb) inset;
118
+ }
119
+ .pg-chart-config__gallery-canvas {
120
+ display: block;
121
+ width: 100%;
122
+ height: 100%;
123
+ pointer-events: none;
124
+ }
125
+ `;
126
+ //# sourceMappingURL=chart-config.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config.css.js","sourceRoot":"","sources":["../../../src/styles/base/chart-config.css.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoH7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Styles for the reusable chart-config form controls (dropdown, toggle, color,
3
+ * number/text inputs, segmented buttons, collapsible sections, reorderable
4
+ * list). Token-driven — no hardcoded colors, spacing or fonts.
5
+ */
6
+ export declare const chartControlsCss = "\n.pg-chart-ctrl__row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin: 8px 0;\n}\n.pg-chart-ctrl__label {\n font-size: 12px;\n color: var(--pg-colors-text-secondary, #64748b);\n flex: 1;\n}\n.pg-chart-ctrl__select,\n.pg-chart-ctrl__input {\n min-width: 0;\n max-width: 140px;\n flex: 1 1 auto;\n padding: 5px 8px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 5px;\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-primary, #0f172a);\n font-size: 12px;\n font-family: inherit;\n}\n.pg-chart-ctrl__select:focus,\n.pg-chart-ctrl__input:focus {\n outline: none;\n border-color: var(--pg-colors-primary, #2563eb);\n}\n.pg-chart-ctrl__color {\n width: 34px;\n height: 24px;\n padding: 0;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 5px;\n background: var(--pg-colors-surface, #fff);\n cursor: pointer;\n}\n.pg-chart-ctrl__toggle {\n position: relative;\n width: 34px;\n height: 18px;\n border: none;\n border-radius: 9px;\n background: var(--pg-colors-border, #cbd5e1);\n cursor: pointer;\n transition: background 120ms;\n flex: 0 0 auto;\n}\n.pg-chart-ctrl__toggle--on { background: var(--pg-colors-primary, #2563eb); }\n.pg-chart-ctrl__toggle-knob {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #fff;\n transition: transform 120ms;\n}\n.pg-chart-ctrl__toggle--on .pg-chart-ctrl__toggle-knob { transform: translateX(16px); }\n.pg-chart-ctrl__segmented {\n display: inline-flex;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 5px;\n overflow: hidden;\n}\n.pg-chart-ctrl__segment {\n padding: 4px 9px;\n border: none;\n background: var(--pg-colors-surface, #fff);\n color: var(--pg-colors-text-secondary, #64748b);\n font-size: 11px;\n cursor: pointer;\n font-family: inherit;\n}\n.pg-chart-ctrl__segment--active {\n background: var(--pg-colors-primary, #2563eb);\n color: #fff;\n}\n.pg-chart-ctrl__section { border-top: 1px solid var(--pg-colors-border, #e2e8f0); }\n.pg-chart-ctrl__section:first-child { border-top: none; }\n.pg-chart-ctrl__section-header {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 9px 2px;\n border: none;\n background: transparent;\n color: var(--pg-colors-text-primary, #0f172a);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n font-family: inherit;\n}\n.pg-chart-ctrl__section-chevron {\n display: inline-flex;\n color: var(--pg-colors-text-secondary, #64748b);\n transition: transform 120ms;\n transform: rotate(-90deg);\n}\n.pg-chart-ctrl__section--open .pg-chart-ctrl__section-chevron { transform: rotate(0deg); }\n.pg-chart-ctrl__section-body { display: none; padding: 0 2px 8px; }\n.pg-chart-ctrl__section--open .pg-chart-ctrl__section-body { display: block; }\n.pg-chart-ctrl__list { display: flex; flex-direction: column; gap: 4px; }\n.pg-chart-ctrl__list-item {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 6px;\n border: 1px solid var(--pg-colors-border, #e2e8f0);\n border-radius: 5px;\n background: var(--pg-colors-surface, #fff);\n}\n.pg-chart-ctrl__list-item--dragging { opacity: 0.6; }\n.pg-chart-ctrl__list-handle {\n display: inline-flex;\n color: var(--pg-colors-text-secondary, #94a3b8);\n cursor: grab;\n}\n.pg-chart-ctrl__list-swatch {\n width: 12px;\n height: 12px;\n border-radius: 3px;\n background: var(--pg-chart-swatch, var(--pg-colors-primary, #2563eb));\n flex: 0 0 auto;\n}\n.pg-chart-ctrl__list-label {\n flex: 1;\n font-size: 12px;\n color: var(--pg-colors-text-primary, #0f172a);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.pg-chart-ctrl__list-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: none;\n background: transparent;\n color: var(--pg-colors-text-secondary, #94a3b8);\n border-radius: 4px;\n cursor: pointer;\n}\n.pg-chart-ctrl__list-remove:hover {\n background: var(--pg-colors-background-alt, #f1f5f9);\n color: var(--pg-colors-danger, #dc2626);\n}\n.pg-chart-panel__dots-item--disabled {\n opacity: 0.4;\n pointer-events: none;\n}\n";
7
+ //# sourceMappingURL=chart-controls.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-controls.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/chart-controls.css.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,+sIA8J5B,CAAC"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Styles for the reusable chart-config form controls (dropdown, toggle, color,
3
+ * number/text inputs, segmented buttons, collapsible sections, reorderable
4
+ * list). Token-driven — no hardcoded colors, spacing or fonts.
5
+ */
6
+ export const chartControlsCss = `
7
+ .pg-chart-ctrl__row {
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: space-between;
11
+ gap: 8px;
12
+ margin: 8px 0;
13
+ }
14
+ .pg-chart-ctrl__label {
15
+ font-size: 12px;
16
+ color: var(--pg-colors-text-secondary, #64748b);
17
+ flex: 1;
18
+ }
19
+ .pg-chart-ctrl__select,
20
+ .pg-chart-ctrl__input {
21
+ min-width: 0;
22
+ max-width: 140px;
23
+ flex: 1 1 auto;
24
+ padding: 5px 8px;
25
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
26
+ border-radius: 5px;
27
+ background: var(--pg-colors-surface, #fff);
28
+ color: var(--pg-colors-text-primary, #0f172a);
29
+ font-size: 12px;
30
+ font-family: inherit;
31
+ }
32
+ .pg-chart-ctrl__select:focus,
33
+ .pg-chart-ctrl__input:focus {
34
+ outline: none;
35
+ border-color: var(--pg-colors-primary, #2563eb);
36
+ }
37
+ .pg-chart-ctrl__color {
38
+ width: 34px;
39
+ height: 24px;
40
+ padding: 0;
41
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
42
+ border-radius: 5px;
43
+ background: var(--pg-colors-surface, #fff);
44
+ cursor: pointer;
45
+ }
46
+ .pg-chart-ctrl__toggle {
47
+ position: relative;
48
+ width: 34px;
49
+ height: 18px;
50
+ border: none;
51
+ border-radius: 9px;
52
+ background: var(--pg-colors-border, #cbd5e1);
53
+ cursor: pointer;
54
+ transition: background 120ms;
55
+ flex: 0 0 auto;
56
+ }
57
+ .pg-chart-ctrl__toggle--on { background: var(--pg-colors-primary, #2563eb); }
58
+ .pg-chart-ctrl__toggle-knob {
59
+ position: absolute;
60
+ top: 2px;
61
+ left: 2px;
62
+ width: 14px;
63
+ height: 14px;
64
+ border-radius: 50%;
65
+ background: #fff;
66
+ transition: transform 120ms;
67
+ }
68
+ .pg-chart-ctrl__toggle--on .pg-chart-ctrl__toggle-knob { transform: translateX(16px); }
69
+ .pg-chart-ctrl__segmented {
70
+ display: inline-flex;
71
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
72
+ border-radius: 5px;
73
+ overflow: hidden;
74
+ }
75
+ .pg-chart-ctrl__segment {
76
+ padding: 4px 9px;
77
+ border: none;
78
+ background: var(--pg-colors-surface, #fff);
79
+ color: var(--pg-colors-text-secondary, #64748b);
80
+ font-size: 11px;
81
+ cursor: pointer;
82
+ font-family: inherit;
83
+ }
84
+ .pg-chart-ctrl__segment--active {
85
+ background: var(--pg-colors-primary, #2563eb);
86
+ color: #fff;
87
+ }
88
+ .pg-chart-ctrl__section { border-top: 1px solid var(--pg-colors-border, #e2e8f0); }
89
+ .pg-chart-ctrl__section:first-child { border-top: none; }
90
+ .pg-chart-ctrl__section-header {
91
+ display: flex;
92
+ align-items: center;
93
+ gap: 6px;
94
+ width: 100%;
95
+ padding: 9px 2px;
96
+ border: none;
97
+ background: transparent;
98
+ color: var(--pg-colors-text-primary, #0f172a);
99
+ font-size: 12px;
100
+ font-weight: 600;
101
+ cursor: pointer;
102
+ font-family: inherit;
103
+ }
104
+ .pg-chart-ctrl__section-chevron {
105
+ display: inline-flex;
106
+ color: var(--pg-colors-text-secondary, #64748b);
107
+ transition: transform 120ms;
108
+ transform: rotate(-90deg);
109
+ }
110
+ .pg-chart-ctrl__section--open .pg-chart-ctrl__section-chevron { transform: rotate(0deg); }
111
+ .pg-chart-ctrl__section-body { display: none; padding: 0 2px 8px; }
112
+ .pg-chart-ctrl__section--open .pg-chart-ctrl__section-body { display: block; }
113
+ .pg-chart-ctrl__list { display: flex; flex-direction: column; gap: 4px; }
114
+ .pg-chart-ctrl__list-item {
115
+ display: flex;
116
+ align-items: center;
117
+ gap: 6px;
118
+ padding: 5px 6px;
119
+ border: 1px solid var(--pg-colors-border, #e2e8f0);
120
+ border-radius: 5px;
121
+ background: var(--pg-colors-surface, #fff);
122
+ }
123
+ .pg-chart-ctrl__list-item--dragging { opacity: 0.6; }
124
+ .pg-chart-ctrl__list-handle {
125
+ display: inline-flex;
126
+ color: var(--pg-colors-text-secondary, #94a3b8);
127
+ cursor: grab;
128
+ }
129
+ .pg-chart-ctrl__list-swatch {
130
+ width: 12px;
131
+ height: 12px;
132
+ border-radius: 3px;
133
+ background: var(--pg-chart-swatch, var(--pg-colors-primary, #2563eb));
134
+ flex: 0 0 auto;
135
+ }
136
+ .pg-chart-ctrl__list-label {
137
+ flex: 1;
138
+ font-size: 12px;
139
+ color: var(--pg-colors-text-primary, #0f172a);
140
+ overflow: hidden;
141
+ text-overflow: ellipsis;
142
+ white-space: nowrap;
143
+ }
144
+ .pg-chart-ctrl__list-remove {
145
+ display: inline-flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ width: 20px;
149
+ height: 20px;
150
+ border: none;
151
+ background: transparent;
152
+ color: var(--pg-colors-text-secondary, #94a3b8);
153
+ border-radius: 4px;
154
+ cursor: pointer;
155
+ }
156
+ .pg-chart-ctrl__list-remove:hover {
157
+ background: var(--pg-colors-background-alt, #f1f5f9);
158
+ color: var(--pg-colors-danger, #dc2626);
159
+ }
160
+ .pg-chart-panel__dots-item--disabled {
161
+ opacity: 0.4;
162
+ pointer-events: none;
163
+ }
164
+ `;
165
+ //# sourceMappingURL=chart-controls.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-controls.css.js","sourceRoot":"","sources":["../../../src/styles/base/chart-controls.css.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8J/B,CAAC"}
@@ -5,5 +5,5 @@
5
5
  * base-styles.ts; edit here, not there. Order is preserved because CSS
6
6
  * cascade depends on it.
7
7
  */
8
- export declare const chartPanelCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Chart Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-chart-panel-backdrop {\n position: absolute; inset: 0; z-index: 9990;\n background: transparent;\n overflow: hidden;\n pointer-events: none;\n}\n.pg-chart-panel-backdrop--open {\n pointer-events: auto;\n}\n.pg-chart-panel-backdrop--fullscreen {\n position: fixed !important;\n background: rgba(0,0,0,0.40) !important;\n}\n.pg-chart-panel {\n position: absolute;\n background: var(--pg-colors-surface,#fff);\n border-radius: 4px;\n box-shadow: 0 8px 40px rgba(0,0,0,0.18),0 2px 12px rgba(0,0,0,0.10);\n display: flex; flex-direction: column;\n width: min(720px, 88%); height: min(520px, 85%);\n overflow: hidden;\n pointer-events: auto;\n}\n.pg-chart-panel--fullscreen {\n width: calc(100%) !important; height: calc(100%) !important;\n}\n.pg-chart-panel__header {\n display: flex; align-items: center; justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--pg-colors-border,#e2e8f0);\n flex-shrink: 0;\n cursor: grab; user-select: none;\n}\n.pg-chart-panel__header--dragging { cursor: grabbing; }\n.pg-chart-panel--dragging .pg-chart-panel__body { pointer-events: none; }\n.pg-chart-panel__title {\n font-size: 15px; font-weight: 600;\n color: var(--pg-colors-text-primary,#0f172a);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n}\n.pg-chart-panel__actions { display: flex; align-items: center; gap: 4px; }\n.pg-chart-panel__action-btn {\n display: inline-flex; align-items: center; justify-content: center;\n width: 28px; height: 28px; border-radius: 4px;\n border: none; background: transparent;\n color: var(--pg-colors-text-secondary,#64748b); cursor: pointer;\n transition: background 80ms, color 80ms;\n}\n.pg-chart-panel__action-btn:hover {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__body {\n flex: 1; min-height: 0; position: relative; padding: 8px; overflow: hidden;\n}\n.pg-chart-panel__canvas { display: block; }\n.pg-chart-panel__dots-btn {\n position: absolute; top: 12px; right: 12px; z-index: 10;\n display: inline-flex; align-items: center; justify-content: center;\n width: 26px; height: 26px; border-radius: 4px;\n border: none; background: transparent;\n color: var(--pg-colors-text-secondary,#64748b); cursor: pointer;\n transition: background 80ms;\n}\n.pg-chart-panel__dots-btn:hover, .pg-chart-panel__dots-btn--active {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__dots-menu {\n display: none; position: absolute; top: 40px; right: 8px; z-index: 20;\n background: var(--pg-colors-surface,#fff);\n border: 1px solid var(--pg-colors-border,#e2e8f0);\n border-radius: 6px;\n box-shadow: 0 8px 24px rgba(0,0,0,0.12);\n min-width: 160px; padding: 4px;\n}\n.pg-chart-panel__dots-menu--open { display: block; }\n.pg-chart-panel__dots-item {\n display: flex; align-items: center; gap: 8px;\n width: 100%; padding: 7px 10px;\n border: none; border-radius: 4px; background: transparent;\n cursor: pointer; text-align: left;\n font-size: 13px; color: var(--pg-colors-text-primary,#0f172a);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n transition: background 80ms;\n}\n.pg-chart-panel__dots-item:hover { background: var(--pg-colors-background-alt,#f1f5f9); }\n.pg-chart-panel__empty {\n display: flex; flex-direction: column; align-items: center; justify-content: center;\n height: 100%; gap: 10px; padding: 24px;\n color: var(--pg-colors-text-secondary,#64748b);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n}\n.pg-chart-panel__empty-icon { opacity: 0.35; color: var(--pg-colors-text-secondary,#64748b); }\n.pg-chart-panel__empty-text {\n font-size: 15px; font-weight: 600;\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__empty-sub {\n font-size: 12px; text-align: center; max-width: 280px;\n color: var(--pg-colors-text-secondary,#64748b);\n}\n.pg-chart-panel__legend {\n display: flex; flex-wrap: wrap; align-items: center; justify-content: center;\n gap: 2px 4px; padding: 5px 12px 8px;\n flex-shrink: 0;\n border-top: 1px solid var(--pg-colors-border,#e2e8f0);\n}\n.pg-chart-panel__legend:empty { border-top: none; padding: 0; }\n.pg-chart-panel__legend-item {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 4px 8px; border-radius: 5px;\n border: none; background: transparent; cursor: pointer;\n font-size: 12px; color: var(--pg-colors-text-secondary,#64748b);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n user-select: none;\n transition: background 80ms, opacity 220ms;\n}\n.pg-chart-panel__legend-item:hover {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__legend-item--hidden { opacity: 0.35; }\n.pg-chart-panel__legend-swatch {\n width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0;\n}\n.pg-chart-panel__legend-label {\n max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n";
8
+ export declare const chartPanelCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Chart Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.pg-chart-panel-backdrop {\n position: absolute; inset: 0; z-index: 9990;\n background: transparent;\n overflow: hidden;\n pointer-events: none;\n}\n// .pg-chart-panel-backdrop--open {\n// pointer-events: auto;\n// }\n.pg-chart-panel-backdrop--fullscreen {\n position: fixed !important;\n background: rgba(0,0,0,0.40) !important;\n}\n.pg-chart-panel {\n position: absolute;\n background: var(--pg-colors-surface,#fff);\n border-radius: 4px;\n box-shadow: 0 8px 40px rgba(0,0,0,0.18),0 2px 12px rgba(0,0,0,0.10);\n display: flex; flex-direction: column;\n width: min(720px, 88%); height: min(520px, 85%);\n overflow: hidden;\n pointer-events: auto;\n}\n.pg-chart-panel--fullscreen {\n width: calc(100%) !important; height: calc(100%) !important;\n}\n.pg-chart-panel__header {\n display: flex; align-items: center; justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--pg-colors-border,#e2e8f0);\n flex-shrink: 0;\n cursor: grab; user-select: none;\n}\n.pg-chart-panel__header--dragging { cursor: grabbing; }\n.pg-chart-panel--dragging .pg-chart-panel__body { pointer-events: none; }\n.pg-chart-panel__title {\n font-size: 15px; font-weight: 600;\n color: var(--pg-colors-text-primary,#0f172a);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n}\n.pg-chart-panel__actions { display: flex; align-items: center; gap: 4px; }\n.pg-chart-panel__action-btn {\n display: inline-flex; align-items: center; justify-content: center;\n width: 28px; height: 28px; border-radius: 4px;\n border: none; background: transparent;\n color: var(--pg-colors-text-secondary,#64748b); cursor: pointer;\n transition: background 80ms, color 80ms;\n}\n.pg-chart-panel__action-btn:hover {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__body {\n flex: 1; min-height: 0; position: relative; overflow: hidden;\n}\n.pg-chart-panel__chart-area {\n position: absolute; top: 0; left: 0; bottom: 0; right: 0;\n padding: 8px; overflow: hidden;\n transition: right 240ms cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion: reduce) {\n .pg-chart-panel__chart-area { transition: none; }\n}\n.pg-chart-panel__canvas { display: block; }\n.pg-chart-panel__dots-btn {\n position: absolute; top: 12px; right: 12px; z-index: 10;\n display: inline-flex; align-items: center; justify-content: center;\n width: 26px; height: 26px; border-radius: 4px;\n border: none; background: transparent;\n color: var(--pg-colors-text-secondary,#64748b); cursor: pointer;\n transition: background 80ms;\n}\n.pg-chart-panel__dots-btn:hover, .pg-chart-panel__dots-btn--active {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__dots-menu {\n display: none; position: absolute; top: 40px; right: 8px; z-index: 20;\n background: var(--pg-colors-surface,#fff);\n border: 1px solid var(--pg-colors-border,#e2e8f0);\n border-radius: 6px;\n box-shadow: 0 8px 24px rgba(0,0,0,0.12);\n min-width: 160px; padding: 4px;\n}\n.pg-chart-panel__dots-menu--open { display: block; }\n.pg-chart-panel__dots-item {\n display: flex; align-items: center; gap: 8px;\n width: 100%; padding: 7px 10px;\n border: none; border-radius: 4px; background: transparent;\n cursor: pointer; text-align: left;\n font-size: 13px; color: var(--pg-colors-text-primary,#0f172a);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n transition: background 80ms;\n}\n.pg-chart-panel__dots-item:hover { background: var(--pg-colors-background-alt,#f1f5f9); }\n.pg-chart-panel__empty {\n display: flex; flex-direction: column; align-items: center; justify-content: center;\n height: 100%; gap: 10px; padding: 24px;\n color: var(--pg-colors-text-secondary,#64748b);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n}\n.pg-chart-panel__empty-icon { opacity: 0.35; color: var(--pg-colors-text-secondary,#64748b); }\n.pg-chart-panel__empty-text {\n font-size: 15px; font-weight: 600;\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__empty-sub {\n font-size: 12px; text-align: center; max-width: 280px;\n color: var(--pg-colors-text-secondary,#64748b);\n}\n.pg-chart-panel__legend {\n display: flex; flex-wrap: wrap; align-items: center; justify-content: center;\n gap: 2px 4px; padding: 5px 12px 8px;\n flex-shrink: 0;\n border-top: 1px solid var(--pg-colors-border,#e2e8f0);\n}\n.pg-chart-panel__legend:empty { border-top: none; padding: 0; }\n.pg-chart-panel__legend-item {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 4px 8px; border-radius: 5px;\n border: none; background: transparent; cursor: pointer;\n font-size: 12px; color: var(--pg-colors-text-secondary,#64748b);\n font-family: var(--pg-typography-font-family,system-ui,sans-serif);\n user-select: none;\n transition: background 80ms, opacity 220ms;\n}\n.pg-chart-panel__legend-item:hover {\n background: var(--pg-colors-background-alt,#f1f5f9);\n color: var(--pg-colors-text-primary,#0f172a);\n}\n.pg-chart-panel__legend-item--hidden { opacity: 0.35; }\n.pg-chart-panel__legend-swatch {\n width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0;\n}\n.pg-chart-panel__legend-label {\n max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n";
9
9
  //# sourceMappingURL=chart-panel.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart-panel.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/chart-panel.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,uxKAmIzB,CAAC"}
1
+ {"version":3,"file":"chart-panel.css.d.ts","sourceRoot":"","sources":["../../../src/styles/base/chart-panel.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,qjLA2IzB,CAAC"}
@@ -12,9 +12,9 @@ export const chartPanelCss = `/* ───────────────
12
12
  overflow: hidden;
13
13
  pointer-events: none;
14
14
  }
15
- .pg-chart-panel-backdrop--open {
16
- pointer-events: auto;
17
- }
15
+ // .pg-chart-panel-backdrop--open {
16
+ // pointer-events: auto;
17
+ // }
18
18
  .pg-chart-panel-backdrop--fullscreen {
19
19
  position: fixed !important;
20
20
  background: rgba(0,0,0,0.40) !important;
@@ -59,7 +59,15 @@ export const chartPanelCss = `/* ───────────────
59
59
  color: var(--pg-colors-text-primary,#0f172a);
60
60
  }
61
61
  .pg-chart-panel__body {
62
- flex: 1; min-height: 0; position: relative; padding: 8px; overflow: hidden;
62
+ flex: 1; min-height: 0; position: relative; overflow: hidden;
63
+ }
64
+ .pg-chart-panel__chart-area {
65
+ position: absolute; top: 0; left: 0; bottom: 0; right: 0;
66
+ padding: 8px; overflow: hidden;
67
+ transition: right 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
68
+ }
69
+ @media (prefers-reduced-motion: reduce) {
70
+ .pg-chart-panel__chart-area { transition: none; }
63
71
  }
64
72
  .pg-chart-panel__canvas { display: block; }
65
73
  .pg-chart-panel__dots-btn {
@@ -1 +1 @@
1
- {"version":3,"file":"chart-panel.css.js","sourceRoot":"","sources":["../../../src/styles/base/chart-panel.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmI5B,CAAC"}
1
+ {"version":3,"file":"chart-panel.css.js","sourceRoot":"","sources":["../../../src/styles/base/chart-panel.css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2I5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-styles.d.ts","sourceRoot":"","sources":["../../src/styles/base-styles.ts"],"names":[],"mappings":"AAoEA,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":"AAwEA,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -31,6 +31,8 @@ import { columnContextMenuCss } from './base/column-context-menu.css';
31
31
  import { masterDetailCss } from './base/master-detail.css';
32
32
  import { photonAiCss } from './base/photon-ai.css';
33
33
  import { tooltipCss } from './base/tooltip.css';
34
+ import { chartConfigCss } from './base/chart-config.css';
35
+ import { chartControlsCss } from './base/chart-controls.css';
34
36
  const STYLE_ID = 'photon-grid-base-styles';
35
37
  // Joined with '' (not '\n') so the output is byte-identical to the original
36
38
  // single template: each module already carries its own leading/trailing
@@ -59,6 +61,8 @@ const baseCss = [
59
61
  masterDetailCss,
60
62
  photonAiCss,
61
63
  tooltipCss,
64
+ chartConfigCss,
65
+ chartControlsCss,
62
66
  ].join('');
63
67
  const css = [baseCss, themeQuartzCss, themeAlpineCss, themeBalhamCss, themeMaterialCss, themeDarkCss].join('\n');
64
68
  export function injectBaseStyles() {
@@ -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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"}
@@ -3,6 +3,7 @@ import type { ColumnGroupHeaderCollapsedEvent, ColumnGroupHeaderExpandedEvent, C
3
3
  import type { RowNode, RowDropPayload, RowClickPayload, RowEditPayload } from './row.types';
4
4
  import type { FilterModel, QuickFilterConfig } from './filter.types';
5
5
  import type { CellRange } from './grid.types';
6
+ import type { ChartModel } from '../chart/model/chart-model';
6
7
  import type { TreeNodeToggleClickedPayload, TreeNodeTogglePayload, TreeChildrenLoadedPayload } from './tree-data.types';
7
8
  export declare const GridEventType: {
8
9
  readonly READY: "grid:ready";
@@ -54,6 +55,7 @@ export declare const GridEventType: {
54
55
  readonly CHART_CREATED: "chart:created";
55
56
  readonly CHART_DESTROYED: "chart:destroyed";
56
57
  readonly CHART_RANGE_SELECTION_CHANGED: "chart:rangeSelectionChanged";
58
+ readonly CHART_OPTIONS_CHANGED: "chart:optionsChanged";
57
59
  readonly LOADING_STARTED: "loading:started";
58
60
  readonly LOADING_STOPPED: "loading:stopped";
59
61
  readonly CELL_CONTEXT_MENU: "cell:contextMenu";
@@ -167,6 +169,29 @@ export interface RowDetailHeightChangedEvent {
167
169
  nodeId: string;
168
170
  height: number;
169
171
  }
172
+ /** Fired once when a range chart is first created. */
173
+ export interface ChartCreatedEvent {
174
+ chartId: string;
175
+ chartType: string;
176
+ cellRange: CellRange;
177
+ chartModel: ChartModel;
178
+ }
179
+ /** Fired when the grid data range backing a linked chart changes (re-render). */
180
+ export interface ChartRangeSelectionChangedEvent {
181
+ chartId: string;
182
+ cellRange: CellRange;
183
+ }
184
+ /** Fired whenever the chart's configuration (type, series, styling…) changes. */
185
+ export interface ChartOptionsChangedEvent {
186
+ chartId: string;
187
+ chartType: string;
188
+ chartModel: ChartModel;
189
+ }
190
+ /** Fired when a chart is destroyed. */
191
+ export interface ChartDestroyedEvent {
192
+ chartId: string;
193
+ chartType: string;
194
+ }
170
195
  export type GridEventMap = {
171
196
  [GridEventType.READY]: ReadyEvent;
172
197
  [GridEventType.DATA_CHANGED]: DataChangedEvent;
@@ -209,5 +234,9 @@ export type GridEventMap = {
209
234
  [GridEventType.TREE_CHILDREN_LOADED]: TreeChildrenLoadedPayload;
210
235
  [GridEventType.ROW_DETAIL_CLOSED]: RowDetailClosedEvent;
211
236
  [GridEventType.ROW_DETAIL_HEIGHT_CHANGED]: RowDetailHeightChangedEvent;
237
+ [GridEventType.CHART_CREATED]: ChartCreatedEvent;
238
+ [GridEventType.CHART_RANGE_SELECTION_CHANGED]: ChartRangeSelectionChangedEvent;
239
+ [GridEventType.CHART_OPTIONS_CHANGED]: ChartOptionsChangedEvent;
240
+ [GridEventType.CHART_DESTROYED]: ChartDestroyedEvent;
212
241
  };
213
242
  //# sourceMappingURL=event.types.d.ts.map