photon-grid-core 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +304 -304
  2. package/chart/chart-config/chart-controls.d.ts +49 -0
  3. package/chart/chart-config/chart-controls.d.ts.map +1 -0
  4. package/chart/chart-config/chart-controls.js +229 -0
  5. package/chart/chart-config/chart-controls.js.map +1 -0
  6. package/chart/chart-config/chart-tool-panel.d.ts +86 -0
  7. package/chart/chart-config/chart-tool-panel.d.ts.map +1 -0
  8. package/chart/chart-config/chart-tool-panel.js +402 -0
  9. package/chart/chart-config/chart-tool-panel.js.map +1 -0
  10. package/chart/chart-panel.d.ts +97 -0
  11. package/chart/chart-panel.d.ts.map +1 -1
  12. package/chart/chart-panel.js +211 -58
  13. package/chart/chart-panel.js.map +1 -1
  14. package/chart/chart-renderer.d.ts +97 -0
  15. package/chart/chart-renderer.d.ts.map +1 -1
  16. package/chart/chart-renderer.js +335 -72
  17. package/chart/chart-renderer.js.map +1 -1
  18. package/chart/chart-theme.d.ts +38 -0
  19. package/chart/chart-theme.d.ts.map +1 -0
  20. package/chart/chart-theme.js +47 -0
  21. package/chart/chart-theme.js.map +1 -0
  22. package/chart/model/chart-model-mapper.d.ts +38 -0
  23. package/chart/model/chart-model-mapper.d.ts.map +1 -0
  24. package/chart/model/chart-model-mapper.js +128 -0
  25. package/chart/model/chart-model-mapper.js.map +1 -0
  26. package/chart/model/chart-model.d.ts +153 -0
  27. package/chart/model/chart-model.d.ts.map +1 -0
  28. package/chart/model/chart-model.js +79 -0
  29. package/chart/model/chart-model.js.map +1 -0
  30. package/chart/range-chart-controller.d.ts +68 -0
  31. package/chart/range-chart-controller.d.ts.map +1 -0
  32. package/chart/range-chart-controller.js +209 -0
  33. package/chart/range-chart-controller.js.map +1 -0
  34. package/chart/range-chart-service.d.ts +78 -0
  35. package/chart/range-chart-service.d.ts.map +1 -0
  36. package/chart/range-chart-service.js +162 -0
  37. package/chart/range-chart-service.js.map +1 -0
  38. package/core/grid-api.d.ts +20 -0
  39. package/core/grid-api.d.ts.map +1 -1
  40. package/core/grid-api.js +41 -0
  41. package/core/grid-api.js.map +1 -1
  42. package/core/grid-context.d.ts +7 -0
  43. package/core/grid-context.d.ts.map +1 -1
  44. package/core/grid-core.d.ts.map +1 -1
  45. package/core/grid-core.js +21 -9
  46. package/core/grid-core.js.map +1 -1
  47. package/icons/icon-sets/core-icons.js +1 -1
  48. package/icons/icon-sets/core-icons.js.map +1 -1
  49. package/index.d.ts +1 -0
  50. package/index.d.ts.map +1 -1
  51. package/package.json +57 -70
  52. package/renderer/body-renderer.d.ts.map +1 -1
  53. package/renderer/body-renderer.js +21 -4
  54. package/renderer/body-renderer.js.map +1 -1
  55. package/renderer/cell-renderer.js +1 -1
  56. package/renderer/cell-renderer.js.map +1 -1
  57. package/renderer/column-menu.js +24 -25
  58. package/renderer/column-menu.js.map +1 -1
  59. package/renderer/column-style-manager.d.ts.map +1 -1
  60. package/renderer/column-style-manager.js +11 -2
  61. package/renderer/column-style-manager.js.map +1 -1
  62. package/renderer/grid-renderer.js +1 -1
  63. package/renderer/grid-renderer.js.map +1 -1
  64. package/renderer/header-renderer.d.ts.map +1 -1
  65. package/renderer/header-renderer.js +17 -3
  66. package/renderer/header-renderer.js.map +1 -1
  67. package/renderer/row-drag-renderer.d.ts +18 -0
  68. package/renderer/row-drag-renderer.d.ts.map +1 -1
  69. package/renderer/row-drag-renderer.js +53 -0
  70. package/renderer/row-drag-renderer.js.map +1 -1
  71. package/styles/base/cells.css.d.ts +9 -0
  72. package/styles/base/cells.css.d.ts.map +1 -0
  73. package/styles/base/cells.css.js +233 -0
  74. package/styles/base/cells.css.js.map +1 -0
  75. package/styles/base/chart-config.css.d.ts +10 -0
  76. package/styles/base/chart-config.css.d.ts.map +1 -0
  77. package/styles/base/chart-config.css.js +126 -0
  78. package/styles/base/chart-config.css.js.map +1 -0
  79. package/styles/base/chart-controls.css.d.ts +7 -0
  80. package/styles/base/chart-controls.css.d.ts.map +1 -0
  81. package/styles/base/chart-controls.css.js +165 -0
  82. package/styles/base/chart-controls.css.js.map +1 -0
  83. package/styles/base/chart-panel.css.d.ts +9 -0
  84. package/styles/base/chart-panel.css.d.ts.map +1 -0
  85. package/styles/base/chart-panel.css.js +148 -0
  86. package/styles/base/chart-panel.css.js.map +1 -0
  87. package/styles/base/column-context-menu.css.d.ts +9 -0
  88. package/styles/base/column-context-menu.css.d.ts.map +1 -0
  89. package/styles/base/column-context-menu.css.js +153 -0
  90. package/styles/base/column-context-menu.css.js.map +1 -0
  91. package/styles/base/column-group-header.css.d.ts +9 -0
  92. package/styles/base/column-group-header.css.d.ts.map +1 -0
  93. package/styles/base/column-group-header.css.js +270 -0
  94. package/styles/base/column-group-header.css.js.map +1 -0
  95. package/styles/base/context-menu.css.d.ts +9 -0
  96. package/styles/base/context-menu.css.d.ts.map +1 -0
  97. package/styles/base/context-menu.css.js +103 -0
  98. package/styles/base/context-menu.css.js.map +1 -0
  99. package/styles/base/editors.css.d.ts +9 -0
  100. package/styles/base/editors.css.d.ts.map +1 -0
  101. package/styles/base/editors.css.js +291 -0
  102. package/styles/base/editors.css.js.map +1 -0
  103. package/styles/base/filter.css.d.ts +9 -0
  104. package/styles/base/filter.css.d.ts.map +1 -0
  105. package/styles/base/filter.css.js +312 -0
  106. package/styles/base/filter.css.js.map +1 -0
  107. package/styles/base/footer.css.d.ts +9 -0
  108. package/styles/base/footer.css.d.ts.map +1 -0
  109. package/styles/base/footer.css.js +78 -0
  110. package/styles/base/footer.css.js.map +1 -0
  111. package/styles/base/group-bar-search.css.d.ts +9 -0
  112. package/styles/base/group-bar-search.css.d.ts.map +1 -0
  113. package/styles/base/group-bar-search.css.js +86 -0
  114. package/styles/base/group-bar-search.css.js.map +1 -0
  115. package/styles/base/group-drop-zone.css.d.ts +9 -0
  116. package/styles/base/group-drop-zone.css.d.ts.map +1 -0
  117. package/styles/base/group-drop-zone.css.js +173 -0
  118. package/styles/base/group-drop-zone.css.js.map +1 -0
  119. package/styles/base/header.css.d.ts +9 -0
  120. package/styles/base/header.css.d.ts.map +1 -0
  121. package/styles/base/header.css.js +206 -0
  122. package/styles/base/header.css.js.map +1 -0
  123. package/styles/base/master-detail.css.d.ts +9 -0
  124. package/styles/base/master-detail.css.d.ts.map +1 -0
  125. package/styles/base/master-detail.css.js +202 -0
  126. package/styles/base/master-detail.css.js.map +1 -0
  127. package/styles/base/misc.css.d.ts +9 -0
  128. package/styles/base/misc.css.d.ts.map +1 -0
  129. package/styles/base/misc.css.js +65 -0
  130. package/styles/base/misc.css.js.map +1 -0
  131. package/styles/base/panels.css.d.ts +9 -0
  132. package/styles/base/panels.css.d.ts.map +1 -0
  133. package/styles/base/panels.css.js +162 -0
  134. package/styles/base/panels.css.js.map +1 -0
  135. package/styles/base/photon-ai.css.d.ts +9 -0
  136. package/styles/base/photon-ai.css.d.ts.map +1 -0
  137. package/styles/base/photon-ai.css.js +200 -0
  138. package/styles/base/photon-ai.css.js.map +1 -0
  139. package/styles/base/root.css.d.ts +9 -0
  140. package/styles/base/root.css.d.ts.map +1 -0
  141. package/styles/base/root.css.js +56 -0
  142. package/styles/base/root.css.js.map +1 -0
  143. package/styles/base/row-drag.css.d.ts +9 -0
  144. package/styles/base/row-drag.css.d.ts.map +1 -0
  145. package/styles/base/row-drag.css.js +93 -0
  146. package/styles/base/row-drag.css.js.map +1 -0
  147. package/styles/base/row-group.css.d.ts +9 -0
  148. package/styles/base/row-group.css.d.ts.map +1 -0
  149. package/styles/base/row-group.css.js +79 -0
  150. package/styles/base/row-group.css.js.map +1 -0
  151. package/styles/base/rows.css.d.ts +9 -0
  152. package/styles/base/rows.css.d.ts.map +1 -0
  153. package/styles/base/rows.css.js +83 -0
  154. package/styles/base/rows.css.js.map +1 -0
  155. package/styles/base/scrollbars.css.d.ts +9 -0
  156. package/styles/base/scrollbars.css.d.ts.map +1 -0
  157. package/styles/base/scrollbars.css.js +56 -0
  158. package/styles/base/scrollbars.css.js.map +1 -0
  159. package/styles/base/sparkline.css.d.ts +9 -0
  160. package/styles/base/sparkline.css.d.ts.map +1 -0
  161. package/styles/base/sparkline.css.js +109 -0
  162. package/styles/base/sparkline.css.js.map +1 -0
  163. package/styles/base/tooltip.css.d.ts +9 -0
  164. package/styles/base/tooltip.css.d.ts.map +1 -0
  165. package/styles/base/tooltip.css.js +39 -0
  166. package/styles/base/tooltip.css.js.map +1 -0
  167. package/styles/base/tree.css.d.ts +9 -0
  168. package/styles/base/tree.css.d.ts.map +1 -0
  169. package/styles/base/tree.css.js +78 -0
  170. package/styles/base/tree.css.js.map +1 -0
  171. package/styles/base-styles.d.ts.map +1 -1
  172. package/styles/base-styles.js +60 -3026
  173. package/styles/base-styles.js.map +1 -1
  174. package/styles/themes/theme-alpine.d.ts +1 -1
  175. package/styles/themes/theme-alpine.d.ts.map +1 -1
  176. package/styles/themes/theme-alpine.js +1 -1
  177. package/styles/themes/theme-balham.d.ts +1 -1
  178. package/styles/themes/theme-balham.d.ts.map +1 -1
  179. package/styles/themes/theme-balham.js +0 -1
  180. package/styles/themes/theme-balham.js.map +1 -1
  181. package/styles/themes/theme-dark.d.ts +1 -1
  182. package/styles/themes/theme-dark.d.ts.map +1 -1
  183. package/styles/themes/theme-dark.js +1 -1
  184. package/styles/themes/theme-material.d.ts +1 -1
  185. package/styles/themes/theme-material.d.ts.map +1 -1
  186. package/styles/themes/theme-material.js +0 -1
  187. package/styles/themes/theme-material.js.map +1 -1
  188. package/styles/themes/theme-quartz.d.ts +1 -1
  189. package/styles/themes/theme-quartz.d.ts.map +1 -1
  190. package/styles/themes/theme-quartz.js +1 -1
  191. package/types/event.types.d.ts +29 -0
  192. package/types/event.types.d.ts.map +1 -1
  193. package/types/event.types.js +1 -0
  194. package/types/event.types.js.map +1 -1
  195. package/types/grid.types.d.ts +51 -0
  196. package/types/grid.types.d.ts.map +1 -1
  197. package/LICENSE +0 -1
  198. package/chart/chart-analyzer.d.ts +0 -12
  199. package/chart/chart-analyzer.d.ts.map +0 -1
  200. package/chart/chart-analyzer.js +0 -77
  201. package/chart/chart-analyzer.js.map +0 -1
package/README.md CHANGED
@@ -1,305 +1,305 @@
1
- # Photon Grid Core
2
-
3
- <p align="center">
4
- <img src="https://raw.githubusercontent.com/YOUR_GITHUB_USERNAME/photon-grid/main/assets/logo.png" alt="Photon Grid" width="180"/>
5
- </p>
6
-
7
- <p align="center">
8
- <strong>A high-performance, zero-dependency TypeScript data grid engine.</strong>
9
- </p>
10
-
11
- <p align="center">
12
-
13
- ![npm](https://img.shields.io/npm/v/photon-grid-core)
14
- ![license](https://img.shields.io/npm/l/photon-grid-core)
15
- ![typescript](https://img.shields.io/badge/TypeScript-5.x-blue)
16
- ![dependencies](https://img.shields.io/badge/dependencies-0-success)
17
-
18
- </p>
19
-
20
- ---
21
-
22
- ## Overview
23
-
24
- Photon Grid Core is the rendering and data engine that powers the Photon Grid ecosystem.
25
-
26
- It provides an extremely fast, modular, framework-independent grid implementation written entirely in TypeScript with **zero runtime dependencies**.
27
-
28
- This package is intended for:
29
-
30
- - JavaScript applications
31
- - TypeScript applications
32
- - Framework wrappers
33
- - Custom UI frameworks
34
- - Internal rendering engines
35
-
36
- If you're looking for Angular, React, or Vue integration, use the corresponding Photon Grid wrapper package instead.
37
-
38
- ---
39
-
40
- # Features
41
-
42
- - Zero runtime dependencies
43
- - Written entirely in TypeScript
44
- - High performance rendering engine
45
- - Virtual Scrolling
46
- - Virtual Columns
47
- - Millions of rows support
48
- - Column Pinning
49
- - Column Resizing
50
- - Column Moving
51
- - Column Auto Size
52
- - Cell Selection
53
- - Range Selection
54
- - Clipboard Support
55
- - Keyboard Navigation
56
- - Mouse Navigation
57
- - Tree Data
58
- - Row Grouping
59
- - Sorting
60
- - Multi Column Sorting
61
- - Filtering
62
- - Quick Filtering
63
- - Custom Cell Renderers
64
- - Custom Header Renderers
65
- - Context Menu
66
- - Custom Context Menu
67
- - Pagination
68
- - Status Bar
69
- - Tool Panels
70
- - Theme Support
71
- - Plugin Architecture
72
- - Event System
73
- - API Driven
74
- - High FPS Rendering
75
- - Memory Efficient
76
- - Zero Framework Lock-in
77
-
78
- ---
79
-
80
- # Installation
81
-
82
- ```bash
83
- npm install photon-grid-core
84
- ```
85
-
86
- or
87
-
88
- ```bash
89
- yarn add photon-grid-core
90
- ```
91
-
92
- or
93
-
94
- ```bash
95
- pnpm add photon-grid-core
96
- ```
97
-
98
- ---
99
-
100
- # Basic Usage
101
-
102
- ```ts
103
- import { PhotonGrid } from "photon-grid-core";
104
-
105
- const grid = new PhotonGrid({
106
- element: document.getElementById("grid"),
107
- columns: [],
108
- rowData: []
109
- });
110
-
111
- grid.render();
112
- ```
113
-
114
- ---
115
-
116
- # Package Structure
117
-
118
- ```
119
- photon-grid-core
120
-
121
- ├── api
122
- ├── core
123
- ├── chart
124
- ├── clipboard
125
- ├── column
126
- ├── context-menu
127
- ├── datasource
128
- ├── events
129
- ├── export
130
- ├── filter
131
- ├── grouping
132
- ├── header
133
- ├── keyboard
134
- ├── menu
135
- ├── overlay
136
- ├── pagination
137
- ├── renderer
138
- ├── row
139
- ├── selection
140
- ├── sorting
141
- ├── statusbar
142
- ├── theme
143
- ├── tree
144
- ├── utils
145
- └── index.ts
146
- ```
147
-
148
- ---
149
-
150
- # Why Photon Grid?
151
-
152
- Photon Grid was designed from the ground up to compete with enterprise-grade grid libraries while remaining lightweight and fully extensible.
153
-
154
- Goals include:
155
-
156
- - Better developer experience
157
- - Modern TypeScript architecture
158
- - Framework independent
159
- - Fast rendering
160
- - Modular design
161
- - Simple API
162
- - Enterprise capabilities
163
-
164
- ---
165
-
166
- # Browser Support
167
-
168
- Supports all modern browsers.
169
-
170
- - Chrome
171
- - Edge
172
- - Firefox
173
- - Safari
174
-
175
- ---
176
-
177
- # TypeScript
178
-
179
- Photon Grid Core is written in TypeScript and ships with built-in declaration files.
180
-
181
- No additional typings are required.
182
-
183
- ---
184
-
185
- # Zero Dependencies
186
-
187
- Photon Grid Core intentionally avoids runtime dependencies.
188
-
189
- Benefits include:
190
-
191
- - Smaller bundle size
192
- - Faster startup
193
- - Better tree shaking
194
- - No dependency conflicts
195
- - Easier upgrades
196
-
197
- ---
198
-
199
- # Performance
200
-
201
- Photon Grid is optimized for very large datasets using virtualization.
202
-
203
- Typical capabilities include:
204
-
205
- - Millions of rows
206
- - Thousands of columns
207
- - High FPS scrolling
208
- - Low memory usage
209
-
210
- Actual performance depends on browser, hardware, and enabled features.
211
-
212
- ---
213
-
214
- # Framework Wrappers
215
-
216
- Photon Grid Core is the engine behind upcoming framework integrations.
217
-
218
- Planned packages include:
219
-
220
- - photon-grid-angular
221
- - photon-grid-react
222
- - photon-grid-vue
223
- - photon-grid-svelte
224
-
225
- ---
226
-
227
- # Roadmap
228
-
229
- Upcoming features include:
230
-
231
- - Pivot Tables
232
- - Excel Export
233
- - CSV Export
234
- - Server Side Row Model
235
- - Infinite Row Model
236
- - Master Detail
237
- - Charts
238
- - Sparklines
239
- - Formula Engine
240
- - Undo / Redo
241
- - Aggregations
242
- - Advanced Filtering
243
- - AI Assisted Grid Operations
244
- - Theme Builder
245
-
246
- ---
247
-
248
- # Contributing
249
-
250
- Contributions are welcome.
251
-
252
- Please submit issues, feature requests, or pull requests through GitHub.
253
-
254
- ---
255
-
256
- # License
257
-
258
- MIT License
259
-
260
- ---
261
-
262
- # Author
263
-
264
- **Abdul Wahid**
265
-
266
- ---
267
-
268
- # Links
269
-
270
- GitHub
271
-
272
- https://github.com/YOUR_GITHUB_USERNAME/photon-grid
273
-
274
- Issues
275
-
276
- https://github.com/YOUR_GITHUB_USERNAME/photon-grid/issues
277
-
278
- NPM
279
-
280
- https://www.npmjs.com/package/photon-grid-core
281
-
282
- ---
283
-
284
- ## Philosophy
285
-
286
- Photon Grid is built around a few simple principles.
287
-
288
- - Performance first.
289
- - Zero unnecessary dependencies.
290
- - Framework independence.
291
- - Extensible architecture.
292
- - Excellent developer experience.
293
- - Enterprise-grade capabilities.
294
-
295
- ---
296
-
297
- ## Status
298
-
299
- Photon Grid is under active development.
300
-
301
- New features, performance improvements, and framework integrations are added regularly.
302
-
303
- If you encounter any issues or have feature requests, please open an issue on GitHub.
304
-
1
+ # Photon Grid Core
2
+
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/YOUR_GITHUB_USERNAME/photon-grid/main/assets/logo.png" alt="Photon Grid" width="180"/>
5
+ </p>
6
+
7
+ <p align="center">
8
+ <strong>A high-performance, zero-dependency TypeScript data grid engine.</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+
13
+ ![npm](https://img.shields.io/npm/v/photon-grid-core)
14
+ ![license](https://img.shields.io/npm/l/photon-grid-core)
15
+ ![typescript](https://img.shields.io/badge/TypeScript-5.x-blue)
16
+ ![dependencies](https://img.shields.io/badge/dependencies-0-success)
17
+
18
+ </p>
19
+
20
+ ---
21
+
22
+ ## Overview
23
+
24
+ Photon Grid Core is the rendering and data engine that powers the Photon Grid ecosystem.
25
+
26
+ It provides an extremely fast, modular, framework-independent grid implementation written entirely in TypeScript with **zero runtime dependencies**.
27
+
28
+ This package is intended for:
29
+
30
+ - JavaScript applications
31
+ - TypeScript applications
32
+ - Framework wrappers
33
+ - Custom UI frameworks
34
+ - Internal rendering engines
35
+
36
+ If you're looking for Angular, React, or Vue integration, use the corresponding Photon Grid wrapper package instead.
37
+
38
+ ---
39
+
40
+ # Features
41
+
42
+ - Zero runtime dependencies
43
+ - Written entirely in TypeScript
44
+ - High performance rendering engine
45
+ - Virtual Scrolling
46
+ - Virtual Columns
47
+ - Millions of rows support
48
+ - Column Pinning
49
+ - Column Resizing
50
+ - Column Moving
51
+ - Column Auto Size
52
+ - Cell Selection
53
+ - Range Selection
54
+ - Clipboard Support
55
+ - Keyboard Navigation
56
+ - Mouse Navigation
57
+ - Tree Data
58
+ - Row Grouping
59
+ - Sorting
60
+ - Multi Column Sorting
61
+ - Filtering
62
+ - Quick Filtering
63
+ - Custom Cell Renderers
64
+ - Custom Header Renderers
65
+ - Context Menu
66
+ - Custom Context Menu
67
+ - Pagination
68
+ - Status Bar
69
+ - Tool Panels
70
+ - Theme Support
71
+ - Plugin Architecture
72
+ - Event System
73
+ - API Driven
74
+ - High FPS Rendering
75
+ - Memory Efficient
76
+ - Zero Framework Lock-in
77
+
78
+ ---
79
+
80
+ # Installation
81
+
82
+ ```bash
83
+ npm install photon-grid-core
84
+ ```
85
+
86
+ or
87
+
88
+ ```bash
89
+ yarn add photon-grid-core
90
+ ```
91
+
92
+ or
93
+
94
+ ```bash
95
+ pnpm add photon-grid-core
96
+ ```
97
+
98
+ ---
99
+
100
+ # Basic Usage
101
+
102
+ ```ts
103
+ import { PhotonGrid } from "photon-grid-core";
104
+
105
+ const grid = new PhotonGrid({
106
+ element: document.getElementById("grid"),
107
+ columns: [],
108
+ rowData: []
109
+ });
110
+
111
+ grid.render();
112
+ ```
113
+
114
+ ---
115
+
116
+ # Package Structure
117
+
118
+ ```
119
+ photon-grid-core
120
+
121
+ ├── api
122
+ ├── core
123
+ ├── chart
124
+ ├── clipboard
125
+ ├── column
126
+ ├── context-menu
127
+ ├── datasource
128
+ ├── events
129
+ ├── export
130
+ ├── filter
131
+ ├── grouping
132
+ ├── header
133
+ ├── keyboard
134
+ ├── menu
135
+ ├── overlay
136
+ ├── pagination
137
+ ├── renderer
138
+ ├── row
139
+ ├── selection
140
+ ├── sorting
141
+ ├── statusbar
142
+ ├── theme
143
+ ├── tree
144
+ ├── utils
145
+ └── index.ts
146
+ ```
147
+
148
+ ---
149
+
150
+ # Why Photon Grid?
151
+
152
+ Photon Grid was designed from the ground up to compete with enterprise-grade grid libraries while remaining lightweight and fully extensible.
153
+
154
+ Goals include:
155
+
156
+ - Better developer experience
157
+ - Modern TypeScript architecture
158
+ - Framework independent
159
+ - Fast rendering
160
+ - Modular design
161
+ - Simple API
162
+ - Enterprise capabilities
163
+
164
+ ---
165
+
166
+ # Browser Support
167
+
168
+ Supports all modern browsers.
169
+
170
+ - Chrome
171
+ - Edge
172
+ - Firefox
173
+ - Safari
174
+
175
+ ---
176
+
177
+ # TypeScript
178
+
179
+ Photon Grid Core is written in TypeScript and ships with built-in declaration files.
180
+
181
+ No additional typings are required.
182
+
183
+ ---
184
+
185
+ # Zero Dependencies
186
+
187
+ Photon Grid Core intentionally avoids runtime dependencies.
188
+
189
+ Benefits include:
190
+
191
+ - Smaller bundle size
192
+ - Faster startup
193
+ - Better tree shaking
194
+ - No dependency conflicts
195
+ - Easier upgrades
196
+
197
+ ---
198
+
199
+ # Performance
200
+
201
+ Photon Grid is optimized for very large datasets using virtualization.
202
+
203
+ Typical capabilities include:
204
+
205
+ - Millions of rows
206
+ - Thousands of columns
207
+ - High FPS scrolling
208
+ - Low memory usage
209
+
210
+ Actual performance depends on browser, hardware, and enabled features.
211
+
212
+ ---
213
+
214
+ # Framework Wrappers
215
+
216
+ Photon Grid Core is the engine behind upcoming framework integrations.
217
+
218
+ Planned packages include:
219
+
220
+ - photon-grid-angular
221
+ - photon-grid-react
222
+ - photon-grid-vue
223
+ - photon-grid-svelte
224
+
225
+ ---
226
+
227
+ # Roadmap
228
+
229
+ Upcoming features include:
230
+
231
+ - Pivot Tables
232
+ - Excel Export
233
+ - CSV Export
234
+ - Server Side Row Model
235
+ - Infinite Row Model
236
+ - Master Detail
237
+ - Charts
238
+ - Sparklines
239
+ - Formula Engine
240
+ - Undo / Redo
241
+ - Aggregations
242
+ - Advanced Filtering
243
+ - AI Assisted Grid Operations
244
+ - Theme Builder
245
+
246
+ ---
247
+
248
+ # Contributing
249
+
250
+ Contributions are welcome.
251
+
252
+ Please submit issues, feature requests, or pull requests through GitHub.
253
+
254
+ ---
255
+
256
+ # License
257
+
258
+ MIT License
259
+
260
+ ---
261
+
262
+ # Author
263
+
264
+ **Abdul Wahid**
265
+
266
+ ---
267
+
268
+ # Links
269
+
270
+ GitHub
271
+
272
+ https://github.com/YOUR_GITHUB_USERNAME/photon-grid
273
+
274
+ Issues
275
+
276
+ https://github.com/YOUR_GITHUB_USERNAME/photon-grid/issues
277
+
278
+ NPM
279
+
280
+ https://www.npmjs.com/package/photon-grid-core
281
+
282
+ ---
283
+
284
+ ## Philosophy
285
+
286
+ Photon Grid is built around a few simple principles.
287
+
288
+ - Performance first.
289
+ - Zero unnecessary dependencies.
290
+ - Framework independence.
291
+ - Extensible architecture.
292
+ - Excellent developer experience.
293
+ - Enterprise-grade capabilities.
294
+
295
+ ---
296
+
297
+ ## Status
298
+
299
+ Photon Grid is under active development.
300
+
301
+ New features, performance improvements, and framework integrations are added regularly.
302
+
303
+ If you encounter any issues or have feature requests, please open an issue on GitHub.
304
+
305
305
  ⭐ If you find Photon Grid useful, consider starring the repository.
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Small, theme-token-styled form-control primitives used to build the chart
3
+ * configuration tool panel. Each factory returns a ready-to-mount element and
4
+ * wires a single `onChange` callback. No control writes inline styles — all
5
+ * appearance comes from `chart-controls.css.ts`.
6
+ */
7
+ /** A `<select>` dropdown. */
8
+ export declare function createDropdown(options: ReadonlyArray<{
9
+ value: string;
10
+ label: string;
11
+ }>, value: string, onChange: (value: string) => void, label?: string): HTMLElement;
12
+ /** A switch-style boolean toggle. */
13
+ export declare function createToggle(checked: boolean, onChange: (checked: boolean) => void, label: string): HTMLElement;
14
+ /** A color swatch backed by a native color input. */
15
+ export declare function createColorInput(value: string, onChange: (value: string) => void, label: string): HTMLElement;
16
+ /** A numeric input with optional bounds and step. */
17
+ export declare function createNumberInput(value: number, onChange: (value: number) => void, label: string, min?: number, max?: number, step?: number): HTMLElement;
18
+ /** A single-line text input. */
19
+ export declare function createTextInput(value: string, onChange: (value: string) => void, label: string, placeholder?: string): HTMLElement;
20
+ /** A segmented button group (single selection). */
21
+ export declare function createSegmented(options: ReadonlyArray<{
22
+ value: string;
23
+ label: string;
24
+ }>, value: string, onChange: (value: string) => void, label?: string): HTMLElement;
25
+ /**
26
+ * A collapsible section with a header toggle. Returns the outer `section` and
27
+ * the `body` element callers append content to.
28
+ */
29
+ export declare function createCollapsibleSection(title: string, expanded?: boolean): {
30
+ section: HTMLElement;
31
+ body: HTMLElement;
32
+ };
33
+ /** An item in a {@link createReorderableList}. */
34
+ export interface ReorderListItem {
35
+ readonly id: string;
36
+ readonly label: string;
37
+ readonly color?: string;
38
+ }
39
+ /**
40
+ * A drag-to-reorder list with per-item remove buttons. Reordering uses a pointer
41
+ * drag (mousedown/move/up), not HTML5 DnD, to match the chart panel's own drag
42
+ * handling and avoid ghost-image quirks.
43
+ *
44
+ * @param items - Items in current order.
45
+ * @param onReorder - Called with the new id order after a drag.
46
+ * @param onRemove - Called with an item id when its remove button is clicked.
47
+ */
48
+ export declare function createReorderableList(items: readonly ReorderListItem[], onReorder: (orderedIds: string[]) => void, onRemove: (id: string) => void): HTMLElement;
49
+ //# sourceMappingURL=chart-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-controls.d.ts","sourceRoot":"","sources":["../../../src/chart/chart-config/chart-controls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,6BAA6B;AAC7B,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EACxD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,CAAC,EAAE,MAAM,GACb,WAAW,CAYb;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CA2B/G;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAO7G;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,WAAW,CAab;AAED,gCAAgC;AAChC,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,EAAE,MAAM,EACb,WAAW,SAAK,GACf,WAAW,CAQb;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EACxD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,CAAC,EAAE,MAAM,GACb,WAAW,CAmBb;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,QAAQ,UAAQ,GACf;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CA0B7C;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,EACzC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAC7B,WAAW,CA0Cb"}