visualifyjs 2.5.3 → 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 -193
  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 -0
  63. package/docs/docs/_404.md +51 -51
  64. package/docs/docs/_coverpage.md +11 -11
  65. package/docs/docs/_sidebar.md +54 -43
  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 -123
  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 -1
  81. package/docs/docs/more-pages.md +23 -23
  82. package/docs/docs/quickstart.md +148 -119
  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 -579
  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 -143
  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
@@ -1,82 +1,171 @@
1
- # Echart Component
2
-
3
- The Echart component is a wrapper around the
4
- [Apache ECharts](https://echarts.apache.org/en/index.html) library. It is used
5
- to create a variety of visualizations including scatter plots, line charts, bar
6
- charts, and more.
7
-
8
- This Echart Component is same as the Rechart Component, but it is used for the
9
- page mode, which enable the user to create a page with multiple components. And
10
- it also **support the API to fetch the data**.
11
-
12
- ## Properties
13
-
14
- The Echart component has the following properties:
15
-
16
- - `type` (string): The type of the component, in this case `Echart`.
17
- - `id` (string): The unique identifier of the component.
18
- - `row` (int): The row in which the component is to be displayed.
19
- - `col` (int): The column in which the component is to be displayed.
20
- - `rowspan` (int): The number of rows the component is to span.
21
- - `colspan` (int): The number of columns the component is to span.
22
- - `config` (object): The configuration of the component.
23
- - `parser` (object): The parser of the component.
24
- - `trigger` (object): The trigger of the component.
25
-
26
- ### config Properties
27
-
28
- The `config` object has the following properties:
29
-
30
- - `width` (int): The width of the component.
31
- - `height` (int): The height of the component.
32
- - `preset` (string): The preset of the component.
33
- - `title` (string): The title of the component.
34
- - `xAxis` (string): The x-axis of the component.
35
- - `yAxis` (string): The y-axis of the component.
36
- - `legend` (string): The legend of the component.
37
- - `tooltip` (string): The tooltip of the component.
38
- - `data` (string): The data of the component.
39
-
40
- ### parser Properties
41
-
42
- The `parser` object has the following properties:
43
-
44
- - `sources` (array): The sources of the component.
45
- - `name` (string): The name of the trigger.
46
- - `url` (string): The URL of the data.
47
- - `type` (string): The type of the component.
48
- - `responseKey` (string): The response key of the component.
49
- - `trigger` (object): The trigger of the component.
50
- - `title` (boolean): set the title to the triiger value.
51
-
52
- ### Example
53
-
54
- ```json
55
- {
56
- "id": "mmtrbc_tsne",
57
- "type": "Echart",
58
- "col": 2,
59
- "rowspan": 3,
60
- "config": {
61
- "width": 600,
62
- "height": 600,
63
- "preset": "mmtrbc",
64
- "title": " "
65
- },
66
- "parser": {
67
- "sources": [{
68
- "name": "metadata",
69
- "url": "<your-backend-url>"
70
- }, {
71
- "name": "gene",
72
- "url": "<your-backend-url>",
73
- "responseKey": "gene",
74
- "trigger": {
75
- "name": "mmtrbc_gene",
76
- "title": true
77
- }
78
- }],
79
- "type": "scatter"
80
- }
81
- }
82
- ```
1
+ # Echart Component
2
+
3
+ The Echart component is a wrapper around the [Apache ECharts](https://echarts.apache.org/en/index.html) library. It provides the same charting capabilities as [Charts (2D)](/rechart-basic-usage.md) but is designed for **page mode**, enabling multi-component layouts with API data fetching.
4
+
5
+ ## Live Demo
6
+
7
+ The Echart component uses the same rendering engine as the standard charts. Here's a scatter plot example:
8
+
9
+ ```visualify
10
+ {
11
+ "type": "scatter",
12
+ "title": "Gene Expression Scatter Plot",
13
+ "data": {
14
+ "categories": [],
15
+ "series": [
16
+ {
17
+ "name": "Cluster A",
18
+ "data": [[10.0, 8.04], [8.0, 6.95], [13.0, 7.58], [9.0, 8.81], [11.0, 8.33], [14.0, 9.96], [6.0, 7.24], [4.0, 4.26], [12.0, 10.84], [7.0, 4.82], [5.0, 5.68]]
19
+ },
20
+ {
21
+ "name": "Cluster B",
22
+ "data": [[8.0, 3.04], [8.0, 3.95], [8.0, 4.58], [8.0, 3.81], [8.0, 4.33], [8.0, 3.96], [8.0, 4.24], [19.0, 12.5], [8.0, 3.26], [8.0, 3.84], [8.0, 3.68]]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ And a line chart with multiple series:
30
+
31
+ ```visualify
32
+ {
33
+ "type": "line",
34
+ "title": "Time-Series Expression Data",
35
+ "smooth": true,
36
+ "data": {
37
+ "categories": ["0h", "2h", "4h", "8h", "12h", "24h", "48h"],
38
+ "series": [
39
+ { "name": "Gene A", "data": [2.1, 3.5, 5.2, 8.1, 6.3, 4.2, 3.0] },
40
+ { "name": "Gene B", "data": [1.0, 1.2, 2.8, 7.5, 12.1, 9.8, 5.4] },
41
+ { "name": "Gene C", "data": [5.5, 5.0, 4.2, 3.1, 2.5, 2.0, 1.8] }
42
+ ]
43
+ },
44
+ "yAxis": { "name": "Expression Level" }
45
+ }
46
+ ```
47
+
48
+ ## How It Works
49
+
50
+ In page mode, the Echart component connects to **backend APIs** to fetch data dynamically. The data flow is:
51
+
52
+ ```
53
+ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐
54
+ │ visualify │────>│ Parser │────>│ ECharts │
55
+ │ .json │ │ (fetch + │ │ (render) │
56
+ │ config │ │ transform)│ │ │
57
+ └─────────────┘ └─────────────┘ └──────────────┘
58
+ │ │
59
+ │ parser.sources │ fetched_data
60
+ v v
61
+ ┌─────────────┐ ┌─────────────┐
62
+ │ Backend │────>│ Data │
63
+ │ API │ │ Transform │
64
+ └─────────────┘ └─────────────┘
65
+ ```
66
+
67
+ ## Properties
68
+
69
+ | Property | Type | Required | Description |
70
+ |----------|------|----------|-------------|
71
+ | `type` | string | Yes | Must be `"Echart"` |
72
+ | `id` | string | Yes | Unique identifier for the component |
73
+ | `row` | int | No | Grid row position |
74
+ | `col` | int | No | Grid column position |
75
+ | `rowspan` | int | No | Number of rows to span |
76
+ | `colspan` | int | No | Number of columns to span |
77
+ | `config` | object | Yes | Chart configuration (see below) |
78
+ | `parser` | object | No | Data fetching configuration |
79
+ | `trigger` | object | No | Event trigger configuration |
80
+
81
+ ### config Properties
82
+
83
+ | Property | Type | Description |
84
+ |----------|------|-------------|
85
+ | `width` | int | Chart width in pixels |
86
+ | `height` | int | Chart height in pixels |
87
+ | `preset` | string | Named preset configuration |
88
+ | `title` | string | Chart title |
89
+ | `xAxis` | string/array | X-axis configuration |
90
+ | `yAxis` | string/array | Y-axis configuration |
91
+ | `legend` | object | Legend configuration |
92
+ | `tooltip` | object | Tooltip configuration |
93
+ | `data` | object | Inline data (when not using parser) |
94
+
95
+ ### parser Properties
96
+
97
+ The `parser` object configures dynamic data fetching:
98
+
99
+ | Property | Type | Description |
100
+ |----------|------|-------------|
101
+ | `sources` | array | Array of data source configurations |
102
+ | `sources[].name` | string | Source identifier |
103
+ | `sources[].url` | string | Backend API URL |
104
+ | `sources[].type` | string | Chart type (e.g., `"scatter"`) |
105
+ | `sources[].responseKey` | string | Key to extract from API response |
106
+ | `sources[].trigger` | object | Trigger configuration for interactivity |
107
+ | `sources[].trigger.name` | string | Trigger name (links to other components) |
108
+ | `sources[].trigger.title` | boolean | Whether to update the chart title |
109
+
110
+ ## Example
111
+
112
+ ### Page Mode with API Data
113
+
114
+ ```json
115
+ {
116
+ "id": "expression_tsne",
117
+ "type": "Echart",
118
+ "col": 2,
119
+ "rowspan": 3,
120
+ "config": {
121
+ "width": 600,
122
+ "height": 600,
123
+ "preset": "mmtrbc",
124
+ "title": "t-SNE Visualization"
125
+ },
126
+ "parser": {
127
+ "sources": [
128
+ {
129
+ "name": "metadata",
130
+ "url": "https://your-api.com/metadata"
131
+ },
132
+ {
133
+ "name": "gene",
134
+ "url": "https://your-api.com/gene",
135
+ "responseKey": "gene",
136
+ "trigger": {
137
+ "name": "gene_search",
138
+ "title": true
139
+ }
140
+ }
141
+ ],
142
+ "type": "scatter"
143
+ }
144
+ }
145
+ ```
146
+
147
+ ### Static Data (No API)
148
+
149
+ ```json
150
+ {
151
+ "id": "static_chart",
152
+ "type": "Echart",
153
+ "row": 1,
154
+ "col": 1,
155
+ "config": {
156
+ "title": "Static Bar Chart",
157
+ "type": "bar",
158
+ "data": {
159
+ "Series A": [120, 200, 150, 80, 70],
160
+ "Series B": [60, 120, 90, 140, 130]
161
+ },
162
+ "xAxis": ["Mon", "Tue", "Wed", "Thu", "Fri"]
163
+ }
164
+ }
165
+ ```
166
+
167
+ ## See Also
168
+
169
+ - [Charts (2D)](/rechart-basic-usage.md) - Same engine, simpler usage for standalone charts
170
+ - [Configuration](/configuration.md) - How to set up page mode
171
+ - [MmTrBC Showcase](https://visualify.pharmacy.arizona.edu/MmTrBC/) - Live example using Echart components
@@ -1,34 +1,61 @@
1
- # HTML Component
2
-
3
- The HTML component is used to display HTML content on the page.
4
-
5
- ## Properties
6
-
7
- The HTML component has the following properties:
8
-
9
- - `type` (string): The type of the component, in this case `HTML`.
10
- - `id` (string): The unique identifier of the component.
11
- - `row` (int): The row in which the component is to be displayed.
12
- - `col` (int): The column in which the component is to be displayed.
13
- - `colspan` (int): The number of columns the component is to span.
14
- - `html` (string): The HTML content to be displayed.
15
-
16
- ## Future Work
17
-
18
- We will add the ability to fetch the HTML content from an API.
19
-
20
- - `script` (string): The script to be executed.
21
- - `style` (string): The style to be applied.
22
-
23
- ### Example
24
-
25
- ```json
26
- {
27
- "type": "HTML",
28
- "row": 1,
29
- "col": 2,
30
- "colspan": 3,
31
- "html": "<img style='width: 100%' src='./mainpage.png' alt='Abstract'>"
32
- }
33
- ```
34
-
1
+ # HTML Component
2
+
3
+ The HTML component renders raw HTML content within a page mode layout. Use it for custom content like images, iframes, embedded widgets, or any HTML that doesn't fit into other component types.
4
+
5
+ ## Properties
6
+
7
+ | Property | Type | Required | Description |
8
+ |----------|------|----------|-------------|
9
+ | `type` | string | Yes | Must be `"HTML"`. |
10
+ | `id` | string | No | Unique identifier for the component. |
11
+ | `row` | int | Yes | The row in which the component is displayed. |
12
+ | `col` | int | Yes | The column in which the component is displayed. |
13
+ | `colspan` | int | No | The number of columns the component spans. |
14
+ | `html` | string | Yes | The HTML content to render. |
15
+
16
+ ## Examples
17
+
18
+ ### Displaying an Image
19
+
20
+ ```json
21
+ {
22
+ "type": "HTML",
23
+ "row": 1,
24
+ "col": 2,
25
+ "colspan": 3,
26
+ "html": "<img style='width: 100%' src='./mainpage.png' alt='Abstract'>"
27
+ }
28
+ ```
29
+
30
+ ### Embedding an Iframe
31
+
32
+ ```json
33
+ {
34
+ "type": "HTML",
35
+ "row": 2,
36
+ "col": 1,
37
+ "colspan": 4,
38
+ "html": "<iframe src='https://example.com/embed' style='width: 100%; height: 400px; border: none;'></iframe>"
39
+ }
40
+ ```
41
+
42
+ ### Styled Content Block
43
+
44
+ ```json
45
+ {
46
+ "type": "HTML",
47
+ "id": "welcome-banner",
48
+ "row": 1,
49
+ "col": 1,
50
+ "colspan": 4,
51
+ "html": "<div style='padding: 20px; background: #f0f4f8; border-radius: 8px;'><h2>Welcome</h2><p>This dashboard displays gene expression data.</p></div>"
52
+ }
53
+ ```
54
+
55
+ ## Future Work
56
+
57
+ The following properties are planned for future releases:
58
+
59
+ - `script` (string) -- Inline JavaScript to execute within the component context.
60
+ - `style` (string) -- CSS styles to apply to the component container.
61
+ - Support for fetching HTML content from an external API endpoint.