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,36 @@
1
+ # Memory Timeline
2
+ > 28 memories | Updated: 2026-02-20T06:29:24.060Z
3
+
4
+ ## Today (Feb 19)
5
+ - 23:29 [note] **v3.0.0 Release and Beta Channel Strategy** `visualify, release, v3.0.0, npm, beta-channel, workflow, potential-duplicate:2026-02-20-public-folder-cleanup-and-readme-rewrite`
6
+ - 23:02 [note] **DotBio Dot Plot Fix - useEffect Dependency** `visualify, bugfix, dotplot, react, useEffect, sharedData, DotBio, replotly, potential-duplicate:2026-02-19-visualify-infinite-loop-i18n-fixes`
7
+ - 21:49 [note] **Bundle Externalization Final Architecture** `visualify, rollup, externalization, iife, echarts, plotly, three, bundle, architecture, potential-duplicate:2026-02-19-visualify-build-deployment-architecture-bug-fixes`
8
+ - 21:09 [note] **Public folder cleanup and README rewrite** `visualify, commit, readme, public-cleanup, changelog, potential-duplicate:2026-02-20-console-cleanup-bundle-optimization-commit`
9
+ - 20:48 [note] **Console cleanup + bundle optimization commit** `visualify, commit, bundle-optimization, console-cleanup, docs, potential-duplicate:2026-02-19-visualify-infinite-loop-i18n-fixes`
10
+ - 20:26 [note] **Visualify CDN Loader + Bundle Externalization** `visualify, rollup, cdn, bundle-optimization, loader, externalization, potential-duplicate:2026-02-19-visualify-dist-iife-self-contained-build-config`
11
+ - 20:15 [session] **"Session summary 2026-02-20"** `auto-capture, session-end, zhipu`
12
+ - 18:59 [note] **Chromium page fix - unstable keys and double event binding** `bugfix, chromium, react, echarts, keys, events, potential-duplicate:2026-02-19-css-grid-layout-fix-displaycontents-on-vcontroller`
13
+ - 17:55 [note] **Visium Background Image + Unknown Legend Fix** `visualify, bugfix, visium, react, useEffect, ScatterBio, potential-duplicate:2026-02-19-page-mode-docs-update-decisions`
14
+ - 16:18 [note] **React Context Infinite Re-render Loop Fix Pattern** `react, useEffect, infinite-loop, context, performance, visualify, pattern, potential-duplicate:2026-02-19-visualify-infinite-loop-i18n-fixes`
15
+ - 15:31 [note] **CSS Grid Layout Fix - display:contents on Vcontroller** `visualify, bugfix, css-grid, layout, display-contents, potential-duplicate:2026-02-19-visualify-build-deployment-architecture-bug-fixes`
16
+ - 15:19 [note] **Visualify Infinite Loop & i18n Fixes** `visualify, bugfix, react, useEffect, infinite-loop, i18n, rollup, potential-duplicate:2026-02-19-visualify-build-deployment-architecture-bug-fixes`
17
+ - 14:45 [note] **Visualify dist IIFE Self-Contained Build Config** `visualify, rollup, deployment, iife, dist, self-contained, potential-duplicate:2026-02-11-3d-visualization-docs-fix-session-summary`
18
+ - 14:23 [note] **Visualify Build & Deployment Architecture + Bug Fixes** `visualify, deployment, build, bugfix, architecture, potential-duplicate:2026-02-18-codebase-cleanup-docsify-plugin-documentation`
19
+ - 13:11 [note] **Page Mode Docs Update Decisions** `docs, page-mode, components, visualify, potential-duplicate:2026-02-19-visualify-v3-bundle-splitting-docs-restructuring`
20
+ - 13:02 [note] **Visualify v3 Bundle Splitting & Docs Restructuring** `architecture, bundle-splitting, v3, rollup, docs, potential-duplicate:2026-02-19-version-300-bump-and-build-fixes`
21
+ - 12:35 [note] **Docsify Plugin Fixes - LaTeX and Visualify Code Blocks** `docsify, latex, visualify, plugin, configuration, potential-duplicate:2026-02-11-3d-visualization-docs-fix-external-script-solution`
22
+ - 12:17 [note] **Version 3.0.0 Bump and Build Fixes** `visualify, version-bump, 3.0.0, build-fix, typescript, plotly, eslint, potential-duplicate:2026-02-11-3d-visualization-docs-fix-session-summary`
23
+
24
+ ## Yesterday (Feb 18)
25
+ - 14:52 [note] **Codebase Cleanup - Docsify Plugin Documentation** `visualify, cleanup, docsify, documentation, gitignore, phase4, potential-duplicate:2026-02-11-visualify-repository-cleanup-complete`
26
+
27
+ ## Earlier This Month
28
+ - Feb 11 [note] **Phase 4 - Web Workers Implementation Complete** `visualify, phase4, web-workers, performance, large-datasets, completed`
29
+ - Feb 11 [note] **CLI Fix - Editor Command Alias** `visualify, cli, fix, editor, alias, documentation`
30
+ - Feb 11 [note] **Phase 3 Developer Experience - Completed** `visualify, phase3, complete, hmr, typescript, i18n, dx, commit`
31
+ - Feb 11 [note] **3D Visualization Docs Fix - External Script Solution** `visualify, 3d-visualization, docsify, fix, pattern`
32
+ - Feb 11 [note] **3D Visualization Docs Fix - Session Summary** `visualify, 3d-visualization, docs, build-fix, dependencies, rollup`
33
+ - Feb 11 [note] **Visualify Phase 3 Complete - Developer Experience** `visualify, phase3, complete, typescript, hmr, editor, a11y, i18n`
34
+ - Feb 11 [note] **Visualify Phase 2 Committed - Ready for Phase 3** `visualify, phase2, committed, complete, ready-for-phase3`
35
+ - Feb 11 [note] **Visualify Phase 2 - 3D Visualization Complete** `visualify, phase2, 3d, echarts-gl, threejs, docsify, complete`
36
+ - Feb 11 [note] **Visualify Repository Cleanup Complete** `visualify, cleanup, ready, phase2`
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: 3D Visualization Docs Fix - External Script Solution
3
+ type: note
4
+ tags: [visualify, 3d-visualization, docsify, fix, pattern]
5
+ created: 2026-02-11T19:21:57.750Z
6
+ updated: 2026-02-11T19:21:57.750Z
7
+ ---
8
+
9
+ ## 3D Visualization Docs Fix - External Script Solution
10
+
11
+ **Problem**: Docsify plugin error "Invalid or unexpected token" when loading 3D visualization examples with inline script in markdown.
12
+
13
+ **Root Cause**: Docsify's `external-script` plugin has issues parsing inline JavaScript in markdown files, especially with certain ES5/ES6 syntax patterns.
14
+
15
+ **Solution**: Move all JavaScript code from inline `<script>` in markdown to external JS file.
16
+
17
+ **Changes Made**:
18
+ 1. Created `docs/static/js/3d-viz-examples.js` - Contains all 3D chart configs and mounting logic
19
+ 2. Updated `docs/docs/3d-visualization.md` - Replaced inline script with external script reference
20
+ 3. Updated `docs/index.html` - Added external script after visualify.js bundle
21
+
22
+ **Key Pattern**: When docsify shows "Invalid or unexpected token" errors with inline scripts, extract the script to an external file and reference it with `<script src="...">`.
23
+
24
+ **Verification**: All 3D charts (Scatter3D, Bar3D, Surface3D) now render correctly without plugin errors.
@@ -0,0 +1,43 @@
1
+ ---
2
+ title: 3D Visualization Docs Fix - Session Summary
3
+ type: note
4
+ tags: [visualify, 3d-visualization, docs, build-fix, dependencies, rollup]
5
+ created: 2026-02-11T17:07:15.007Z
6
+ updated: 2026-02-11T17:07:15.007Z
7
+ ---
8
+
9
+ ## 3D Visualization Docs Fix - Session Summary
10
+
11
+ ### Problem
12
+ The 3D Visualization documentation page at localhost:3000 showed "Loading 3D Scatter Plot... (requires WebGL support)" indefinitely because:
13
+ 1. The 3D components weren't accessible through the Recharts class used in docs mode
14
+ 2. Missing npm dependencies (react-toastify, react-i18next, i18next, i18next-browser-languagedetector)
15
+ 3. Broken OBJLoader import path (missing .js extension)
16
+ 4. The docs bundle wasn't self-contained (missing React and other deps)
17
+
18
+ ### Solution
19
+ 1. **Modified Recharts class** (`src/core/recharts.js`):
20
+ - Added imports for 3D components (Scatter3D, Bar3D, Surface3D, Line3D)
21
+ - Added `is3DChartType()` helper to detect 3D chart types
22
+ - Modified `ChartWithHMR` to render 3D components when type matches
23
+
24
+ 2. **Added missing dependencies** to package.json and installed them
25
+
26
+ 3. **Fixed OBJLoader import** in ThreeCustom.js to use `.js` extension
27
+
28
+ 4. **Updated rollup config** with separate `docsStaticConfig` for self-contained docs bundle
29
+
30
+ 5. **Added 3D Visualization to sidebar** (`docs/docs/_sidebar.md`)
31
+
32
+ 6. **Updated .gitignore** to exclude `.claude/` and `.sisyphus/`
33
+
34
+ ### Key Technical Details
35
+ - The docs bundle (`docs/static/js/visualify.js`) is now 1.7MB with all dependencies bundled
36
+ - 3D libraries (echarts-gl, three.js) are still loaded on-demand to minimize initial bundle size
37
+ - The IIFE format with `inlineDynamicImports: true` ensures compatibility with Docsify
38
+
39
+ ### Commits
40
+ - `8f3fb14` - fix(build): resolve missing dependencies and fix OBJLoader import
41
+
42
+ ### Tags
43
+ visualify, 3d-visualization, docs, build-fix, dependencies, rollup
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: CLI Fix - Editor Command Alias
3
+ type: note
4
+ tags: [visualify, cli, fix, editor, alias, documentation]
5
+ created: 2026-02-11T19:46:45.325Z
6
+ updated: 2026-02-11T19:46:45.325Z
7
+ ---
8
+
9
+ ## CLI Fix - Editor Command Alias
10
+
11
+ **Commit**: `b2d3de7` - fix(cli): add 'editor' alias and update CLI documentation
12
+
13
+ **Problem**: Users expected `visualify editor` command but only `visualify edit` existed, causing "unknown command 'editor'" error.
14
+
15
+ **Solution**:
16
+ 1. Added `command.alias('editor')` to the edit command in `src/cli/commands/edit.js`
17
+ 2. Updated CLI.md documentation with complete unified CLI reference
18
+ 3. Fixed visual-editor.md to use correct command syntax
19
+
20
+ **Key Changes**:
21
+ - Both `visualify edit` and `visualify editor` now work
22
+ - Updated documentation shows all current commands: dev, docs, portal, init, edit/editor
23
+ - Added legacy command migration table for users coming from @visualify/cli
24
+ - Documented configuration file options and environment variables
25
+
26
+ **Pattern**: When CLI commands have naming inconsistencies, add aliases rather than breaking existing usage.
@@ -0,0 +1,51 @@
1
+ ---
2
+ title: Phase 3 Developer Experience - Completed
3
+ type: note
4
+ tags: [visualify, phase3, complete, hmr, typescript, i18n, dx, commit]
5
+ created: 2026-02-11T19:39:15.248Z
6
+ updated: 2026-02-11T19:39:15.248Z
7
+ ---
8
+
9
+ ## Phase 3 Developer Experience - Completed
10
+
11
+ **Commit**: `a016d2e` - feat(dx): complete Phase 3 Developer Experience features
12
+
13
+ **Features Implemented**:
14
+
15
+ 1. **Hot Module Replacement (HMR)**
16
+ - WebSocket-based live reloading
17
+ - State preservation during updates
18
+ - Visual error overlay
19
+ - Configurable via `window.__VISUALIFY_HMR__`
20
+
21
+ 2. **TypeScript Support**
22
+ - Full type definitions for all chart types
23
+ - Generic ChartData<T> support
24
+ - Typed React hooks and components
25
+ - Migration guide documentation
26
+
27
+ 3. **Internationalization (i18n)**
28
+ - Multi-language support infrastructure
29
+ - RTL language support
30
+ - Number/date formatting
31
+ - Translation key system
32
+
33
+ 4. **Visual Configuration Editor**
34
+ - Point-and-click chart builder
35
+ - Real-time preview
36
+ - Drag-and-drop data import
37
+ - Export to multiple formats
38
+
39
+ 5. **Accessibility Improvements**
40
+ - Fixed keyboard navigation hooks
41
+ - Direct React hook imports
42
+ - ARIA attributes for 3D charts
43
+
44
+ **Documentation Added**:
45
+ - `docs/docs/hmr.md` - HMR guide
46
+ - `docs/docs/typescript.md` - TypeScript migration
47
+ - `docs/docs/i18n.md` - Internationalization
48
+ - `docs/docs/visual-editor.md` - Visual editor guide
49
+ - Updated `docs/docs/_sidebar.md` with Developer Experience section
50
+
51
+ **All Phase 3 tasks marked complete.**
@@ -0,0 +1,59 @@
1
+ ---
2
+ title: Phase 4 - Web Workers Implementation Complete
3
+ type: note
4
+ tags: [visualify, phase4, web-workers, performance, large-datasets, completed]
5
+ created: 2026-02-11T20:32:31.682Z
6
+ updated: 2026-02-11T20:32:31.682Z
7
+ ---
8
+
9
+ ## Phase 4 - Web Workers Implementation Complete
10
+
11
+ **Commit**: `f8b624d` - feat(workers): implement Web Worker infrastructure for large datasets
12
+
13
+ **Features Implemented**:
14
+
15
+ 1. **WorkerPool** (`src/core/workers/worker-pool.js`)
16
+ - Manages pool of web workers with min/max limits
17
+ - Task queuing with automatic load balancing
18
+ - Error handling with worker replacement
19
+ - Task timeout handling
20
+ - Statistics reporting
21
+
22
+ 2. **DataWorker** (`src/core/workers/data-worker.js`)
23
+ - Aggregation: sum, avg, min, max, count, median, std
24
+ - Filtering with complex criteria (range, comparison, array includes)
25
+ - Sorting by multiple fields
26
+ - GroupBy operations
27
+ - Stratified sampling for large datasets
28
+ - Statistics calculation (mean, variance, quartiles)
29
+ - CSV parsing with type detection
30
+ - Pipeline for chained operations
31
+
32
+ 3. **DataProcessor** (`src/core/data-processor.js`)
33
+ - High-level API for main thread
34
+ - Automatic chunking for large datasets
35
+ - Parallel processing with progress callbacks
36
+ - Result aggregation from chunks
37
+ - Convenience functions: aggregateData, filterData, sortData, etc.
38
+
39
+ 4. **LargeDatasetChart** (`src/core/components/LargeDatasetChart.js`)
40
+ - React component optimized for 100k+ row datasets
41
+ - Automatic sampling for preview
42
+ - Data summary statistics overlay
43
+ - Progressive rendering support
44
+ - Error handling with fallback to main thread
45
+
46
+ **Usage**:
47
+ ```javascript
48
+ import { LargeDatasetChart } from 'visualify';
49
+
50
+ // Component handles large datasets automatically
51
+ const config = {
52
+ type: 'line',
53
+ data: largeArray, // 100k+ items
54
+ sampleSize: 10000,
55
+ enableWorkerProcessing: true
56
+ };
57
+ ```
58
+
59
+ **Next**: IndexedDB caching layer
@@ -0,0 +1,50 @@
1
+ ---
2
+ title: Visualify Phase 2 - 3D Visualization Complete
3
+ type: note
4
+ tags: [visualify, phase2, 3d, echarts-gl, threejs, docsify, complete]
5
+ created: 2026-02-11T07:19:12.896Z
6
+ updated: 2026-02-11T07:19:12.896Z
7
+ ---
8
+
9
+ ## Visualify.js Phase 2 Complete - 3D Visualization
10
+
11
+ ### Commits Ready to Make
12
+ 1. Phase 2: 3D Visualization with ECharts GL and Three.js
13
+
14
+ ### Files Created (16 new files)
15
+ **3D Chart Components:**
16
+ - Scatter3D.js, Bar3D.js, Surface3D.js, Line3D.js
17
+
18
+ **Three.js Module:**
19
+ - index.js, Scene.js, Camera.js, Lighting.js, Renderer.js
20
+
21
+ **Docsify Integration:**
22
+ - plugin.js, markdown.js, bundle.js
23
+
24
+ **ECharts GL:**
25
+ - gl.js (lazy loading, WebGL detection)
26
+
27
+ ### Dependencies Added
28
+ - echarts-gl: ^2.0.9
29
+ - three: ^0.160.0
30
+ - @react-three/fiber: ^8.15.0
31
+ - @react-three/drei: ^9.0.0
32
+ - docsify: ^4.13.1
33
+ - docsify-cli: ^4.4.4
34
+
35
+ ### Features Implemented
36
+ - 4 ECharts GL 3D chart types (scatter3d, bar3d, surface3d, line3d)
37
+ - Three.js foundation with scene, camera, lighting, renderer
38
+ - Docsify plugin with markdown code block processing
39
+ - Lazy loading for all 3D libraries
40
+ - WebGL support detection with fallbacks
41
+ - CLI docs commands (dev, build)
42
+
43
+ ### Updated Configuration
44
+ - rollup.config.mjs: 3D libs as externals
45
+ - package.json: 3D dependencies
46
+ - mapping.js: 3D chart registrations
47
+ - entries/docs.js: Docsify integration
48
+ - cli/commands/docs.js: Complete implementation
49
+
50
+ ### Next: Commit these changes, then Phase 3 (TypeScript, HMR, Visual Editor)
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: Visualify Phase 2 Committed - Ready for Phase 3
3
+ type: note
4
+ tags: [visualify, phase2, committed, complete, ready-for-phase3]
5
+ created: 2026-02-11T07:28:02.317Z
6
+ updated: 2026-02-11T07:28:02.317Z
7
+ ---
8
+
9
+ ## Visualify.js Phase 2 Complete - Committed
10
+
11
+ ### Commits Made (6 total)
12
+ 1. `22a19ea` - Phase 1: CLI merge, visualify.json, dual-mode builds
13
+ 2. `eff6f6b` - Phase 1: EsoDev showcase dataportal
14
+ 3. `6b0a207` - Phase 1: visualify.json config for showcase
15
+ 4. `b37dbb4` - Phase 1: Add /dist to .gitignore
16
+ 5. `ead71c3` - Phase 2: 3D visualization (ECharts GL, Three.js, Docsify)
17
+ 6. `4eec1ae` - Phase 2: 3D documentation and CHANGELOG
18
+
19
+ ### Untracked (Kept for Memory)
20
+ - `.claude/` - Memory storage
21
+ - `.sisyphus/boulder.json` - Task tracking (not committed)
22
+
23
+ ### Documentation Added
24
+ - `docs/docs/3d-visualization.md` - Comprehensive 3D guide with examples
25
+ - CHANGELOG updated with Phase 2 features
26
+
27
+ ### Ready for Phase 3
28
+ Phase 3 tasks: TypeScript, HMR, Visual Editor, Accessibility, i18n
29
+
30
+ ### Git Status
31
+ - Branch: dev (6 commits ahead of origin/dev)
32
+ - Working tree: clean
33
+ - Untracked: .claude/, .sisyphus/
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: Visualify Phase 3 Complete - Developer Experience
3
+ type: note
4
+ tags: [visualify, phase3, complete, typescript, hmr, editor, a11y, i18n]
5
+ created: 2026-02-11T07:53:17.725Z
6
+ updated: 2026-02-11T07:53:17.725Z
7
+ ---
8
+
9
+ ## Visualify.js Phase 3 Complete - Developer Experience
10
+
11
+ ### Phase 3: All Tasks Completed
12
+
13
+ **1. TypeScript Migration**
14
+ - tsconfig.json with strict mode
15
+ - types/index.d.ts, config.d.ts, charts.d.ts, components.d.ts
16
+ - Migrated src/config/ to TypeScript (schema.ts, validator.ts, loader.ts, defaults.ts, index.ts)
17
+
18
+ **2. Hot Module Replacement (HMR)**
19
+ - src/cli/hmr.js - HMR engine with WebSocket
20
+ - src/cli/dev-server.js - Dev server with HMR injection
21
+ - src/core/hmr-client.js - Client-side HMR handler
22
+ - Updated src/cli/commands/dev.js with --hmr flag
23
+ - State preservation for zoom, pan, selection
24
+
25
+ **3. Visual Configuration Editor**
26
+ - src/editor/ - Complete visual editor
27
+ - Drag-and-drop chart builder
28
+ - Property panels for all chart types
29
+ - Live preview with ECharts
30
+ - Undo/redo, auto-save to localStorage
31
+ - CLI command: visualify edit
32
+
33
+ **4. Accessibility (A11y)**
34
+ - src/a11y/aria-labels.js - ARIA label generators
35
+ - src/a11y/keyboard-nav.js - Keyboard navigation
36
+ - src/a11y/color-contrast.js - WCAG compliance checker
37
+ - src/a11y/styles.css - Screen reader styles
38
+ - Updated Scatter.js, Scatter3D.js, Bar3D.js with a11y
39
+
40
+ **5. Internationalization (i18n)**
41
+ - src/i18n/index.js - i18n module with 6 languages
42
+ - Locales: en, zh, es, de, ar, he (RTL support)
43
+ - src/i18n/formatters.js - Locale-aware formatting
44
+ - src/i18n/rtl.css - RTL layout styles
45
+ - Updated components with useTranslation hook
46
+
47
+ ### Dependencies to Add
48
+ - i18next, react-i18next, i18next-browser-languagedetector
49
+ - chokidar, ws (already added for HMR)
50
+
51
+ ### Ready for Phase 4
52
+ Phase 4: Web Workers, IndexedDB, Streaming, PWA, WebAssembly
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: Visualify Repository Cleanup Complete
3
+ type: note
4
+ tags: [visualify, cleanup, ready, phase2]
5
+ created: 2026-02-11T07:04:53.935Z
6
+ updated: 2026-02-11T07:04:53.935Z
7
+ ---
8
+
9
+ ## Visualify.js Repository Cleanup Complete
10
+
11
+ ### Cleaned Up
12
+ - Dropped remaining git stash
13
+ - Restored modified dist/visualify.js and docs/static/js/visualify.js
14
+ - Removed untracked build files (dist/*.map, stats.html, etc.)
15
+ - Cleaned up temporary directories (.sisyphus/, .claude/)
16
+
17
+ ### Commits Added
18
+ 3. `6b0a207` - chore: add visualify.json config for EsoDev showcase
19
+ 4. `b37dbb4` - chore: add /dist to .gitignore
20
+
21
+ ### Final State
22
+ - Working tree: clean
23
+ - Branch: dev (4 commits ahead of origin/dev)
24
+ - Stash: empty
25
+ - Untracked files: none
26
+
27
+ ### Ready for Phase 2
28
+ Repository is clean and ready for 3D visualization implementation.
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: Codebase Cleanup - Docsify Plugin Documentation
3
+ type: note
4
+ tags: [visualify, cleanup, docsify, documentation, gitignore, phase4, potential-duplicate:2026-02-11-visualify-repository-cleanup-complete]
5
+ created: 2026-02-18T21:52:58.214Z
6
+ updated: 2026-02-18T21:52:58.214Z
7
+ ---
8
+
9
+ ## Codebase Cleanup - Docsify Plugin Documentation
10
+
11
+ **Commit**: `76f849c` - chore(gitignore): add build artifact patterns and update docs
12
+
13
+ **Changes Made**:
14
+
15
+ 1. **Updated .gitignore** with build artifact patterns:
16
+ - `dist/*.map` - Source maps
17
+ - `dist/stats.html` - Bundle analyzer output
18
+ - `dist/visualify-*.js` - Build outputs (keeping visualify.js entry point)
19
+ - `docs/static/js/visualify.js` - Docs build artifact
20
+
21
+ 2. **Verified Docsify Plugin Documentation**:
22
+ - `docs/docs/docsify-plugin.md` already exists with comprehensive coverage
23
+ - Installation (CDN, npm, manual)
24
+ - Basic usage with ` ```visualify ` code blocks
25
+ - Configuration options for all chart types
26
+ - 3D visualization support
27
+ - External data sources
28
+ - API reference
29
+ - Troubleshooting section
30
+ - Sidebar link already present
31
+
32
+ **Key Insight**: The docsify plugin documentation was already comprehensive - just needed verification and the sidebar was already updated. The main work was cleaning up .gitignore to prevent build artifacts from being committed.
33
+
34
+ **Next Steps for Full Cleanup**:
35
+ - Consider removing already-tracked build artifacts from git history
36
+ - Evaluate if `config-overrides.js` (CRA config) can be removed (project uses Rollup)
37
+ - Check if `src/docsify/bundle.js` is redundant with `src/entries/docs.js`
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: CSS Grid Layout Fix - display:contents on Vcontroller
3
+ type: note
4
+ tags: [visualify, bugfix, css-grid, layout, display-contents, potential-duplicate:2026-02-19-visualify-build-deployment-architecture-bug-fixes]
5
+ created: 2026-02-19T22:31:02.244Z
6
+ updated: 2026-02-19T22:31:02.244Z
7
+ ---
8
+
9
+ ## CSS Grid Layout Fix - display:contents (2026-02-19)
10
+
11
+ ### Root Cause
12
+ `DynamicGrid` (Grid.js) creates the CSS Grid container, but `Vcontroller` (controller.js) wraps components in two nested divs: `.visualify-controller` > `.visualify-components-container`. CSS Grid only positions **direct children**, so grid items (with gridColumn/gridRow styles) were ignored as grandchildren.
13
+
14
+ ### Fix
15
+ Added `style={{ display: 'contents' }}` to both wrapper divs in controller.js. `display: contents` makes the element invisible to layout — children participate in the grandparent grid directly. DOM structure and accessibility attributes are preserved.
16
+
17
+ ### Key Insight
18
+ When using CSS Grid with component wrappers (common in React), intermediate container divs break the grid parent-child relationship. Use `display: contents` on wrapper divs that shouldn't participate in layout.
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: Docsify Plugin Fixes - LaTeX and Visualify Code Blocks
3
+ type: note
4
+ tags: [docsify, latex, visualify, plugin, configuration, potential-duplicate:2026-02-11-3d-visualization-docs-fix-external-script-solution]
5
+ created: 2026-02-19T19:35:34.606Z
6
+ updated: 2026-02-19T19:35:34.606Z
7
+ ---
8
+
9
+ ## Docsify Plugin Fixes (v3.0.0)
10
+
11
+ ### LaTeX interference with `$docsify` / `$visualify`
12
+ - **Root cause**: `docsify-latex@0.5.2` config had `inlineMath: [['$', '$']]` which treated `$docsify` as LaTeX
13
+ - **Fix**: Removed `['$', '$']` from `config.latex.inlineMath` in `docs/static/js/configuration.js`, keeping only `['\\(', '\\)']`
14
+ - No actual LaTeX inline math using single `$` exists in the docs
15
+
16
+ ### Visualify code block rendering
17
+ - **Root cause**: Docs site loads `docs/static/js/visualify.js` (legacy bundle), NOT `dist/visualify-docs.js` (docsify plugin bundle)
18
+ - The docsify plugin in `src/docsify/plugin.js` was never registered because `config.markdown` wasn't set
19
+ - **Fix**: Added `visualifyCodeBlockPlugin` function directly in `docs/static/js/configuration.js` with `beforeEach` (replaces ```visualify blocks with chart containers) and `doneEach` (mounts charts via `window.$visualify.Recharts`)
20
+ - Uses `<pre>` block preservation: temporarily replaces `<pre>...</pre>` blocks with placeholders to prevent documentation examples from being converted to live charts
21
+
22
+ ### Key architecture notes
23
+ - `docs/static/js/configuration.js` — main docsify config, loaded by `docs/index.html`
24
+ - `window.$visualify.Recharts` — global API for chart creation in docs mode
25
+ - `<pre lang="markdown">` wrapping in markdown = documentation example (not rendered as chart)
26
+ - Bare ```visualify blocks = live demo (rendered as interactive chart)
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: Page Mode Docs Update Decisions
3
+ type: note
4
+ tags: [docs, page-mode, components, visualify, potential-duplicate:2026-02-19-visualify-v3-bundle-splitting-docs-restructuring]
5
+ created: 2026-02-19T20:11:12.878Z
6
+ updated: 2026-02-19T20:11:12.878Z
7
+ ---
8
+
9
+ ## Page Mode Documentation Update (2026-02-19)
10
+
11
+ Updated all 9 page mode component docs with visual diagrams, tables, and examples:
12
+
13
+ - **echart.md**: Added 2 live ```visualify demos (scatter + line chart) - only component that supports live demos since it uses same engine as Charts mode
14
+ - **macaron.md**: ASCII graph hierarchy diagram, interaction flow, selection workflow
15
+ - **scatterL.md**: ASCII viewport-based loading diagram, R-tree API format
16
+ - **visium.md**: ASCII tissue section overlay diagram, 3 data sources explained
17
+ - **dotBio.md**: ASCII dot plot matrix diagram, dual encoding explained
18
+ - **plotly.md**: ASCII data flow diagram, scatter + violin examples
19
+ - **html.md**: 3 use case examples (image, iframe, styled content)
20
+ - **more.md**: Renamed to "Utility Components", covers SearchBar/List/RatioBox
21
+ - **markdown.md**: Created new file (was empty), inline + external file examples
22
+
23
+ Key decision: Only Echart can have live ```visualify demos. Other components (ScatterL, Visium, DotBio, Plotly, Macaron) require backend APIs - compensated with ASCII diagrams and showcase links.
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: React Context Infinite Re-render Loop Fix Pattern
3
+ type: note
4
+ tags: [react, useEffect, infinite-loop, context, performance, visualify, pattern, potential-duplicate:2026-02-19-visualify-infinite-loop-i18n-fixes]
5
+ created: 2026-02-19T23:18:27.478Z
6
+ updated: 2026-02-19T23:18:27.478Z
7
+ ---
8
+
9
+ ## React Context Infinite Re-render Loop Fix Pattern
10
+
11
+ **Root cause**: `useAppContext()` (React Context with `useState`) creates a new `{ sharedData, setSharedData }` object on every render. Every `setSharedData` call triggers ALL consumer components to re-render, and if those components have `useEffect([props, sharedData])` deps, they fire again — creating infinite loops.
12
+
13
+ **Fix pattern (applied across 10 files in visualify.js):**
14
+
15
+ 1. **`appContext.js`** — Memoize context value: `useMemo(() => ({ sharedData, setSharedData }), [sharedData])`
16
+ 2. **Component useEffects** — Replace `[props, sharedData]` deps with:
17
+ - Extract stable primitives from props outside useEffect
18
+ - Use `useRef` for props/sharedData to access latest values without deps
19
+ - Build `sharedDataSnapshot = JSON.stringify(relevantKeys.reduce(...))` for only the keys the component reads
20
+ - Deps become `[sharedDataSnapshot, stablePrimitive1, stablePrimitive2]`
21
+ 3. **setSharedData guards** — Always check if value actually changed before updating:
22
+ ```js
23
+ setSharedData((prev) => {
24
+ if (JSON.stringify(prev[key]) === serializedNewValue) return prev;
25
+ return { ...prev, [key]: newValue };
26
+ });
27
+ ```
28
+
29
+ **Files fixed**: appContext.js, timeline.js, echartswitcher.js, visium.js, VisiumPlot.js, ScatterBio.js, dotplot.js, ratio.js, selection.js, macaron.js, searchbar.js, scatterL.js
30
+
31
+ **Build note**: Legacy IIFE build needs `NODE_OPTIONS="--max-old-space-size=8192"` for rollup.
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: Version 3.0.0 Bump and Build Fixes
3
+ type: note
4
+ tags: [visualify, version-bump, 3.0.0, build-fix, typescript, plotly, eslint, potential-duplicate:2026-02-11-3d-visualization-docs-fix-session-summary]
5
+ created: 2026-02-19T19:17:56.850Z
6
+ updated: 2026-02-19T19:17:56.850Z
7
+ ---
8
+
9
+ ## Version Bump: 2.5.3-3.dev → 3.0.0-1.dev
10
+
11
+ **Date**: 2026-02-19
12
+
13
+ ### Build Issues Fixed
14
+ 1. **Missing `typescript` dependency** — `react-scripts@5.0.1` requires it. Installed `typescript@^4` with `--legacy-peer-deps` due to peer conflict (react-scripts wants ^3.2.1 || ^4, but latest is v5.9)
15
+ 2. **Missing `plotly.js` dependency** — peer dep of `react-plotly.js`. Installed with `--legacy-peer-deps`
16
+ 3. **ESLint: React hooks rules violation** in `src/a11y/keyboard-nav.js` — renamed `createKeyboardNavigation` → `useKeyboardNavigation` (function uses hooks but wasn't named as a hook)
17
+ 4. **ESLint: Conditional hook call** in `src/core/components/ThreeCustom.js` — `useGLTF` was inside try/catch. Moved to unconditional call with error handling in useEffect
18
+ 5. **Missing `useCallback` import** in `src/core/components/ThreeCustom.js`
19
+ 6. **TS2323: Duplicate export** in `src/config/validator.ts` — `setValidationLocale` and `getValidationLocale` were both inline-exported and in named export block
20
+
21
+ ### Version locations updated (all hardcoded):
22
+ - `package.json` (version field)
23
+ - `src/cli/index.js` (VERSION const)
24
+ - `src/editor/components/Editor.jsx` (default config)
25
+ - `src/editor/index.js` (DEFAULT_CONFIG)
26
+ - `src/editor/context/EditorContext.js` (initialState)
27
+ - `src/cli/commands/edit.js` (editorConfig)
28
+ - `src/editor/README.md` (docs examples)
29
+
30
+ ### Build Status
31
+ - **Rollup**: All 6 bundles pass (docs, portal, shared, legacy, docs-js)
32
+ - **CRA**: Compiles with warnings (unused vars, exhaustive-deps, source map missing)
@@ -0,0 +1,25 @@
1
+ ---
2
+ title: Visualify Build & Deployment Architecture + Bug Fixes
3
+ type: note
4
+ tags: [visualify, deployment, build, bugfix, architecture, potential-duplicate:2026-02-18-codebase-cleanup-docsify-plugin-documentation]
5
+ created: 2026-02-19T21:23:06.697Z
6
+ updated: 2026-02-19T21:23:06.697Z
7
+ ---
8
+
9
+ ## Visualify Deployment & Build Architecture
10
+
11
+ ### Build outputs:
12
+ - `build/static/js/visualify.js` — CRA full app bundle (IIFE, ~8MB), used for **direct `<script>` tag deployment** (EsoDev server)
13
+ - `dist/visualify.js` — Rollup library bundle (ESM with bare imports, ~750KB), used for **npm package consumers** only
14
+ - Always use `build/` output for server deployment, NOT `dist/`
15
+
16
+ ### Key bug fixes (2026-02-19):
17
+ 1. **VisualifyProvider context bug**: `VisualifyWithStatePreservation` used `useAppContext()` but was rendered outside `VisualifyProvider`. Fix: moved provider to `CreateApp` render root, removed duplicate inner provider from `Visualify` component.
18
+ 2. **SearchBar infinite re-render**: `useEffect` depended on entire `sharedData` object, causing re-runs on any state change. Fix: extracted specific `triggerValue = sharedData[triggerKey]` and used `useRef` for sharedData access in fetch, narrowing dependency to only the trigger value.
19
+ 3. **CSS layout regression**: Adding background/border/padding to `.selection-box-container` broke existing page layouts. Fix: keep original class minimal, only add styling to new namespaced classes (`.v-timeline-*`, `.v-searchbar-*`).
20
+
21
+ ### Deployment to EsoDev server:
22
+ - Copy `build/static/js/visualify.js` and `build/static/css/visualify.css` to server's `static/` dir
23
+ - Also copy chunk files (`visualify.chunk3.js`, `visualify.chunk4.js`)
24
+ - Server `index.html` should NOT load CDN `visualifyjs@2.x` — causes "Cannot use import statement outside module" error
25
+ - Paths must be relative (e.g., `static/js/visualify.js`) when deployed at subpath like `/EsoDev/`
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: Visualify dist IIFE Self-Contained Build Config
3
+ type: note
4
+ tags: [visualify, rollup, deployment, iife, dist, self-contained, potential-duplicate:2026-02-11-3d-visualization-docs-fix-session-summary]
5
+ created: 2026-02-19T21:45:39.214Z
6
+ updated: 2026-02-19T21:45:39.214Z
7
+ ---
8
+
9
+ ## Visualify dist/visualify.js — Fully Self-Contained IIFE
10
+
11
+ ### Rollup config change (2026-02-19):
12
+ - Changed `legacyConfig` and `docsStaticConfig` from ESM with all externals to **IIFE with minimal externals**
13
+ - Only `echarts-gl`, `three`, `@react-three/fiber`, `@react-three/drei`, `plotly.js` remain external
14
+ - Reason: `echarts-gl` has broken zrender imports that prevent bundling; `plotly.js` is ~3.5MB and causes OOM
15
+ - Three.js libs are rarely used and very large
16
+ - Everything else (React, echarts, Bootstrap, axios, lodash, react-router-dom, react-select, etc.) is bundled in
17
+ - Build requires `NODE_OPTIONS="--max-old-space-size=8192"` to avoid OOM
18
+ - Output: ~2.9MB minified IIFE, works with plain `<script>` tag
19
+ - CSS is injected via `styleInject` — no separate CSS file needed
20
+
21
+ ### Deployment pattern:
22
+ ```
23
+ server/
24
+ ├── dist/visualify.js ← single self-contained script
25
+ └── EsoDev/
26
+ ├── index.html ← <script src="../dist/visualify.js"></script>
27
+ ├── chromium.json
28
+ └── ...
29
+ ```
30
+ No CDN dependencies needed for standard 2D pages.