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.
- package/.claude/mem/TIMELINE.md +36 -0
- package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-external-script-solution.md +24 -0
- package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-session-summary.md +43 -0
- package/.claude/mem/notes/2026-02-11-cli-fix-editor-command-alias.md +26 -0
- package/.claude/mem/notes/2026-02-11-phase-3-developer-experience-completed.md +51 -0
- package/.claude/mem/notes/2026-02-11-phase-4-web-workers-implementation-complete.md +59 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-2-3d-visualization-complete.md +50 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-2-committed-ready-for-phase-3.md +33 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-3-complete-developer-experience.md +52 -0
- package/.claude/mem/notes/2026-02-11-visualify-repository-cleanup-complete.md +28 -0
- package/.claude/mem/notes/2026-02-18-codebase-cleanup-docsify-plugin-documentation.md +37 -0
- package/.claude/mem/notes/2026-02-19-css-grid-layout-fix-displaycontents-on-vcontroller.md +18 -0
- package/.claude/mem/notes/2026-02-19-docsify-plugin-fixes-latex-and-visualify-code-bloc.md +26 -0
- package/.claude/mem/notes/2026-02-19-page-mode-docs-update-decisions.md +23 -0
- package/.claude/mem/notes/2026-02-19-react-context-infinite-re-render-loop-fix-pattern.md +31 -0
- package/.claude/mem/notes/2026-02-19-version-300-bump-and-build-fixes.md +32 -0
- package/.claude/mem/notes/2026-02-19-visualify-build-deployment-architecture-bug-fixes.md +25 -0
- package/.claude/mem/notes/2026-02-19-visualify-dist-iife-self-contained-build-config.md +30 -0
- package/.claude/mem/notes/2026-02-19-visualify-infinite-loop-i18n-fixes.md +31 -0
- package/.claude/mem/notes/2026-02-19-visualify-v3-bundle-splitting-docs-restructuring.md +32 -0
- package/.claude/mem/notes/2026-02-20-bundle-externalization-final-architecture.md +29 -0
- package/.claude/mem/notes/2026-02-20-chromium-page-fix-unstable-keys-and-double-event-b.md +27 -0
- package/.claude/mem/notes/2026-02-20-console-cleanup-bundle-optimization-commit.md +20 -0
- package/.claude/mem/notes/2026-02-20-dotbio-dot-plot-fix-useeffect-dependency.md +21 -0
- package/.claude/mem/notes/2026-02-20-public-folder-cleanup-and-readme-rewrite.md +25 -0
- package/.claude/mem/notes/2026-02-20-v300-release-and-beta-channel-strategy.md +29 -0
- package/.claude/mem/notes/2026-02-20-visium-background-image-unknown-legend-fix.md +19 -0
- package/.claude/mem/notes/2026-02-20-visualify-cdn-loader-bundle-externalization.md +34 -0
- package/.claude/mem/sessions/session-2026-02-20-031524.md +54 -0
- package/.claude/settings.local.json +21 -0
- package/.github/workflows/static.yml.bak +51 -51
- package/.sisyphus/boulder.json +65 -0
- package/.sisyphus/plans/phase-4-advanced-optimizations.md +217 -0
- package/LICENSE +674 -674
- package/README.md +94 -59
- package/config-overrides.js +31 -31
- package/dist/stats.html +4949 -0
- package/dist/visualify-3d.esm.js +1 -0
- package/dist/visualify-3d.js +1 -0
- package/dist/visualify-core.esm.js +1 -0
- package/dist/visualify-core.js +1 -0
- package/dist/visualify-docs.esm.js +1 -0
- package/dist/visualify-docs.js +1 -0
- package/dist/visualify-loader.js +1 -0
- package/dist/visualify-pages.esm.js +1 -0
- package/dist/visualify-pages.js +1 -0
- package/dist/visualify-portal.esm.js +1 -0
- package/dist/visualify-portal.js +1 -0
- package/dist/visualify-shared.js +26571 -0
- package/dist/visualify.js +1 -188
- package/docs/CHANGELOG.md +148 -0
- package/docs/cli/commands.md +513 -0
- package/docs/configuration/visualify-json.md +474 -0
- package/docs/docs/3d-visualization.md +374 -0
- package/docs/docs/CLI.md +303 -34
- package/docs/docs/README.md +65 -65
- package/docs/docs/Rechart/bar.md +190 -190
- package/docs/docs/Rechart/funnel.md +241 -241
- package/docs/docs/Rechart/line.md +355 -355
- package/docs/docs/Rechart/pie.md +225 -225
- package/docs/docs/Rechart/radar.md +253 -253
- package/docs/docs/Rechart/scatter.md +298 -298
- package/docs/docs/_404.md +51 -51
- package/docs/docs/_coverpage.md +11 -11
- package/docs/docs/_sidebar.md +54 -44
- package/docs/docs/components/dotBio.md +87 -34
- package/docs/docs/components/echart.md +171 -82
- package/docs/docs/components/html.md +61 -34
- package/docs/docs/components/macaron.md +156 -145
- package/docs/docs/components/markdown.md +42 -0
- package/docs/docs/components/more.md +183 -142
- package/docs/docs/components/plotly.md +132 -62
- package/docs/docs/components/scatterL.md +171 -70
- package/docs/docs/components/visium.md +112 -57
- package/docs/docs/configuration.md +121 -121
- package/docs/docs/deploy.md +31 -31
- package/docs/docs/docsify-plugin.md +655 -0
- package/docs/docs/hmr.md +165 -0
- package/docs/docs/i18n.md +332 -0
- package/docs/docs/log.md +30 -9
- package/docs/docs/more-pages.md +23 -23
- package/docs/docs/quickstart.md +148 -124
- package/docs/docs/rechart-attributes.md +74 -74
- package/docs/docs/rechart-basic-usage.md +160 -162
- package/docs/docs/theme.md +5 -5
- package/docs/docs/typescript.md +306 -0
- package/docs/docs/visual-editor.md +359 -0
- package/docs/index.html +85 -71
- package/docs/manifest.json +23 -23
- package/docs/migration/v3-migration.md +392 -0
- package/docs/static/css/fluff-stuff.css +169 -169
- package/docs/static/css/font-awesome.min.css +4 -4
- package/docs/static/css/visualify.css +6 -25
- package/docs/static/js/3d-viz-examples.js +181 -0
- package/docs/static/js/configuration.js +630 -448
- package/docs/static/js/visualify.js +1 -188
- package/package.json +106 -84
- package/rollup.config.mjs +766 -76
- package/src/_css/404.css +115 -115
- package/src/_css/App.css +37 -37
- package/src/_css/autoSuggestion.css +26 -26
- package/src/_css/circular-progress.css +32 -32
- package/src/_css/index.css +36 -36
- package/src/_css/modern.css +350 -25
- package/src/_media/corner.svg +8 -8
- package/src/_media/download.svg +3 -3
- package/src/_media/logo.svg +14 -14
- package/src/_test/App.test.js +15 -15
- package/src/_utils/reportWebVitals.js +13 -13
- package/src/a11y/README.md +177 -0
- package/src/a11y/aria-labels.js +339 -0
- package/src/a11y/color-contrast.js +535 -0
- package/src/a11y/index.js +197 -0
- package/src/a11y/keyboard-nav.js +523 -0
- package/src/a11y/styles.css +165 -0
- package/src/cli/commands/dev.js +214 -0
- package/src/cli/commands/docs.js +521 -0
- package/src/cli/commands/edit.js +379 -0
- package/src/cli/commands/init.js +213 -0
- package/src/cli/commands/portal.js +236 -0
- package/src/cli/dev-server.js +530 -0
- package/src/cli/hmr.js +456 -0
- package/src/cli/index.js +180 -0
- package/src/cli/utils/config.js +207 -0
- package/src/cli/utils/logger.js +241 -0
- package/src/config/defaults.ts +122 -0
- package/src/config/index.ts +72 -0
- package/src/config/loader.ts +478 -0
- package/src/config/schema.ts +227 -0
- package/src/config/validator.ts +337 -0
- package/src/core/appContext.js +34 -27
- package/src/core/components/Bar.js +383 -0
- package/src/core/components/Bar3D.js +473 -0
- package/src/core/components/LargeDatasetChart.js +296 -0
- package/src/core/components/Line3D.js +310 -0
- package/src/core/components/Scatter.js +392 -188
- package/src/core/components/Scatter3D.js +455 -0
- package/src/core/components/ScatterBio.js +601 -572
- package/src/core/components/Surface3D.js +326 -0
- package/src/core/components/ThreeCustom.js +648 -0
- package/src/core/components/ThreeScene.js +459 -0
- package/src/core/components/VisiumPlot.js +191 -165
- package/src/core/components/browser.js +42 -42
- package/src/core/components/dotplot.js +413 -413
- package/src/core/components/html.js +29 -29
- package/src/core/components/list.js +178 -178
- package/src/core/components/macaron.js +206 -201
- package/src/core/components/markdown.js +56 -56
- package/src/core/components/parser.scatterBio.js +582 -587
- package/src/core/components/ratio.js +82 -80
- package/src/core/components/scatterL.js +206 -173
- package/src/core/components/searchbar.js +156 -131
- package/src/core/components/selection.js +310 -193
- package/src/core/components/timeline.js +236 -281
- package/src/core/components/visium.js +114 -97
- package/src/core/data-processor.js +413 -0
- package/src/core/fetch/condfetch.js +82 -82
- package/src/core/fetch/fetch.js +92 -92
- package/src/core/fetch/json.js +29 -29
- package/src/core/fetch/vfetch.js +42 -42
- package/src/core/hmr-client.js +724 -0
- package/src/core/liveEditor.js +44 -44
- package/src/core/modules/codeEditorWithPreview.js +104 -104
- package/src/core/modules/echarts/common.js +20 -20
- package/src/core/modules/echarts/gl.js +228 -0
- package/src/core/modules/echarts/presetHandler.js +41 -41
- package/src/core/modules/echarts/presets/esodev.chromium.js +172 -172
- package/src/core/modules/echarts/presets/esodev.codex.js +130 -130
- package/src/core/modules/echarts/presets/esodev.visium.js +123 -123
- package/src/core/modules/echarts/presets/mmtrbc.js +186 -186
- package/src/core/modules/echarts.js +70 -71
- package/src/core/modules/echartsUtils.js +43 -43
- package/src/core/modules/echartswitcher.js +227 -152
- package/src/core/modules/replotly/presetHandler.js +24 -24
- package/src/core/modules/replotly/presets/minimum.js +18 -18
- package/src/core/modules/replotly/presets/mmtrbc.dot.js +114 -114
- package/src/core/modules/replotly/presets/mmtrbc.violin.js +100 -100
- package/src/core/modules/replotly.js +74 -71
- package/src/core/modules/threejs/Camera.js +373 -0
- package/src/core/modules/threejs/Lighting.js +459 -0
- package/src/core/modules/threejs/Renderer.js +364 -0
- package/src/core/modules/threejs/Scene.js +266 -0
- package/src/core/modules/threejs/index.js +155 -0
- package/src/core/pages/404.js +50 -50
- package/src/core/pages/error.js +27 -27
- package/src/core/pages/jsonPage.js +62 -62
- package/src/core/pages/loading.js +44 -44
- package/src/core/parser/echart.data.js +204 -183
- package/src/core/parser/echart.features.js +125 -125
- package/src/core/parser/echart.general.js +147 -147
- package/src/core/parser/echart.hilbert.js +57 -57
- package/src/core/parser/echart.parser.js +210 -210
- package/src/core/parser/echart.series.js +67 -67
- package/src/core/parser/echart.types.js +76 -76
- package/src/core/parser/plotly.config.js +10 -10
- package/src/core/parser/plotly.data.js +132 -132
- package/src/core/parser/plotly.layout.js +9 -9
- package/src/core/parser/plotly.violin.js +18 -18
- package/src/core/recharts.js +361 -62
- package/src/core/router/alias.js +49 -49
- package/src/core/router/jsonRouter.js +31 -31
- package/src/core/themes/modern.js +32 -32
- package/src/core/themes/themeSelector.js +33 -33
- package/src/core/visualify.js +213 -47
- package/src/core/widgets/circularProgress.js +23 -23
- package/src/core/widgets/controller.js +116 -83
- package/src/core/widgets/errorBoundary.js +36 -36
- package/src/core/widgets/footer.js +185 -177
- package/src/core/widgets/header.js +238 -234
- package/src/core/widgets/layout/Grid.js +31 -31
- package/src/core/widgets/layout.js +36 -36
- package/src/core/widgets/mapping.js +56 -42
- package/src/core/workers/data-worker.js +349 -0
- package/src/core/workers/worker-pool.js +396 -0
- package/src/docsify/bundle.js +215 -0
- package/src/docsify/markdown.js +271 -0
- package/src/docsify/plugin.js +268 -0
- package/src/editor/README.md +172 -0
- package/src/editor/components/ChartBuilder.jsx +341 -0
- package/src/editor/components/ChartTypeSidebar.jsx +91 -0
- package/src/editor/components/Editor.jsx +367 -0
- package/src/editor/components/Preview.jsx +446 -0
- package/src/editor/components/PropertyPanel.jsx +468 -0
- package/src/editor/components/StatusBar.jsx +85 -0
- package/src/editor/context/EditorContext.js +248 -0
- package/src/editor/hooks/useDebounce.js +32 -0
- package/src/editor/index.js +315 -0
- package/src/editor/styles/editor.css +637 -0
- package/src/editor/utils/chartValidator.js +263 -0
- package/src/entries/charts3d.js +70 -0
- package/src/entries/core.js +78 -0
- package/src/entries/docs.js +154 -0
- package/src/entries/pages.js +93 -0
- package/src/entries/portal.js +204 -0
- package/src/entries/shared.js +50 -0
- package/src/i18n/formatters.js +455 -0
- package/src/i18n/index.js +169 -0
- package/src/i18n/locales/ar.json +137 -0
- package/src/i18n/locales/de.json +137 -0
- package/src/i18n/locales/en.json +137 -0
- package/src/i18n/locales/es.json +137 -0
- package/src/i18n/locales/he.json +137 -0
- package/src/i18n/locales/zh.json +137 -0
- package/src/i18n/rtl.css +183 -0
- package/src/index.js +82 -62
- package/src/loader.js +103 -0
- package/src/setupTests.js +5 -5
- package/tsconfig.json +51 -0
- package/types/charts.d.ts +569 -0
- package/types/components.d.ts +441 -0
- package/types/config.d.ts +199 -0
- 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.
|