visualifyjs 2.5.3-2.dev → 3.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 (252) hide show
  1. package/.claude/mem/TIMELINE.md +36 -0
  2. package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-external-script-solution.md +24 -0
  3. package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-session-summary.md +43 -0
  4. package/.claude/mem/notes/2026-02-11-cli-fix-editor-command-alias.md +26 -0
  5. package/.claude/mem/notes/2026-02-11-phase-3-developer-experience-completed.md +51 -0
  6. package/.claude/mem/notes/2026-02-11-phase-4-web-workers-implementation-complete.md +59 -0
  7. package/.claude/mem/notes/2026-02-11-visualify-phase-2-3d-visualization-complete.md +50 -0
  8. package/.claude/mem/notes/2026-02-11-visualify-phase-2-committed-ready-for-phase-3.md +33 -0
  9. package/.claude/mem/notes/2026-02-11-visualify-phase-3-complete-developer-experience.md +52 -0
  10. package/.claude/mem/notes/2026-02-11-visualify-repository-cleanup-complete.md +28 -0
  11. package/.claude/mem/notes/2026-02-18-codebase-cleanup-docsify-plugin-documentation.md +37 -0
  12. package/.claude/mem/notes/2026-02-19-css-grid-layout-fix-displaycontents-on-vcontroller.md +18 -0
  13. package/.claude/mem/notes/2026-02-19-docsify-plugin-fixes-latex-and-visualify-code-bloc.md +26 -0
  14. package/.claude/mem/notes/2026-02-19-page-mode-docs-update-decisions.md +23 -0
  15. package/.claude/mem/notes/2026-02-19-react-context-infinite-re-render-loop-fix-pattern.md +31 -0
  16. package/.claude/mem/notes/2026-02-19-version-300-bump-and-build-fixes.md +32 -0
  17. package/.claude/mem/notes/2026-02-19-visualify-build-deployment-architecture-bug-fixes.md +25 -0
  18. package/.claude/mem/notes/2026-02-19-visualify-dist-iife-self-contained-build-config.md +30 -0
  19. package/.claude/mem/notes/2026-02-19-visualify-infinite-loop-i18n-fixes.md +31 -0
  20. package/.claude/mem/notes/2026-02-19-visualify-v3-bundle-splitting-docs-restructuring.md +32 -0
  21. package/.claude/mem/notes/2026-02-20-bundle-externalization-final-architecture.md +29 -0
  22. package/.claude/mem/notes/2026-02-20-chromium-page-fix-unstable-keys-and-double-event-b.md +27 -0
  23. package/.claude/mem/notes/2026-02-20-console-cleanup-bundle-optimization-commit.md +20 -0
  24. package/.claude/mem/notes/2026-02-20-dotbio-dot-plot-fix-useeffect-dependency.md +21 -0
  25. package/.claude/mem/notes/2026-02-20-public-folder-cleanup-and-readme-rewrite.md +25 -0
  26. package/.claude/mem/notes/2026-02-20-v300-release-and-beta-channel-strategy.md +29 -0
  27. package/.claude/mem/notes/2026-02-20-visium-background-image-unknown-legend-fix.md +19 -0
  28. package/.claude/mem/notes/2026-02-20-visualify-cdn-loader-bundle-externalization.md +34 -0
  29. package/.claude/mem/sessions/session-2026-02-20-031524.md +54 -0
  30. package/.claude/settings.local.json +21 -0
  31. package/.github/workflows/static.yml.bak +51 -51
  32. package/.sisyphus/boulder.json +65 -0
  33. package/.sisyphus/plans/phase-4-advanced-optimizations.md +217 -0
  34. package/LICENSE +674 -674
  35. package/README.md +94 -59
  36. package/config-overrides.js +31 -31
  37. package/dist/stats.html +4949 -0
  38. package/dist/visualify-3d.esm.js +1 -0
  39. package/dist/visualify-3d.js +1 -0
  40. package/dist/visualify-core.esm.js +1 -0
  41. package/dist/visualify-core.js +1 -0
  42. package/dist/visualify-docs.esm.js +1 -0
  43. package/dist/visualify-docs.js +1 -0
  44. package/dist/visualify-loader.js +1 -0
  45. package/dist/visualify-pages.esm.js +1 -0
  46. package/dist/visualify-pages.js +1 -0
  47. package/dist/visualify-portal.esm.js +1 -0
  48. package/dist/visualify-portal.js +1 -0
  49. package/dist/visualify-shared.js +26571 -0
  50. package/dist/visualify.js +1 -188
  51. package/docs/CHANGELOG.md +148 -0
  52. package/docs/cli/commands.md +513 -0
  53. package/docs/configuration/visualify-json.md +474 -0
  54. package/docs/docs/3d-visualization.md +374 -0
  55. package/docs/docs/CLI.md +303 -34
  56. package/docs/docs/README.md +65 -65
  57. package/docs/docs/Rechart/bar.md +190 -190
  58. package/docs/docs/Rechart/funnel.md +241 -241
  59. package/docs/docs/Rechart/line.md +355 -355
  60. package/docs/docs/Rechart/pie.md +225 -225
  61. package/docs/docs/Rechart/radar.md +253 -253
  62. package/docs/docs/Rechart/scatter.md +298 -298
  63. package/docs/docs/_404.md +51 -51
  64. package/docs/docs/_coverpage.md +11 -11
  65. package/docs/docs/_sidebar.md +54 -44
  66. package/docs/docs/components/dotBio.md +87 -34
  67. package/docs/docs/components/echart.md +171 -82
  68. package/docs/docs/components/html.md +61 -34
  69. package/docs/docs/components/macaron.md +156 -145
  70. package/docs/docs/components/markdown.md +42 -0
  71. package/docs/docs/components/more.md +183 -142
  72. package/docs/docs/components/plotly.md +132 -62
  73. package/docs/docs/components/scatterL.md +171 -70
  74. package/docs/docs/components/visium.md +112 -57
  75. package/docs/docs/configuration.md +121 -121
  76. package/docs/docs/deploy.md +31 -31
  77. package/docs/docs/docsify-plugin.md +655 -0
  78. package/docs/docs/hmr.md +165 -0
  79. package/docs/docs/i18n.md +332 -0
  80. package/docs/docs/log.md +30 -9
  81. package/docs/docs/more-pages.md +23 -23
  82. package/docs/docs/quickstart.md +148 -124
  83. package/docs/docs/rechart-attributes.md +74 -74
  84. package/docs/docs/rechart-basic-usage.md +160 -162
  85. package/docs/docs/theme.md +5 -5
  86. package/docs/docs/typescript.md +306 -0
  87. package/docs/docs/visual-editor.md +359 -0
  88. package/docs/index.html +85 -71
  89. package/docs/manifest.json +23 -23
  90. package/docs/migration/v3-migration.md +392 -0
  91. package/docs/static/css/fluff-stuff.css +169 -169
  92. package/docs/static/css/font-awesome.min.css +4 -4
  93. package/docs/static/css/visualify.css +6 -25
  94. package/docs/static/js/3d-viz-examples.js +181 -0
  95. package/docs/static/js/configuration.js +630 -448
  96. package/docs/static/js/visualify.js +1 -188
  97. package/package.json +106 -84
  98. package/rollup.config.mjs +766 -76
  99. package/src/_css/404.css +115 -115
  100. package/src/_css/App.css +37 -37
  101. package/src/_css/autoSuggestion.css +26 -26
  102. package/src/_css/circular-progress.css +32 -32
  103. package/src/_css/index.css +36 -36
  104. package/src/_css/modern.css +350 -25
  105. package/src/_media/corner.svg +8 -8
  106. package/src/_media/download.svg +3 -3
  107. package/src/_media/logo.svg +14 -14
  108. package/src/_test/App.test.js +15 -15
  109. package/src/_utils/reportWebVitals.js +13 -13
  110. package/src/a11y/README.md +177 -0
  111. package/src/a11y/aria-labels.js +339 -0
  112. package/src/a11y/color-contrast.js +535 -0
  113. package/src/a11y/index.js +197 -0
  114. package/src/a11y/keyboard-nav.js +523 -0
  115. package/src/a11y/styles.css +165 -0
  116. package/src/cli/commands/dev.js +214 -0
  117. package/src/cli/commands/docs.js +521 -0
  118. package/src/cli/commands/edit.js +379 -0
  119. package/src/cli/commands/init.js +213 -0
  120. package/src/cli/commands/portal.js +236 -0
  121. package/src/cli/dev-server.js +530 -0
  122. package/src/cli/hmr.js +456 -0
  123. package/src/cli/index.js +180 -0
  124. package/src/cli/utils/config.js +207 -0
  125. package/src/cli/utils/logger.js +241 -0
  126. package/src/config/defaults.ts +122 -0
  127. package/src/config/index.ts +72 -0
  128. package/src/config/loader.ts +478 -0
  129. package/src/config/schema.ts +227 -0
  130. package/src/config/validator.ts +337 -0
  131. package/src/core/appContext.js +34 -27
  132. package/src/core/components/Bar.js +383 -0
  133. package/src/core/components/Bar3D.js +473 -0
  134. package/src/core/components/LargeDatasetChart.js +296 -0
  135. package/src/core/components/Line3D.js +310 -0
  136. package/src/core/components/Scatter.js +392 -188
  137. package/src/core/components/Scatter3D.js +455 -0
  138. package/src/core/components/ScatterBio.js +601 -572
  139. package/src/core/components/Surface3D.js +326 -0
  140. package/src/core/components/ThreeCustom.js +648 -0
  141. package/src/core/components/ThreeScene.js +459 -0
  142. package/src/core/components/VisiumPlot.js +191 -165
  143. package/src/core/components/browser.js +42 -42
  144. package/src/core/components/dotplot.js +413 -413
  145. package/src/core/components/html.js +29 -29
  146. package/src/core/components/list.js +178 -178
  147. package/src/core/components/macaron.js +206 -201
  148. package/src/core/components/markdown.js +56 -56
  149. package/src/core/components/parser.scatterBio.js +582 -587
  150. package/src/core/components/ratio.js +82 -80
  151. package/src/core/components/scatterL.js +206 -173
  152. package/src/core/components/searchbar.js +156 -131
  153. package/src/core/components/selection.js +310 -193
  154. package/src/core/components/timeline.js +236 -281
  155. package/src/core/components/visium.js +114 -97
  156. package/src/core/data-processor.js +413 -0
  157. package/src/core/fetch/condfetch.js +82 -82
  158. package/src/core/fetch/fetch.js +92 -92
  159. package/src/core/fetch/json.js +29 -29
  160. package/src/core/fetch/vfetch.js +42 -42
  161. package/src/core/hmr-client.js +724 -0
  162. package/src/core/liveEditor.js +44 -44
  163. package/src/core/modules/codeEditorWithPreview.js +104 -104
  164. package/src/core/modules/echarts/common.js +20 -20
  165. package/src/core/modules/echarts/gl.js +228 -0
  166. package/src/core/modules/echarts/presetHandler.js +41 -41
  167. package/src/core/modules/echarts/presets/esodev.chromium.js +172 -172
  168. package/src/core/modules/echarts/presets/esodev.codex.js +130 -130
  169. package/src/core/modules/echarts/presets/esodev.visium.js +123 -123
  170. package/src/core/modules/echarts/presets/mmtrbc.js +186 -186
  171. package/src/core/modules/echarts.js +70 -71
  172. package/src/core/modules/echartsUtils.js +43 -43
  173. package/src/core/modules/echartswitcher.js +227 -152
  174. package/src/core/modules/replotly/presetHandler.js +24 -24
  175. package/src/core/modules/replotly/presets/minimum.js +18 -18
  176. package/src/core/modules/replotly/presets/mmtrbc.dot.js +114 -114
  177. package/src/core/modules/replotly/presets/mmtrbc.violin.js +100 -100
  178. package/src/core/modules/replotly.js +74 -71
  179. package/src/core/modules/threejs/Camera.js +373 -0
  180. package/src/core/modules/threejs/Lighting.js +459 -0
  181. package/src/core/modules/threejs/Renderer.js +364 -0
  182. package/src/core/modules/threejs/Scene.js +266 -0
  183. package/src/core/modules/threejs/index.js +155 -0
  184. package/src/core/pages/404.js +50 -50
  185. package/src/core/pages/error.js +27 -27
  186. package/src/core/pages/jsonPage.js +62 -62
  187. package/src/core/pages/loading.js +44 -44
  188. package/src/core/parser/echart.data.js +204 -183
  189. package/src/core/parser/echart.features.js +125 -125
  190. package/src/core/parser/echart.general.js +147 -147
  191. package/src/core/parser/echart.hilbert.js +57 -57
  192. package/src/core/parser/echart.parser.js +210 -210
  193. package/src/core/parser/echart.series.js +67 -67
  194. package/src/core/parser/echart.types.js +76 -76
  195. package/src/core/parser/plotly.config.js +10 -10
  196. package/src/core/parser/plotly.data.js +132 -132
  197. package/src/core/parser/plotly.layout.js +9 -9
  198. package/src/core/parser/plotly.violin.js +18 -18
  199. package/src/core/recharts.js +361 -62
  200. package/src/core/router/alias.js +49 -49
  201. package/src/core/router/jsonRouter.js +31 -31
  202. package/src/core/themes/modern.js +32 -32
  203. package/src/core/themes/themeSelector.js +33 -33
  204. package/src/core/visualify.js +213 -47
  205. package/src/core/widgets/circularProgress.js +23 -23
  206. package/src/core/widgets/controller.js +116 -83
  207. package/src/core/widgets/errorBoundary.js +36 -36
  208. package/src/core/widgets/footer.js +185 -177
  209. package/src/core/widgets/header.js +238 -234
  210. package/src/core/widgets/layout/Grid.js +31 -31
  211. package/src/core/widgets/layout.js +36 -36
  212. package/src/core/widgets/mapping.js +56 -42
  213. package/src/core/workers/data-worker.js +349 -0
  214. package/src/core/workers/worker-pool.js +396 -0
  215. package/src/docsify/bundle.js +215 -0
  216. package/src/docsify/markdown.js +271 -0
  217. package/src/docsify/plugin.js +268 -0
  218. package/src/editor/README.md +172 -0
  219. package/src/editor/components/ChartBuilder.jsx +341 -0
  220. package/src/editor/components/ChartTypeSidebar.jsx +91 -0
  221. package/src/editor/components/Editor.jsx +367 -0
  222. package/src/editor/components/Preview.jsx +446 -0
  223. package/src/editor/components/PropertyPanel.jsx +468 -0
  224. package/src/editor/components/StatusBar.jsx +85 -0
  225. package/src/editor/context/EditorContext.js +248 -0
  226. package/src/editor/hooks/useDebounce.js +32 -0
  227. package/src/editor/index.js +315 -0
  228. package/src/editor/styles/editor.css +637 -0
  229. package/src/editor/utils/chartValidator.js +263 -0
  230. package/src/entries/charts3d.js +70 -0
  231. package/src/entries/core.js +78 -0
  232. package/src/entries/docs.js +154 -0
  233. package/src/entries/pages.js +93 -0
  234. package/src/entries/portal.js +204 -0
  235. package/src/entries/shared.js +50 -0
  236. package/src/i18n/formatters.js +455 -0
  237. package/src/i18n/index.js +169 -0
  238. package/src/i18n/locales/ar.json +137 -0
  239. package/src/i18n/locales/de.json +137 -0
  240. package/src/i18n/locales/en.json +137 -0
  241. package/src/i18n/locales/es.json +137 -0
  242. package/src/i18n/locales/he.json +137 -0
  243. package/src/i18n/locales/zh.json +137 -0
  244. package/src/i18n/rtl.css +183 -0
  245. package/src/index.js +82 -62
  246. package/src/loader.js +103 -0
  247. package/src/setupTests.js +5 -5
  248. package/tsconfig.json +51 -0
  249. package/types/charts.d.ts +569 -0
  250. package/types/components.d.ts +441 -0
  251. package/types/config.d.ts +199 -0
  252. package/types/index.d.ts +353 -0
@@ -0,0 +1,353 @@
1
+ /**
2
+ * Visualify.js Type Definitions
3
+ * @module visualifyjs/types
4
+ *
5
+ * Main type definitions for Visualify.js - A React-based data visualization library
6
+ * for large-scale omics data analysis.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import {
11
+ * VisualifyConfig,
12
+ * ScatterConfig,
13
+ * ChartConfig,
14
+ * ScatterProps
15
+ * } from 'visualifyjs/types';
16
+ *
17
+ * // Configuration
18
+ * const config: VisualifyConfig = {
19
+ * version: '3.0.0',
20
+ * mode: 'portal',
21
+ * docs: { basePath: './docs', theme: 'vue', plugins: [] },
22
+ * portal: { homepage: 'home.json', theme: 'modern', dataSources: [] },
23
+ * visualization: { defaultLibrary: 'echarts', enable3D: true, webWorkers: false }
24
+ * };
25
+ *
26
+ * // Chart configuration
27
+ * const scatterConfig: ScatterConfig = {
28
+ * type: 'scatter',
29
+ * data: [{ x: 1, y: 2 }, { x: 3, y: 4 }],
30
+ * title: 'Scatter Plot'
31
+ * };
32
+ * ```
33
+ */
34
+
35
+ // ============================================================================
36
+ // Configuration Types
37
+ // ============================================================================
38
+
39
+ export {
40
+ /** Application mode type */
41
+ AppMode,
42
+ /** Supported chart libraries */
43
+ ChartLibrary,
44
+ /** Data source types */
45
+ DataSourceType,
46
+ /** Data source configuration */
47
+ DataSource,
48
+ /** Documentation configuration */
49
+ DocsConfig,
50
+ /** Portal configuration */
51
+ PortalConfig,
52
+ /** Visualization configuration */
53
+ VisualizationConfig,
54
+ /** Main configuration interface */
55
+ VisualifyConfig,
56
+ /** Configuration loading options */
57
+ LoadConfigOptions,
58
+ /** Configuration cache entry */
59
+ ConfigCacheEntry,
60
+ /** Cache statistics */
61
+ CacheStats,
62
+ /** Config watcher control object */
63
+ ConfigWatcher,
64
+ /** Config reload callback type */
65
+ ConfigReloadCallback,
66
+ /** Partial configuration for merging */
67
+ PartialConfig,
68
+ } from './config';
69
+
70
+ // ============================================================================
71
+ // Chart Types
72
+ // ============================================================================
73
+
74
+ export {
75
+ /** Supported chart types */
76
+ ChartType,
77
+ /** Axis type */
78
+ AxisType,
79
+ /** Data zoom type */
80
+ DataZoomType,
81
+ /** 3D shading modes */
82
+ ShadingType,
83
+ /** 2D point coordinates */
84
+ Point2D,
85
+ /** 3D point coordinates */
86
+ Point3D,
87
+ /** Data point with metadata */
88
+ DataPoint,
89
+ /** Item style configuration */
90
+ ItemStyle,
91
+ /** Line style configuration */
92
+ LineStyle,
93
+ /** Label configuration */
94
+ LabelConfig,
95
+ /** Axis configuration */
96
+ AxisConfig,
97
+ /** 3D Axis configuration */
98
+ Axis3DConfig,
99
+ /** Grid configuration for 2D charts */
100
+ GridConfig,
101
+ /** 3D Grid configuration */
102
+ Grid3DConfig,
103
+ /** Visual map configuration */
104
+ VisualMapConfig,
105
+ /** Tooltip configuration */
106
+ TooltipConfig,
107
+ /** Legend configuration */
108
+ LegendConfig,
109
+ /** Toolbox configuration */
110
+ ToolboxConfig,
111
+ /** Base series configuration */
112
+ SeriesConfig,
113
+ /** Scatter series configuration */
114
+ ScatterSeriesConfig,
115
+ /** 3D Scatter series configuration */
116
+ Scatter3DSeriesConfig,
117
+ /** Bar series configuration */
118
+ BarSeriesConfig,
119
+ /** 3D Bar series configuration */
120
+ Bar3DSeriesConfig,
121
+ /** Line series configuration */
122
+ LineSeriesConfig,
123
+ /** 3D Line series configuration */
124
+ Line3DSeriesConfig,
125
+ /** Surface series configuration */
126
+ SurfaceSeriesConfig,
127
+ /** Title configuration */
128
+ TitleConfig,
129
+ /** Base chart configuration */
130
+ ChartConfig,
131
+ /** Scatter chart configuration */
132
+ ScatterConfig,
133
+ /** Bar chart configuration */
134
+ BarConfig,
135
+ /** Line chart configuration */
136
+ LineConfig,
137
+ /** 3D Scatter chart configuration */
138
+ Scatter3DConfig,
139
+ /** 3D Bar chart configuration */
140
+ Bar3DConfig,
141
+ /** 3D Line chart configuration */
142
+ Line3DConfig,
143
+ /** 3D Surface chart configuration */
144
+ Surface3DConfig,
145
+ /** Union of all chart configurations */
146
+ AnyChartConfig,
147
+ /** Chart data format types */
148
+ ChartData,
149
+ /** ECharts option object */
150
+ EChartsOption,
151
+ } from './charts';
152
+
153
+ // ============================================================================
154
+ // Component Types
155
+ // ============================================================================
156
+
157
+ export {
158
+ /** Base component props */
159
+ BaseComponentProps,
160
+ /** ReCharts wrapper props */
161
+ RechartsProps,
162
+ /** Scatter component props */
163
+ ScatterProps,
164
+ /** ScatterBio component props */
165
+ ScatterBioProps,
166
+ /** 3D Scatter component props */
167
+ Scatter3DProps,
168
+ /** 3D Bar component props */
169
+ Bar3DProps,
170
+ /** 3D Line component props */
171
+ Line3DProps,
172
+ /** 3D Surface component props */
173
+ Surface3DProps,
174
+ /** VisiumPlot component props */
175
+ VisiumPlotProps,
176
+ /** DotPlot component props */
177
+ DotPlotProps,
178
+ /** Grid layout configuration */
179
+ GridLayoutConfig,
180
+ /** DynamicGrid component props */
181
+ DynamicGridProps,
182
+ /** Widget base props */
183
+ WidgetProps,
184
+ /** Header widget props */
185
+ HeaderProps,
186
+ /** Footer widget props */
187
+ FooterProps,
188
+ /** Controller widget props */
189
+ ControllerProps,
190
+ /** Error boundary props */
191
+ ErrorBoundaryProps,
192
+ /** Error boundary state */
193
+ ErrorBoundaryState,
194
+ /** Loading component props */
195
+ LoadingProps,
196
+ /** Three.js scene props */
197
+ ThreeSceneProps,
198
+ /** Custom 3D component props */
199
+ ThreeCustomProps,
200
+ /** Circular progress props */
201
+ CircularProgressProps,
202
+ /** Selection component props */
203
+ SelectionProps,
204
+ /** Search bar props */
205
+ SearchBarProps,
206
+ /** Timeline component props */
207
+ TimelineProps,
208
+ /** Browser component props */
209
+ BrowserProps,
210
+ /** Mapping widget props */
211
+ MappingProps,
212
+ /** Layout configuration props */
213
+ LayoutProps,
214
+ /** Generic chart component props */
215
+ ChartComponentProps,
216
+ /** Union of all chart component props */
217
+ AnyChartComponentProps,
218
+ } from './components';
219
+
220
+ // ============================================================================
221
+ // Validation Types
222
+ // ============================================================================
223
+
224
+ /**
225
+ * Validation error object
226
+ */
227
+ export interface ValidationError {
228
+ /** Path to the invalid property */
229
+ path: string;
230
+ /** Property name */
231
+ property: string;
232
+ /** Error message */
233
+ message: string;
234
+ /** Suggested fix */
235
+ suggestion: string | null;
236
+ /** Validation keyword that failed */
237
+ keyword: string;
238
+ /** Invalid value */
239
+ value: unknown;
240
+ /** Source of the configuration */
241
+ source: string;
242
+ }
243
+
244
+ /**
245
+ * Validation result object
246
+ */
247
+ export interface ValidationResult {
248
+ /** Whether validation passed */
249
+ valid: boolean;
250
+ /** Array of validation errors */
251
+ errors: ValidationError[];
252
+ /** Summary message */
253
+ summary: string | null;
254
+ }
255
+
256
+ /**
257
+ * Error template function type
258
+ */
259
+ export type ErrorTemplate = (params: {
260
+ property: string;
261
+ expected?: string;
262
+ received?: string;
263
+ values?: string[];
264
+ }) => string;
265
+
266
+ /**
267
+ * Suggested fix function type
268
+ */
269
+ export type SuggestedFix = (error: ValidationError) => string | null;
270
+
271
+ // ============================================================================
272
+ // Utility Types
273
+ // ============================================================================
274
+
275
+ /**
276
+ * Deep partial type for nested optional properties
277
+ */
278
+ export type DeepPartial<T> = {
279
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
280
+ };
281
+
282
+ /**
283
+ * JSON primitive types
284
+ */
285
+ export type JSONPrimitive = string | number | boolean | null;
286
+
287
+ /**
288
+ * JSON value types
289
+ */
290
+ export type JSONValue = JSONPrimitive | JSONObject | JSONArray;
291
+
292
+ /**
293
+ * JSON object type
294
+ */
295
+ export interface JSONObject {
296
+ [key: string]: JSONValue;
297
+ }
298
+
299
+ /**
300
+ * JSON array type
301
+ */
302
+ export interface JSONArray extends Array<JSONValue> {}
303
+
304
+ /**
305
+ * Type guard for checking if value is a plain object
306
+ */
307
+ export function isPlainObject(value: unknown): value is Record<string, unknown> {
308
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
309
+ }
310
+
311
+ /**
312
+ * Type guard for checking if value is a valid chart configuration
313
+ */
314
+ export function isChartConfig(value: unknown): value is ChartConfig {
315
+ return (
316
+ isPlainObject(value) &&
317
+ typeof value.type === 'string' &&
318
+ value.data !== undefined
319
+ );
320
+ }
321
+
322
+ // ============================================================================
323
+ // Module Declarations
324
+ // ============================================================================
325
+
326
+ declare module 'visualifyjs' {
327
+ // Re-export all types
328
+ export * from './config';
329
+ export * from './charts';
330
+ export * from './components';
331
+
332
+ // Main configuration function
333
+ export function loadConfig(
334
+ cwd?: string,
335
+ overrides?: Record<string, unknown>,
336
+ options?: LoadConfigOptions
337
+ ): Promise<VisualifyConfig>;
338
+
339
+ // Validation function
340
+ export function validateConfig(
341
+ config: unknown,
342
+ options?: { source?: string }
343
+ ): ValidationResult;
344
+
345
+ // Version check
346
+ export function isVersionCompatible(version: string): boolean;
347
+ }
348
+
349
+ declare module 'visualifyjs/types' {
350
+ export * from './config';
351
+ export * from './charts';
352
+ export * from './components';
353
+ }