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
@@ -0,0 +1 @@
1
+ import e,{forwardRef as t,useRef as r,useEffect as n,useState as a,useMemo as o,createContext as i,useContext as s,useCallback as l,isValidElement as c}from"react";import{createRoot as d}from"react-dom/client";import u from"echarts-for-react";import f,{isEmpty as p}from"lodash";import g from"hilbert";import m from"react-ace";const h={type:"scatter"},y=["scatter","scatter3d","line","bar","pie","heatmap","violin","dotplot","hilbert","visium"];function x(e){if(!e||"object"!=typeof e)return console.warn("[VisualifyDocs] Invalid config, using defaults"),{...h};const t={...h,...e};return t.type&&!y.includes(t.type)&&(console.warn(`[VisualifyDocs] Unknown chart type "${t.type}", defaulting to "scatter"`),t.type="scatter"),t.data||t.src||console.warn("[VisualifyDocs] No data or src provided, chart may fail to render"),t}function b(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"unknown";try{return JSON.parse(e)}catch(e){return console.warn(`[VisualifyDocs] JSON parse error in ${t}:`,e.message),null}}function v(){return`visualify-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function _(e,t){const r=JSON.stringify(t).replace(/"/g,"&quot;"),{type:n="scatter"}=t;return`<div class="visualify-chart-wrapper" data-visualify-type="${n}"><div id="${e}" class="visualify-chart-container" data-visualify="${r}" style="width: 100%; min-height: 400px;"></div></div>`}function w(e){return`<div class="visualify-error" style="padding: 16px; border: 1px solid #ff4d4f; border-radius: 4px; background: #fff2f0; color: #cf1322; margin: 16px 0;"><strong>Visualify Error:</strong> ${function(e){const t="undefined"!=typeof document?document.createElement("div"):null;if(t)return t.textContent=e,t.innerHTML;return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}(e)}</div>`}function A(e){if(!e||"string"!=typeof e)return w("Empty visualify code block");const t=e.trim();if(!t)return w("Empty visualify code block");const r=b(t,"markdown processor");return r?r.src?function(e){return _(v(),e)}(r):function(e){const t=b(e,"inline config");if(!t)return w("Invalid JSON in visualify code block");const r=x(t);return _(v(),r)}(t):w("Invalid JSON in visualify code block. Ensure your configuration is valid JSON.")}function k(e){if(!e||"string"!=typeof e)return e;return e.replace(/```visualify\n([\s\S]*?)```/g,((e,t)=>A(t)))}const E=new WeakMap;let T=null,S=null;async function C(){return T||(S||(S=Promise.resolve().then((function(){return _t})).then((e=>(T={Recharts:e.default},T))).catch((e=>{throw console.error("[VisualifyDocs] Failed to load Visualify components:",e),e})),S))}async function I(e,t){if("true"!==e.dataset.visualifyMounted)try{const r=t||JSON.parse(e.dataset.visualify||"{}");if(r.src){const e=await fetch(r.src);if(!e.ok)throw new Error(`Failed to fetch ${r.src}: ${e.statusText}`);const t=await e.json();Object.assign(r,t),delete r.src}const{Recharts:n}=await C(),a=new n(r);a.mount(e),E.set(e,a),e.dataset.visualifyMounted="true",e.dataset.visualify=JSON.stringify(r)}catch(t){console.error("[VisualifyDocs] Failed to mount chart:",t),e.innerHTML=`<div style="\n\t\t\tpadding: 16px;\n\t\t\tborder: 1px solid #ff4d4f;\n\t\t\tborder-radius: 4px;\n\t\t\tbackground: #fff2f0;\n\t\t\tcolor: #cf1322;\n\t\t">\n\t\t\t<strong>Visualify Error:</strong> ${t.message}\n\t\t</div>`}}async function M(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:document).querySelectorAll('[data-visualify]:not([data-visualify-mounted="true"])');if(0===e.length)return;await C();const t=Array.from(e).map((e=>I(e)));await Promise.all(t)}function $(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:document).querySelectorAll("[data-visualify]").forEach((e=>{const t=E.get(e);t&&"function"==typeof t.dispose&&t.dispose(),E.delete(e),e.dataset.visualifyMounted="false"}))}function D(e,t){e.init((function(){if(window.$docsify&&window.$docsify.markdown){const e=window.$docsify.markdown.renderer;window.$docsify.markdown.renderer={...e,code:function(t,r){return"visualify"===r?A(t):e&&e.code?e.code.call(this,t,r):`<pre><code class="lang-${r}">${t}</code></pre>`}}}})),e.beforeEach((function(e){return function(e){return/```visualify\n/.test(e)}(e)&&C().catch((()=>{})),e})),e.afterEach((function(e,t){t(e)})),e.mounted((function(){M()})),e.doneEach((function(){M()})),e.destroyed((function(){$()}))}const L={install:D,mountChart:I,mountAllCharts:M,cleanupCharts:$,loadVisualifyComponents:C,isMounted:e=>"true"===e.dataset.visualifyMounted,getChart:e=>E.get(e)||null,version:"3.0.0-1.dev"};function F(){return F=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},F.apply(null,arguments)}"undefined"!=typeof window&&window.$docsify&&(window.$docsify.plugins=[].concat(window.$docsify.plugins||[],D));const R=t(((t,a)=>{let{options:o,style:i,onEvents:s={}}=t;const l=r(null),c=a||l;return n((()=>{if(c.current){const e=c.current.getEchartsInstance();e.setOption({...o,silent:!0}),JSON.stringify(o)!==JSON.stringify(e.getOption())&&(e.clear(),e.setOption(o)),Object.keys(s).forEach((t=>{e.off(t),e.on(t,s[t])}));const t=new ResizeObserver((()=>{e.resize()})),r=e.getDom().parentElement;return r&&t.observe(r),()=>{t.disconnect(),e.isDisposed()||(e.off(),e.dispose())}}}),[o,c,s]),e.createElement(u,{ref:c,option:o,style:i})}));function O(t){let{message:r,style:n}=t;return e.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"red",...n}},e.createElement("p",null,r))}function z(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var N={exports:{}};function B(){}function P(){}P.resetWarningCache=B;N.exports=function(){function e(e,t,r,n,a,o){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==o){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:P,resetWarningCache:B};return r.PropTypes=r,r}();var j=z(N.exports);function U(t){let{color:r}=t;return e.createElement("div",{className:"circular-progress"},e.createElement("div",{className:`spinner ${r}`}))}function W(t){let{message:r,style:n,msgStyle:a,ProgressColor:o="primary",error:i=!1}=t;return e.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",...n}},e.createElement(U,{color:o}),e.createElement("div",{style:{marginTop:"10px",...a}},i?e.createElement(O,{message:r,style:a}):e.createElement("p",null,r)))}function H(e,t,r,n){let a=q(t[r],n);r in t&&a&&(e[r]=a)}function q(e,t){return Array.isArray(e)?e[Math.min(t,e.length-1)]:e}function G(e,t){let r=Math.min(t,e.length-1);return Array.isArray(e)&&Array.isArray(e[r])?e[r]:Array.isArray(e)?e:q(e,t)}!function(e,t){void 0===t&&(t={});var r=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===r&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}(".circular-progress{align-items:center;display:flex;justify-content:center}.spinner{animation:spin 1s linear infinite;border:4px solid #0000001a;border-left-color:#333;border-radius:50%;height:30px;width:30px}.spinner.primary{border-left-color:#1976d2}.spinner.secondary{border-left-color:#f50057}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}"),U.propTypes={color:j.oneOf(["primary","secondary"])};function V(e,t){const r={};let n=[],a=Array.isArray(e)&&t<e.length?e[t]:e;return n=(e=>{let t=[];const r=(e,r)=>{Array.isArray(e)?e.forEach((e=>t.push([{[r]:e.start,name:e.name},{[r]:e.end}]))):t.push([{[r]:e.start,name:e.name},{[r]:e.end}])};return e.xAxis&&r(e.xAxis,"xAxis"),e.yAxis&&r(e.yAxis,"yAxis"),t})(a),r.data=n,Object.keys(a).forEach((e=>{"data"===e?r[e]=r[e].concat(a[e]):"xAxis"!==e&&"yAxis"!==e&&(r[e]=a[e])})),r}function Y(e,t){const r={};let n=Array.isArray(e)&&t<e.length?e[t]:e;return r.emphasis={lineStyle:{width:5,type:"solid"}},r.blur={lineStyle:{opacity:.5}},r.lineStyle={type:"dashed",width:3},Object.keys(n).forEach((e=>{r[e]=n[e]})),r}const X=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={...t,yAxis:{...t.yAxis},xAxis:{...t.xAxis},legend:{...t.legend},title:{...t.title},tooltip:{...t.tooltip},series:[]};let n=e.percentage?new Array(e.xAxis.length).fill(0):[];if(e.percentage&&e.data&&Object.entries(e.data).forEach((e=>{let[t,r]=e;r.forEach(((e,t)=>{n[t]+=e}))})),e.data&&"object"==typeof e.data){const t=e.data.series&&Array.isArray(e.data.series);t&&e.data.categories&&(r.xAxis={...r.xAxis,data:e.data.categories});const a=t?e.data.series.map(((e,t)=>[e.name||`Series ${t+1}`,e.data||[],e])):Object.entries(e.data).map((e=>{let[t,r]=e;return[t,r,null]}));r.series=a.map(((t,r)=>{let[a,o,i]=t;const{name:s,data:l,...c}=i||{};let d={name:a,type:q(e.type,r),data:o,...c,...e.markArea&&{markArea:V(e.markArea,r)},...e.markLine&&{markLine:Y(e.markLine,r)},...e.symbol&&{symbol:q(e.symbol,r)},...e.symbolSize&&{symbolSize:q(e.symbolSize,r)},...e.stack&&{stack:e.stack.includes(a)?"total":q(e.stack,r)},...e.emphasis&&{emphasis:q(e.emphasis,r)}};return!e.percentage||"bar"!==e.type&&"line"!==e.type||(d.data=d.data.map(((e,t)=>e/n[t]*100)),d.stack="total"),e.waterfall&&("Placeholder"!==a&&a!==e.waterfall||(d.itemStyle={borderColor:"transparent",color:"transparent"},d={...d,emphasis:{...d?.emphasis,itemStyle:{borderColor:"transparent",color:"transparent"}}})),function(e,t){(e.valley||e.peak)&&(t.markPoint={},t.markPoint.data=[],e.peak&&t.markPoint.data.push({type:"max",name:"Max",label:{formatter:"string"==typeof e.peak?e.peak:"Max"}}),e.valley&&t.markPoint.data.push({type:"min",name:"Min",label:{formatter:"string"==typeof e.valley?e.valley:"Min"}}))}(e,d),function(e,t,r){H(t,e,"label",r),H(t,e,"labelLine",r),H(t,e,"itemStyle",r),H(t,e,"emphasis",r),"line"===t.type?(H(t,e,"smooth",r),H(t,e,"step",r),H(t,e,"areaStyle",r)):"pie"===t.type?(H(t,e,"selectedMode",r),H(t,e,"roseType",r),"center"in e&&(t.center=G(e.center,r)),"radius"in e&&(t.radius=G(e.radius,r))):"radar"===t.type?"radar"in e&&Array.isArray(e.radar)&&(t.radarIndex=r):"funnel"===t.type&&(t.top=q(e.top,r)??60,t.bottom=q(e.bottom,r)??60,t.left=q(e.left,r)??"10%",H(t,e,"right",r),t.width=q(e.width,r)??"80%",H(t,e,"height",r),t.min=q(e.min,r)??0,t.max=q(e.max,r)??100,t.minSize=q(e.minSize,r)??"0%",t.maxSize=q(e.maxSize,r)??"100%",t.sort=q(e.sort,r)??"descending",t.gap=q(e.gap,r)??0,t.funnelAlign=q(e.funnelAlign,r)??"center",H(t,e,"z",r))}(e,d,r),d}))}return(Array.isArray(e.type)&&e.type.includes("radar")||"radar"===e.type)&&(r.radar=e.radar),e.percentage&&(r.yAxis={...r.yAxis,axisLabel:{formatter:"{value}%"},max:100},r.tooltip={trigger:"axis",formatter:Z}),(e.markArea||e.markLine)&&(r.tooltip={trigger:"axis",axisPointer:{type:"cross"}}),e.waterfall&&(r.legend={...r.legend,data:r.series.map((e=>e.name)).filter((e=>"Placeholder"!==e))},r.xAxis={...r.xAxis,splitLine:{show:!1}},r.tooltip={trigger:"axis",axisPointer:{type:"shadow"},formatter:function(e){var t=e[1];return t.name+"<br/>"+t.marker+t.seriesName+" : "+t.value}}),r};function Z(e){let t=e.reduce(((e,t)=>e+t.value),0),r=e.map((e=>{let r=(e.value/t*100).toFixed(2);return`${e.marker}${e.seriesName}: ${r}%`})).join("<br/>");return`${e[0].axisValueLabel}<br/>${r}`}const J=async(e,t="GET",r=null,n={},a=!1)=>{let o={method:t,headers:{"Content-Type":"application/json",...n},mode:a?"cors":"same-origin"};"POST"===t&&r&&(o.body=JSON.stringify(r));try{const t=await fetch(e,o);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return await t.json()}catch(e){throw console.error("Fetch API Error:",e),e}},K=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;const{sources:n}=e;let a={};const o=async e=>{let n=await async function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;const{name:o,method:i="GET",url:s,responseKey:l,mapping:c=n?.api_mapping??{},trigger:d}=e;if(!o)throw new Error("name is required for api sources");if(!s)throw new Error("url is required for api sources");if(Array.isArray(d)){const e=d.map((e=>{const n=t[e.name]||t[e];return e.title&&r&&(r.text=n),null==n||""===n||p(n)?null:c?.[n]||n}));if(e.some((e=>null===e)))return null;let n=s;e.forEach((e=>{n=n.replace("{trigger}",e)}));const o=await J(n,i,a,{},!0);return l?o[l]:o}if(!d){const e=await J(s,i,null,{},!0);return l?e[l]:e}{const e=t[d.name]||t[d];if(null!=e&&""!==e&&!p(e)){d.title&&r&&(r.text=e);const t=c?.[e]||e,n=s.replace("{trigger}",t),a=await J(n,i,null,{},!0);return l?a[l]:a}}}(e,r,t.title,t.visualify);n&&(a[e.name]=n)};if(Array.isArray(n)?await Promise.all(n.map(o)):"object"==typeof n&&await o(n),p(a))throw new Error(e?.startup_msg??"No data fetched from api");return a},Q=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{seriesBy:n=r?.seriesBy??null,mapping:a=r?.mapping??{},exclude:o=r?.exclude??[],symbol:i=r?.symbol??null,symbolSize:s=r?.symbolSize??null,merger:l=r?.merger??null,filter:c=r?.filter??null}=t,{x:d="x",y:u="y",z:f="z",extra:p=[]}=a,g={};for(const[r,c]of Object.entries(e)){if(!c)return Object.values(g);if(c&&l&&l[r])Object.values(g).forEach((e=>{e.data.forEach((e=>{if(l[r].item in e){let t=e[l[r].item],n=c[t];l[r].label&&(e[l[r].label]=n),l[r].visualMap&&e.value.push(n)}}))}));else{const e=n??Object.keys(c)[0];if(void 0===c[e]||void 0===c)continue;c[e].forEach(((e,r)=>{if(o&&o.includes(e))return;const n={};for(const e in a.extra)c[p[e]]&&(n[e]=c[p[e]][r]);if(!c[d]||!c[u]||!t.type)return;const l=c[f]?[c[d][r],c[u][r],c[f][r]]:[c[d][r],c[u][r]];g[e]||(g[e]={name:e,type:t.type,data:[]},i&&(g[e].symbol=i),s&&(g[e].symbolSize=s)),g[e].data.push({value:l,...n})}))}}let m=Object.values(g);if(c)for(let e of Object.keys(c)){const t=c[e];m=m.map((r=>{const n=r.data.filter((r=>{try{const n=r[e];if(null==n)return!0;const a=t.match(/([><]=?)\s*(-?\d+)/);if(!a)throw new Error("Invalid filter expression for filter");const o=a[1];return ee(n,o,parseInt(a[2]))}catch(e){return console.warn("error in filter",e),!1}}));return{...r,data:n}}))}return m};function ee(e,t,r){switch(t){case"<":return e<r;case"<=":return e<=r;case">":return e>r;case">=":return e>=r;case"=":return e===r;default:throw new Error("Invalid operator in filter expression")}}const te={title:{},tooltip:{},legend:{top:25},xAxis:{},yAxis:{},series:[]},re={mmtrbc:{title:{text:"MmTrBC Preset",textStyle:{fontFamily:"Arial, sans-serif",fontSize:24,color:"black",margin:"0 0 20px 0"},left:"center",top:0},tooltip:{trigger:"item",axisPointer:{type:"cross"},formatter:e=>{let t=e.data.value[2],r=t?Math.round(1e4*t)/1e4:0;return` ${e.data.Cell_ID} <br/> \n\t\t\t\t\tType: ${e.seriesName} <br/> \n\t\t\t\t\tUMI: ${e.data.UMI??"not found"} <br/>\n\t\t\t\t\tFMT: ${function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return Math.round(e*Math.pow(10,t))/Math.pow(10,t)}(e.data.Frac_MT,5)??"not found"} <br/>\n\t\t\t\t\t${void 0!==t?"Expression: "+r:""} `}},legend:{top:30,textStyle:{fontFamily:"Arial, sans-serif",fontSize:18},type:"scroll",orient:"horizontal",right:"center",width:"80%"},xAxis:{name:"TSNE-2",type:"value",axisLabel:!1,nameGap:10,nameLocation:"middle",axisTick:!1,splitLine:!1,nameTextStyle:{fontSize:"18",fontWeight:"bold"}},yAxis:{name:"TSNE-1",type:"value",axisLabel:!1,nameGap:10,nameLocation:"middle",axisTick:!1,splitLine:!1,nameTextStyle:{fontSize:"18",fontWeight:"bold"}},series:[],grid:{containLabel:!0,left:"5%",right:"13%",top:"13%",bottom:"13%"},toolbox:{feature:{saveAsImage:{show:!0,icon:"path://M30 20.75c-0.69 0.001-1.249 0.56-1.25 1.25v6.75h-25.5v-6.75c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 8c0 0.69 0.56 1.25 1.25 1.25h28c0.69-0.001 1.249-0.56 1.25-1.25v-8c-0.001-0.69-0.56-1.249-1.25-1.25h-0zM15.116 24.885c0.012 0.012 0.029 0.016 0.041 0.027 0.103 0.099 0.223 0.18 0.356 0.239l0.008 0.003 0.001 0c0.141 0.060 0.306 0.095 0.478 0.095 0.345 0 0.657-0.139 0.883-0.365l5.001-5c0.226-0.226 0.366-0.539 0.366-0.884 0-0.691-0.56-1.251-1.251-1.251-0.345 0-0.658 0.14-0.884 0.366l-2.865 2.867v-18.982c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 18.981l-2.866-2.866c-0.226-0.226-0.539-0.366-0.884-0.366-0.691 0-1.251 0.56-1.251 1.251 0 0.346 0.14 0.658 0.367 0.885v0z"}}},dataZoom:[{type:"inside",xAxisIndex:0},{type:"inside",yAxisIndex:0},{type:"slider",xAxisIndex:0},{type:"slider",yAxisIndex:0,orient:"vertical"}],visualMap:{min:0,max:8,dimension:2,orient:"vertical",top:"center",right:35,text:["log2\n(tpm+1)",""],textGap:10,calculable:!0,inRange:{color:["rgb(43, 120, 182)","rgb(247, 126, 11)","rgb(59, 160, 30)","rgb(206, 37, 41)","rgb(143, 103, 191)","rgb(134, 86, 74)"]},textStyle:{writingMode:"vertical-lr"}},visualify:{colors_for_celltype:[{name:"BC-1",color:"rgb(43, 120, 182)",symbol:"circle"},{name:"BC-2",color:"rgb(247, 126, 11)",symbol:"circle"},{name:"BC-Sec",color:"rgb(59, 160, 30)",symbol:"circle"},{name:"BC-Sq",color:"rgb(206, 37, 41)",symbol:"circle"},{name:"BC-Mes",color:"rgb(143, 103, 191)",symbol:"circle"},{name:"BC-Pro",color:"rgb(134, 86, 74)",symbol:"circle"}],mapping:{extra:{UMI:"N_UMI",N_gene:"N_gene",Frac_MT:"Frac_MT",Cell_ID:"Cell_ID"}},exclude:["BC-Mes","BC-NE","BC-Im"],seriesBy:"Cell_Type",symbolSize:5,symbol:"circle",merger:{gene:{item:"Cell_ID",label:"Expression",visualMap:!0}},filter:{Expression:">-1"}}},esodev_chromium:{title:{textStyle:{fontSize:20},left:"center",top:0},animation:!1,legend:{textStyle:{fontSize:18},orient:"horizontal",right:"center",itemWidth:20,width:600,top:25},xAxis:{name:"UMAP 1",type:"value",nameLocation:"middle",nameGap:10,nameTextStyle:{fontSize:18,fontWeight:"bold"},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}},yAxis:{name:"UMAP 2",type:"value",nameLocation:"middle",nameGap:10,nameTextStyle:{fontSize:18,fontWeight:"bold"},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}},series:[],grid:{top:"20%",bottom:"12%",left:"10%",right:"10%"},toolbox:{feature:{saveAsImage:{show:!0,icon:"path://M30 20.75c-0.69 0.001-1.249 0.56-1.25 1.25v6.75h-25.5v-6.75c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 8c0 0.69 0.56 1.25 1.25 1.25h28c0.69-0.001 1.249-0.56 1.25-1.25v-8c-0.001-0.69-0.56-1.249-1.25-1.25h-0zM15.116 24.885c0.012 0.012 0.029 0.016 0.041 0.027 0.103 0.099 0.223 0.18 0.356 0.239l0.008 0.003 0.001 0c0.141 0.060 0.306 0.095 0.478 0.095 0.345 0 0.657-0.139 0.883-0.365l5.001-5c0.226-0.226 0.366-0.539 0.366-0.884 0-0.691-0.56-1.251-1.251-1.251-0.345 0-0.658 0.14-0.884 0.366l-2.865 2.867v-18.982c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 18.981l-2.866-2.866c-0.226-0.226-0.539-0.366-0.884-0.366-0.691 0-1.251 0.56-1.251 1.251 0 0.346 0.14 0.658 0.367 0.885v0z"}}},dataZoom:[{type:"inside",xAxisIndex:0,filterMode:"filter"},{type:"inside",yAxisIndex:0,filterMode:"filter",orient:"vertical"}],visualMap:{min:0,max:3,dimension:2,orient:"vertical",top:"center",left:0,text:["log2\n(tpm+1)",""],textGap:10,calculable:!0,inRange:{color:["#808080","#FFA500","#FF0000"]},textStyle:{writingMode:"vertical-lr"}},tooltip:{trigger:"item",axisPointer:{type:"cross"},formatter:e=>{let t=e.data.value[2],r=t?Math.round(1e4*t)/1e4:0;return`\n <div style="text-align: center;">\n ${e.data.Cell_ID} \n <br/> Type: <strong>${e.data.Cell_Type} </strong>\n <br/> Stage: <strong>${e.data.Stage}</strong>\n <br/> #UMI: <strong>${e.data.UMI}</strong>\n <br/> #Gene: <strong>${e.data.Gene}</strong>\n <br/> MT%: <strong>${e.data.MT}</strong>\n ${void 0!==t?"<br/> Expression: <strong>"+r+"</strong>":""}\n </div>\n `}},visualify:{mapping:{x:"2D_UMAP_1",y:"2D_UMAP_2",extra:{Stage:"Stage",UMI:"n_UMIs",MT:"percent_MT",Gene:"n_Genes",Cell_Type:"Cell_Type",Cell_ID:"Cell_ID"}},seriesBy:"Cell_Type",symbolSize:5,symbol:"circle",merger:{gene:{item:"Cell_ID",label:"Expression",visualMap:!0}},api_mapping:{"ENS (S)":"ens_iter_2","IM (S)":"im_iter_2","MES (S)":"mes_iter_2","SKM (S)":"skm_iter_2","ENDO (S)":"endo_iter_2","EPI (E)":"epi_iter_2",Stroma:"stroma_iter_1",Epithelium:"epi_iter_1"}}},esodev_codex:{title:{textStyle:{fontSize:20},left:"center",top:0},animation:!1,legend:{textStyle:{fontSize:18},orient:"horizontal",right:"center",itemWidth:20,width:600,top:25},xAxis:{show:!1},yAxis:{show:!1},series:[],grid:{top:"15%",bottom:"12%",left:"5%",right:"10%"},toolbox:{feature:{saveAsImage:{show:!0,icon:"path://M30 20.75c-0.69 0.001-1.249 0.56-1.25 1.25v6.75h-25.5v-6.75c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 8c0 0.69 0.56 1.25 1.25 1.25h28c0.69-0.001 1.249-0.56 1.25-1.25v-8c-0.001-0.69-0.56-1.249-1.25-1.25h-0zM15.116 24.885c0.012 0.012 0.029 0.016 0.041 0.027 0.103 0.099 0.223 0.18 0.356 0.239l0.008 0.003 0.001 0c0.141 0.060 0.306 0.095 0.478 0.095 0.345 0 0.657-0.139 0.883-0.365l5.001-5c0.226-0.226 0.366-0.539 0.366-0.884 0-0.691-0.56-1.251-1.251-1.251-0.345 0-0.658 0.14-0.884 0.366l-2.865 2.867v-18.982c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 18.981l-2.866-2.866c-0.226-0.226-0.539-0.366-0.884-0.366-0.691 0-1.251 0.56-1.251 1.251 0 0.346 0.14 0.658 0.367 0.885v0z"}}},dataZoom:[{type:"inside",xAxisIndex:0,filterMode:"filter"},{type:"inside",yAxisIndex:0,filterMode:"filter",orient:"vertical"},{type:"slider",xAxisIndex:0,filterMode:"filter"},{type:"slider",yAxisIndex:0,filterMode:"filter",orient:"vertical"}],visualMap:{min:0,max:10,dimension:2,orient:"vertical",top:"center",left:0,text:["log2\n(tpm+1)",""],textGap:10,calculable:!0,inRange:{color:["#808080","#FFA500","#FF0000"]},textStyle:{writingMode:"vertical-lr"}},tooltip:{trigger:"item",axisPointer:{type:"cross"},formatter:e=>{let t=e.data.value[2],r=t?Math.round(1e4*t)/1e4:0;return`\n <div style="text-align: center;">\n ${e.data.Cell_ID} \n <br/> Type: <strong>${e.data.Celltype} </strong>\n ${void 0!==t?"<br/> Expression: <strong>"+r+"</strong>":""}\n </div>\n `}},visualify:{mapping:{x:"X_Coord",y:"Y_Coord",extra:{Cell_ID:"Cell_ID",Celltype:"Cell_Type"}},seriesBy:"Cell_Type",symbolSize:5,symbol:"circle",merger:{gene:{item:"Cell_ID",label:"Expression",visualMap:!0}}}},esodev_visium:{title:{textStyle:{fontSize:20},left:"center",top:0},animation:!1,legend:{show:!1},xAxis:{show:!1},yAxis:{show:!1},series:[],grid:{top:"15%",bottom:"12%",left:"5%",right:"10%"},toolbox:{feature:{saveAsImage:{show:!0,icon:"path://M30 20.75c-0.69 0.001-1.249 0.56-1.25 1.25v6.75h-25.5v-6.75c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 8c0 0.69 0.56 1.25 1.25 1.25h28c0.69-0.001 1.249-0.56 1.25-1.25v-8c-0.001-0.69-0.56-1.249-1.25-1.25h-0zM15.116 24.885c0.012 0.012 0.029 0.016 0.041 0.027 0.103 0.099 0.223 0.18 0.356 0.239l0.008 0.003 0.001 0c0.141 0.060 0.306 0.095 0.478 0.095 0.345 0 0.657-0.139 0.883-0.365l5.001-5c0.226-0.226 0.366-0.539 0.366-0.884 0-0.691-0.56-1.251-1.251-1.251-0.345 0-0.658 0.14-0.884 0.366l-2.865 2.867v-18.982c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 18.981l-2.866-2.866c-0.226-0.226-0.539-0.366-0.884-0.366-0.691 0-1.251 0.56-1.251 1.251 0 0.346 0.14 0.658 0.367 0.885v0z"}}},dataZoom:[],visualMap:{min:0,max:10,dimension:2,orient:"horizontal",top:"bottom",right:"center",text:["log2\n(tpm+1)",""],textGap:10,calculable:!0,inRange:{color:["#808080","#FFA500","#FF0000"]},textStyle:{writingMode:"vertical-lr"}},tooltip:{trigger:"item",axisPointer:{type:"cross"},formatter:e=>{let t="";for(const[r,n]of Object.entries(e.data))"Expression"!==r&&n>.5&&(t+=`<br>${r}: ${n.toFixed(3)}`);return`\n <div style="text-align: center;">\n ${e.name}\n <br> Cell2Location Cell Type Likelihood \n <br> (Likelihood >= 0.5)\n ${t}\n </div>\n `}},visualify:{mapping:{x:"X_Coord",y:"Y_Coord",extra:{BC:"BC","SB-1":"SB-1","SB-2":"SB-2","SB-3":"SB-3","SB-4":"SB-4","SB-5":"SB-5","Cil-1":"Cil-1","Cil-2":"Cil-2","Cy.Epi":"Cy.Epi",Fib_PG:"Fib_PG",Fib_1:"Fib_1",Fib_2:"Fib_2",Fib_3:"Fib_3",Fib_4:"Fib_4",Fib_5:"Fib_5",MF:"MF",Fib_ICC:"Fib_ICC","Cy.Fib":"Cy.Fib",ENS_PG:"ENS_PG",Neu:"Neu",Glia:"Glia","Cy.ENS":"Cy.ENS",Ven:"Ven",Art:"Art",Lym:"Lym",Peri:"Peri","Cy.Peri":"Cy.Peri",SM:"SM","Cy.SM":"Cy.SM",MS:"MS",SkM:"SkM"}},merger:{},symbolSize:2,symbol:"circle"}}};class ne extends e.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("Caught an error:",e,t)}render(){return this.state.hasError?e.createElement("h1",null,"Something went wrong: ",this.state.error.message):this.props.children}}const ae=i();function oe(t){let{children:r}=t;const[n,i]=a({}),s=o((()=>({sharedData:n,setSharedData:i})),[n]);return e.createElement(ae.Provider,{value:s},r)}const ie=(e,t)=>{const{order:r=16,threshold:n}=t,a=e.map((e=>{const t=e.data.map((e=>function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16;return(new g.Hilbert2d).xy2d(e.x,e.y,t)}(e,r))),a=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3;const n=e.map(((e,r)=>({point:e,hilbert:t[r]})));n.sort(((e,t)=>e.hilbert-t.hilbert));const a=Math.ceil(e.length/r),o=[];for(let t=0;t<e.length;t+=a)o.push(n[t].point);return o}(e.data,t,n);return{...e,data:a}}));return a},se=function(e){if(!e||!Array.isArray(e)||0===e.length)return"No data available";const t=e.length;let r=`Data summary: ${t} total items. `;const n=e[0];if(Array.isArray(n)){const t=n.length;r+=`Each data point has ${t} dimensions. `;r+=e.slice(0,10).map(((e,r)=>2===t?`Point ${r+1}: ${ce(e[0])}, ${ce(e[1])}`:t>=3?`Point ${r+1}: ${ce(e[0])}, ${ce(e[1])}, ${ce(e[2])}`:`Point ${r+1}: ${ce(e[0])}`)).join("; ")}else if("object"==typeof n){r+=e.slice(0,10).map(((e,t)=>{const r=e.name||e.label||`Item ${t+1}`,n=void 0!==e.value?e.value:void 0!==e.z?`(${e.x}, ${e.y}, ${e.z})`:`(${e.x}, ${e.y})`;return`${r}: ${ce(n)}`})).join("; ")}else{r+=e.slice(0,10).map(((e,t)=>`Item ${t+1}: ${ce(e)}`)).join("; ")}return t>10&&(r+=`. And ${t-10} more items`),r},le=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Array.isArray(e)){const n=r.labels?.x||"X",a=r.labels?.y||"Y",o=r.zAxis3D?.name||r.zAxis?.name||"Z";return e.length>=3?`Data point ${t+1}: ${n} ${ce(e[0])}, ${a} ${ce(e[1])}, ${o} ${ce(e[2])}`:`Data point ${t+1}: ${n} ${ce(e[0])}, ${a} ${ce(e[1])}`}if("object"==typeof e){const n=e.name||e.label||`Data point ${t+1}`,a=void 0!==e.value?ce(e.value):"",o=[void 0!==e.x?`${r.labels?.x||"X"}: ${ce(e.x)}`:"",void 0!==e.y?`${r.labels?.y||"Y"}: ${ce(e.y)}`:"",void 0!==e.z?`${r.zAxis3D?.name||"Z"}: ${ce(e.z)}`:""].filter(Boolean).join(", ");return a?`${n}: ${a}${o?` at ${o}`:""}`:`${n}${o?`: ${o}`:""}`}return`Data point ${t+1}: ${ce(e)}`},ce=e=>{if(null==e)return"unknown";if("number"==typeof e){if(Math.abs(e)>=1e3)return e.toLocaleString();if(e%1!=0)return e.toFixed(2)}return e instanceof Date?e.toLocaleDateString():String(e)},de=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"chart",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";const n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"chart";const r="string"==typeof e.title?e.title:e.title?.text||"Untitled chart",n=e.data?.length||e.series?.[0]?.data?.length||0,a=e.labels?.x||e.xAxis?.name||"X axis",o=e.labels?.y||e.yAxis?.name||"Y axis",i=e.zAxis3D?.name||e.zAxis?.name||"Z axis";let s=`${r}. ${t} chart`;return n>0&&(s+=` with ${n} data points`),e.is3D||t.includes("3D")?s+=`. Three-dimensional view showing ${a}, ${o}, and ${i}`:s+=`. X axis shows ${a}, Y axis shows ${o}`,e.description&&(s+=`. ${e.description}`),s}(e,t);se(e.data||e.series?.[0]?.data);const a=r?`${r}-description`:"chart-description";return{role:"img","aria-label":n,"aria-describedby":a,tabIndex:0,"data-description-id":a,"data-chart-type":t}},ue=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||!Array.isArray(e)||0===e.length)return{caption:t.title||"Chart Data",headers:[],rows:[]};const r=e[0];let n=[],a=[];if(Array.isArray(r)){const o=r.length;n=[t.labels?.x||"X",t.labels?.y||"Y",...o>2?[t.zAxis3D?.name||t.zAxis?.name||"Z"]:[]].slice(0,o),a=e.map(((e,t)=>({id:`row-${t}`,cells:e.map((e=>ce(e)))})))}else if("object"==typeof r){const o=Object.keys(r);n=o.map((e=>{switch(e){case"x":return t.labels?.x||"X";case"y":return t.labels?.y||"Y";case"z":return t.zAxis3D?.name||t.zAxis?.name||"Z";case"name":return"Name";case"value":return"Value";default:return e.charAt(0).toUpperCase()+e.slice(1)}})),a=e.map(((e,t)=>({id:`row-${t}`,cells:o.map((t=>ce(e[t])))})))}else n=["Index","Value"],a=e.map(((e,t)=>({id:`row-${t}`,cells:[String(t+1),ce(e)]})));return{caption:"string"==typeof t.title?t.title:t.title?.text||"Chart Data",headers:n,rows:a}},fe=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"polite",r=document.getElementById("visualify-a11y-announcer");r||(r=document.createElement("div"),r.id="visualify-a11y-announcer",r.setAttribute("aria-live",t),r.setAttribute("aria-atomic","true"),r.className="sr-only",document.body.appendChild(r)),r.setAttribute("aria-live",t),r.textContent=e,setTimeout((()=>{r.textContent=""}),1e3)},pe=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||!Array.isArray(e)||0===e.length)return"";const r=ue(e,t);return`${r.headers.join(",")}\n${r.rows.map((e=>e.cells.join(","))).join("\n")}`},ge=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"chart-data.csv";const r=new Blob([e],{type:"text/csv;charset=utf-8;"}),n=document.createElement("a"),a=URL.createObjectURL(r);n.setAttribute("href",a),n.setAttribute("download",t),n.setAttribute("aria-label",`Download data as ${t}`),n.className="sr-only",document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(a)},me={enableArrowNavigation:!0,enableTabNavigation:!0,enableEnterActivation:!0,wrapAround:!0,announceChanges:!0},he=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[t,n]=a(-1),o=r(null),{data:i=[],onFocusChange:s,onActivate:c,onEscape:d,config:u={},navConfig:f={}}=e,p={...me,...f},g=l((e=>{if(e<0||e>=i.length){if(!p.wrapAround)return;e=e<0?i.length-1:0}if(n(e),p.announceChanges&&e>=0){const t=le(i[e],e,u);fe(t,"polite")}s&&s(e,i[e])}),[i,u,p,s]),m=l((()=>{t>=0&&t<i.length&&(p.announceChanges&&fe(`Activated ${le(i[t],t,u)}`,"polite"),c&&c(t,i[t]))}),[t,i,u,p,c]),h=l((()=>{n(-1),d&&d()}),[d]),y=l((e=>{if(p.enableArrowNavigation||p.enableEnterActivation)switch(e.key){case"ArrowRight":case"ArrowDown":e.preventDefault(),p.enableArrowNavigation&&g(t+1);break;case"ArrowLeft":case"ArrowUp":e.preventDefault(),p.enableArrowNavigation&&g(t-1);break;case"Enter":case" ":e.preventDefault(),p.enableEnterActivation&&m();break;case"Escape":e.preventDefault(),h(),o.current&&o.current.focus();break;case"Home":e.preventDefault(),p.enableArrowNavigation&&g(0);break;case"End":e.preventDefault(),p.enableArrowNavigation&&g(i.length-1);break;case"PageUp":e.preventDefault(),p.enableArrowNavigation&&g(Math.max(0,t-10));break;case"PageDown":e.preventDefault(),p.enableArrowNavigation&&g(Math.min(i.length-1,t+10))}}),[t,i.length,p,g,m,h]),x=l((()=>{-1===t&&i.length>0&&g(0)}),[t,i.length,g]),b=l((e=>{o.current&&!o.current.contains(e.relatedTarget)&&h()}),[h]);return{focusedIndex:t,containerRef:o,handleKeyDown:y,handleFocus:x,handleBlur:b,focusDataPoint:g,activateDataPoint:m,clearFocus:h,containerProps:{ref:o,tabIndex:0,onKeyDown:y,onFocus:x,onBlur:b,role:"application","aria-label":u.title||"Interactive chart"}}},ye={AA_NORMAL:4.5,AAA_NORMAL:7,AA_LARGE:3,AAA_LARGE:4.5,AA_UI:3},xe=(e,t,r)=>{const n=e=>{const t=Math.max(0,Math.min(255,Math.round(e))).toString(16);return 1===t.length?"0"+t:t};return`#${n(e)}${n(t)}${n(r)}`},be=e=>{if(!e||"string"!=typeof e)return null;if((e=e.trim().toLowerCase()).startsWith("#"))return(e=>{if(!e||"string"!=typeof e)return null;if(3===(e=e.replace(/^#/,"")).length&&(e=e.split("").map((e=>e+e)).join("")),6===e.length){const t=parseInt(e.substring(0,2),16),r=parseInt(e.substring(2,4),16),n=parseInt(e.substring(4,6),16);return isNaN(t)||isNaN(r)||isNaN(n)?null:{r:t,g:r,b:n}}return null})(e);const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(t)return{r:parseInt(t[1],10),g:parseInt(t[2],10),b:parseInt(t[3],10)};const r={black:{r:0,g:0,b:0},white:{r:255,g:255,b:255},red:{r:255,g:0,b:0},green:{r:0,g:128,b:0},blue:{r:0,g:0,b:255},yellow:{r:255,g:255,b:0},cyan:{r:0,g:255,b:255},magenta:{r:255,g:0,b:255},silver:{r:192,g:192,b:192},gray:{r:128,g:128,b:128},grey:{r:128,g:128,b:128},maroon:{r:128,g:0,b:0},olive:{r:128,g:128,b:0},lime:{r:0,g:255,b:0},aqua:{r:0,g:255,b:255},teal:{r:0,g:128,b:128},navy:{r:0,g:0,b:128},fuchsia:{r:255,g:0,b:255},purple:{r:128,g:0,b:128},orange:{r:255,g:165,b:0}};return r[e]?r[e]:null},ve=e=>{if(!e)return 0;const{r:t,g:r,b:n}=e,a=t/255,o=r/255,i=n/255;return.2126*(a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4))+.7152*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.0722*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))},_e=(e,t)=>{const r="string"==typeof e?be(e):e,n="string"==typeof t?be(t):t;if(!r||!n)return 1;const a=ve(r),o=ve(n);return(Math.max(a,o)+.05)/(Math.min(a,o)+.05)},we=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=_e(e,t),a=r?ye.AA_LARGE:ye.AA_NORMAL;return{ratio:Math.round(100*n)/100,passesAA:n>=a,passesAAA:n>=(r?ye.AAA_LARGE:ye.AAA_NORMAL),threshold:a,isLargeText:r}},Ae=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{minContrast:n=ye.AA_NORMAL,darkenAmount:a=20}=r,o=be(e);if(!o)return"#000000";if(t){const e=be(t);if(e){return _e(o,e)>=n?t:ke(o,e,n)}}return ve(o)>.5?"#000000":"#ffffff"},ke=(e,t,r)=>{let n={...t};const a=ve(e)>.5;for(let t=0;t<20;t++){if(_e(e,n)>=r)return xe(n.r,n.g,n.b);a?(n.r=Math.max(0,n.r-15),n.g=Math.max(0,n.g-15),n.b=Math.max(0,n.b-15)):(n.r=Math.min(255,n.r+15),n.g=Math.min(255,n.g+15),n.b=Math.min(255,n.b+15))}return a?"#000000":"#ffffff"},Ee=e=>{const t={valid:!0,issues:[],suggestions:{}},r=e.backgroundColor||"#ffffff";if(e.color&&Array.isArray(e.color)&&e.color.forEach(((e,n)=>{const a=we(e,r);a.passesAA||(t.valid=!1,t.issues.push({type:"series-color",index:n,color:e,message:`Series color ${e} does not meet WCAG AA contrast requirements (${a.ratio}:1)`}),t.suggestions[`series-${n}`]=Ae(r,e))})),e.title?.textStyle?.color){we(e.title.textStyle.color,r).passesAA||(t.valid=!1,t.issues.push({type:"title-color",color:e.title.textStyle.color,message:"Title color does not meet WCAG AA contrast requirements"}),t.suggestions.title=Ae(r,e.title.textStyle.color))}if(e.xAxis?.axisLabel?.color){we(e.xAxis.axisLabel.color,r).passesAA||(t.valid=!1,t.issues.push({type:"xaxis-color",color:e.xAxis.axisLabel.color,message:"X-axis label color does not meet WCAG AA contrast requirements"}))}if(e.yAxis?.axisLabel?.color){we(e.yAxis.axisLabel.color,r).passesAA||(t.valid=!1,t.issues.push({type:"yaxis-color",color:e.yAxis.axisLabel.color,message:"Y-axis label color does not meet WCAG AA contrast requirements"}))}return t},Te=e=>{const t={...e};e.backgroundColor;const r=Ee(e);return r.suggestions&&(t.color&&Array.isArray(t.color)&&(t.color=t.color.map(((e,t)=>r.suggestions[`series-${t}`]||e))),r.suggestions.title&&t.title?.textStyle&&(t.title.textStyle.color=r.suggestions.title)),t},Se=t=>{let{props:o,style:i}=t;const{config:l={},parser:c,advanced:d,style:u}=o,p=o.id||`echart-switcher-${Math.random().toString(36).substr(2,9)}`,g=e.useMemo((()=>Ee(l).valid||!1===l.a11y?.autoFix?l:Te(l)),[l]),[m,h]=a({active:!0,message:null,style:d?.loadingStlye??{}}),y=r(null),x=r(null),b=r(null),[v,_]=a(null),[w,A]=a({}),[k]=a({}),{width:E,height:T="400px"}=g,{sharedData:S}=s(ae),C=r(S);C.current=S;const I=e.useMemo((()=>c?.api?Object.values(c.api).map((e=>e.val)).filter(Boolean).sort():[]),[c]),M=JSON.stringify(I.reduce(((e,t)=>(e[t]=S[t],e)),{})),$=e.useMemo((()=>de(g,"chart",p)),[g,p]),{handleKeyDown:D}=e.useMemo((()=>function(e){return{handleKeyDown:t=>{switch(t.key){case"Enter":case" ":if(t.preventDefault(),e?.current){const t=e.current.getEchartsInstance?.();t&&t.dispatchAction({type:"highlight",seriesIndex:0,dataIndex:0})}break;case"r":case"R":if(t.ctrlKey||t.metaKey)return;if(t.preventDefault(),e?.current){const t=e.current.getEchartsInstance?.();t&&(t.resize(),fe("Chart refreshed","polite"))}break;case"Escape":if(t.preventDefault(),e?.current){const t=e.current.getEchartsInstance?.();t&&t.dispatchAction({type:"downplay"})}}}}}(x)),[g]);return n((()=>{let e,t;const r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(n=q(e.type),a={...t},"pie"===n?function(e){return{...e,legend:{...e?.legend,orient:"vertical",left:"left"},emphasis:{...e?.emphasis,itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}},xAxis:{show:!1},yAxis:{show:!1}}}(a):"radar"===n?function(e){return{...e,radar:{...e?.radar},xAxis:{show:!1},yAxis:{show:!1},legend:{top:0}}}(a):"funnel"===n?function(e){return{...e,xAxis:{show:!1},yAxis:{show:!1},legend:{top:0}}}(a):a);var n,a;return"title"in e&&("string"==typeof e.title?r.title={...r?.title,text:e.title}:r.title=e.title),"subtitle"in e&&(r.title.subtext=e.subtitle),!1===e.legend?r.legend={show:!1}:"legend"in e&&(r.legend={...e.legend,...e.legend}),"xAxis"in e&&(!1===e.xAxis?r.xAxis={show:!1}:Array.isArray(e.xAxis)?r.xAxis={...r?.xAxis,data:e.xAxis}:r.xAxis=e.xAxis),"yAxis"in e&&(!1===e.yAxis?r.yAxis={show:!1}:Array.isArray(e.yAxis)?r.yAxis={...r?.yAxis,data:e.yAxis}:r.yAxis=e.yAxis),"xAxisLabel"in e&&(r.xAxis={...r?.xAxis,name:e.xAxisLabel}),"yAxisLabel"in e&&(r.yAxis={...r?.yAxis,name:e.yAxisLabel}),"xAxisLineshow"in e&&(r.xAxis={...r?.xAxis,axisLine:{...r.xAxis?.axisLine,show:e.xAxisLineshow}}),"yAxisLineshow"in e&&(r.yAxis={...r?.yAxis,axisLine:{...r.yAxis?.axisLine,show:e.yAxisLineshow}}),"xAxisLabelShow"in e&&(r.xAxis={...r?.xAxis,axisLabel:{...r.xAxis?.axisLabel,show:e.xAxisLabelShow}}),"yAxisLabelShow"in e&&(r.yAxis={...r.yAxis,axisLabel:{...r.yAxis?.axisLabel,show:e.yAxisLabelShow}}),"xAxisLabelColor"in e&&(r.xAxis={...r?.xAxis,axisLabel:{...r.xAxis?.axisLabel,color:e.xAxisLabelColor}}),"yAxisLabelColor"in e&&(r.yAxis={...r?.yAxis,axisLabel:{...r.yAxis?.axisLabel,color:e.yAxisLabelColor}}),"tooltip"in e&&(r.tooltip={...r?.tooltip,...e.tooltip}),"toolbox"in e&&(r.toolbox={...r?.toolbox,...e.toolbox}),r}(l,v),n=X(l,r);(async()=>{try{if("string"==typeof g.preset)if(g.preset.startsWith("http://")||g.preset.startsWith("https://")){const e=await(async e=>{try{const t=await fetch(e);return await t.json()}catch(e){return console.error("Error fetching preset from URL:",e),null}})(g.preset);_(e)}else{const t=(e=g.preset,re[e]||te);_(t)}else _(te)}catch(e){console.error("Error loading preset:",e),_(te)}var e})(),(async()=>{try{let r=n;const a=C.current;c&&(e=await K(c,n,a),r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.series=Q(e,t,r.visualify),r.legend.data=r.series.map((e=>e.name)),(e=>{if(!e||0===e.length)return!1;const t=e[0].data;return!!t&&t.some((e=>3===e.value.length))})(r.series)||(r.visualMap=[]),r}(e,c,n)),t=f.merge(r,g.overrides),d?.hilbert&&(t.series=ie(t.series,d.hilbert)),A(t),h((e=>({...e,active:!1,message:null}))),!1!==g.a11y?.announceLoad&&fe(`${$["aria-label"]}. Chart loaded with ${t.series?.[0]?.data?.length||0} data points.`,"polite")}catch(e){h((t=>({...t,active:!0,message:e.message}))),fe(`Error loading chart: ${e.message}`,"assertive")}})();const a=C.current;f.isEqual(a,y.current)||(y.current=a)}),[l,c,d,v,M]),e.createElement("div",F({id:p,ref:b,style:{...i,position:"relative"},className:"visualify-chart visualify-echart-switcher"},$,{onKeyDown:D,"data-testid":"echart-switcher"}),e.createElement("div",{id:`${p}-description`,className:"sr-only"},$["aria-label"]),m.active&&e.createElement(W,{message:m.message,style:m.style}),e.createElement(ne,null,e.createElement(R,{options:w,style:{opacity:m.active?0:1,width:E,height:T,...u},onEvents:k,ref:x,"aria-hidden":"true"})))},Ce={wsUrl:"ws://localhost:3000/__hmr",reconnectDelay:1e3,maxReconnectAttempts:10,heartbeatInterval:3e4,debug:!1};class Ie{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config={...Ce,...e},this.ws=null,this.reconnectAttempts=0,this.reconnectTimer=null,this.heartbeatTimer=null,this.isConnected=!1,this.updateHandlers=new Map,this.errorHandlers=new Set,this.statePreservers=new Map,this.errorOverlay=null,this.handleOpen=this.handleOpen.bind(this),this.handleMessage=this.handleMessage.bind(this),this.handleClose=this.handleClose.bind(this),this.handleError=this.handleError.bind(this),this.reconnect=this.reconnect.bind(this),this.sendHeartbeat=this.sendHeartbeat.bind(this)}init(){this.ws?this.log("HMR client already initialized"):(this.log("Initializing HMR client..."),this.connect(),this.createErrorOverlay())}connect(){try{this.log(`Connecting to ${this.config.wsUrl}...`),this.ws=new WebSocket(this.config.wsUrl),this.ws.addEventListener("open",this.handleOpen),this.ws.addEventListener("message",this.handleMessage),this.ws.addEventListener("close",this.handleClose),this.ws.addEventListener("error",this.handleError)}catch(e){this.error("Failed to create WebSocket:",e),this.scheduleReconnect()}}disconnect(){this.log("Disconnecting HMR client..."),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),this.ws&&(this.ws.removeEventListener("open",this.handleOpen),this.ws.removeEventListener("message",this.handleMessage),this.ws.removeEventListener("close",this.handleClose),this.ws.removeEventListener("error",this.handleError),this.ws.readyState===WebSocket.OPEN&&this.ws.close(),this.ws=null),this.isConnected=!1}handleOpen(){this.log("Connected to HMR server"),this.isConnected=!0,this.reconnectAttempts=0,this.heartbeatTimer=setInterval(this.sendHeartbeat,this.config.heartbeatInterval),this.clearErrorOverlay(),this.send({type:"ready"})}handleMessage(e){try{const t=JSON.parse(e.data);switch(this.log("Received message:",t.type),t.type){case"connected":this.log("HMR connection established");break;case"update":this.handleUpdate(t);break;case"error":this.handleServerError(t);break;case"ping":this.send({type:"pong"});break;default:this.log("Unknown message type:",t.type)}}catch(e){this.error("Failed to parse message:",e)}}handleClose(){this.log("WebSocket connection closed"),this.isConnected=!1,this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),this.scheduleReconnect()}handleError(e){this.error("WebSocket error:",e)}scheduleReconnect(){if(this.reconnectAttempts>=this.config.maxReconnectAttempts)return this.error("Max reconnection attempts reached"),void this.showErrorOverlay({message:"Lost connection to HMR server. Please refresh the page."});this.reconnectAttempts++;const e=this.config.reconnectDelay*Math.min(this.reconnectAttempts,5);this.log(`Reconnecting in ${e}ms (attempt ${this.reconnectAttempts})...`),this.reconnectTimer=setTimeout((()=>{this.reconnect()}),e)}reconnect(){this.isConnected||(this.disconnect(),this.connect())}sendHeartbeat(){this.isConnected&&this.send({type:"ping"})}send(e){if(this.ws&&this.ws.readyState===WebSocket.OPEN)try{this.ws.send(JSON.stringify(e))}catch(e){this.error("Failed to send message:",e)}}handleUpdate(e){const{configType:t,file:r,config:n,changeType:a}=e;this.log(`Processing ${t} update:`,r),this.clearErrorOverlay();const o=this.statePreservers.get(t);let i=null;o&&"removed"!==a&&(i=o(),this.log("State preserved for update"));const s=this.updateHandlers.get(t);s&&s.forEach((e=>{try{e({file:r,config:n,changeType:a,preservedState:i})}catch(e){this.error("Update handler failed:",e)}}));const l=this.updateHandlers.get("*");l&&l.forEach((e=>{try{e({type:t,file:r,config:n,changeType:a,preservedState:i})}catch(e){this.error("General update handler failed:",e)}}))}handleServerError(e){this.error("Server error:",e.message),this.showErrorOverlay({file:e.file,message:e.message,details:e.details,isSyntaxError:e.isSyntaxError}),this.errorHandlers.forEach((t=>{try{t(e)}catch(e){this.error("Error handler failed:",e)}}))}createErrorOverlay(){if("undefined"==typeof document)return;const e=document.getElementById("visualify-hmr-error");e&&e.remove();const t=document.createElement("div");t.id="visualify-hmr-error",t.style.cssText="\n\t\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tbackground: rgba(0, 0, 0, 0.85);\n\t\t\tz-index: 99999;\n\t\t\tdisplay: none;\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n\t\t\tpadding: 20px;\n\t\t\toverflow: auto;\n\t\t";const r=document.createElement("div");r.style.cssText="\n\t\t\tbackground: #1e1e1e;\n\t\t\tborder-radius: 8px;\n\t\t\tmax-width: 800px;\n\t\t\tmargin: 40px auto;\n\t\t\tpadding: 24px;\n\t\t\tcolor: #fff;\n\t\t\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);\n\t\t",r.innerHTML='\n\t\t\t<div style="display: flex; align-items: center; margin-bottom: 16px;">\n\t\t\t\t<span style="\n\t\t\t\t\tbackground: #ff5555;\n\t\t\t\t\tcolor: white;\n\t\t\t\t\tpadding: 4px 12px;\n\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\tmargin-right: 12px;\n\t\t\t\t">ERROR</span>\n\t\t\t\t<h2 style="margin: 0; font-size: 18px;">Hot Module Replacement Failed</h2>\n\t\t\t</div>\n\t\t\t<div id="visualify-hmr-error-message" style="\n\t\t\t\tbackground: #2d2d2d;\n\t\t\t\tpadding: 16px;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfont-family: monospace;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tmargin-bottom: 16px;\n\t\t\t\twhite-space: pre-wrap;\n\t\t\t\tword-break: break-word;\n\t\t\t"></div>\n\t\t\t<div id="visualify-hmr-error-file" style="\n\t\t\t\tcolor: #888;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tmargin-bottom: 16px;\n\t\t\t"></div>\n\t\t\t<button onclick="window.__VISUALIFY_HMR_CLIENT__.clearErrorOverlay()" style="\n\t\t\t\tbackground: #4a9eff;\n\t\t\t\tcolor: white;\n\t\t\t\tborder: none;\n\t\t\t\tpadding: 8px 16px;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tcursor: pointer;\n\t\t\t\tfont-size: 14px;\n\t\t\t">Dismiss</button>\n\t\t',t.appendChild(r),document.body.appendChild(t),this.errorOverlay=t}showErrorOverlay(e){if(!this.errorOverlay)return;const t=document.getElementById("visualify-hmr-error-message"),r=document.getElementById("visualify-hmr-error-file");t&&(t.textContent=e.message||"Unknown error"),r&&e.file&&(r.textContent=`File: ${e.file}`),this.errorOverlay.style.display="block"}clearErrorOverlay(){this.errorOverlay&&(this.errorOverlay.style.display="none")}onUpdate(e,t){return this.updateHandlers.has(e)||this.updateHandlers.set(e,new Set),this.updateHandlers.get(e).add(t),()=>{this.updateHandlers.get(e)?.delete(t)}}onError(e){return this.errorHandlers.add(e),()=>{this.errorHandlers.delete(e)}}registerStatePreserver(e,t){return this.statePreservers.set(e,t),()=>{this.statePreservers.delete(e)}}log(){if(this.config.debug)for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r]}error(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];console.error("[HMR]",...t)}}let Me=null;function $e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("undefined"==typeof window)return null;if(!0!==window.__VISUALIFY_HMR__?.enabled)return null;if(!Me){const t=window.__VISUALIFY_HMR__?.wsUrl||Ce.wsUrl;Me=new Ie({...e,wsUrl:t}),Me.init(),window.__VISUALIFY_HMR_CLIENT__=Me}return Me}"undefined"!=typeof window&&window.__VISUALIFY_HMR__?.enabled&&$e(),function(e){if(!e||"undefined"==typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t.firstChild?t.insertBefore(r,t.firstChild):t.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}(':root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width: 480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n');var De=e=>"number"==typeof e&&!isNaN(e),Le=e=>"string"==typeof e,Fe=e=>"function"==typeof e,Re=1,Oe=()=>""+Re++,ze=new Map,Ne=[],Be=new Set,Pe=()=>ze.size>0;function je(e){if(Pe()){if(null==e||(e=>Le(e)||De(e))(e))ze.forEach((t=>{t.removeToast(e)}));else if(e&&("containerId"in e||"id"in e)){let t=ze.get(e.containerId);t?t.removeToast(e.id):ze.forEach((t=>{t.removeToast(e.id)}))}}else Ne=Ne.filter((t=>null!=e&&t.options.toastId!==e))}function Ue(e,t){(e=>c(e)||Le(e)||Fe(e)||De(e))(e)&&(Pe()||Ne.push({content:e,options:t}),ze.forEach((r=>{r.buildToast(e,t)})))}function We(e,t){ze.forEach((r=>{(null==t||null==t||!t.containerId||(null==t?void 0:t.containerId)===r.id)&&r.toggle(e,null==t?void 0:t.id)}))}function He(e){return e&&(Le(e.toastId)||De(e.toastId))?e.toastId:Oe()}function qe(e,t){return Ue(e,t),t.toastId}function Ge(e,t){return{...t,type:t&&t.type||e,toastId:He(t)}}function Ve(e){return(t,r)=>qe(t,Ge(e,r))}function Ye(e,t){return qe(e,Ge("default",t))}function Xe(){try{const e=document.createElement("canvas");return!!(e.getContext("webgl2")||e.getContext("webgl")||e.getContext("experimental-webgl"))}catch(e){return!1}}Ye.loading=(e,t)=>qe(e,Ge("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t})),Ye.promise=function(e,{pending:t,error:r,success:n},a){let o;t&&(o=Le(t)?Ye.loading(t,a):Ye.loading(t.render,{...a,...t}));let i={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},s=(e,t,r)=>{if(null==t)return void Ye.dismiss(o);let n={type:e,...i,...a,data:r},s=Le(t)?{render:t}:t;return o?Ye.update(o,{...n,...s}):Ye(s.render,{...n,...s}),r},l=Fe(e)?e():e;return l.then((e=>s("success",n,e))).catch((e=>s("error",r,e))),l},Ye.success=Ve("success"),Ye.info=Ve("info"),Ye.error=Ve("error"),Ye.warning=Ve("warning"),Ye.warn=Ye.warning,Ye.dark=(e,t)=>qe(e,Ge("default",{theme:"dark",...t})),Ye.dismiss=function(e){je(e)},Ye.clearWaitingQueue=(e={})=>{ze.forEach((t=>{t.props.limit&&(!e.containerId||t.id===e.containerId)&&t.clearQueue()}))},Ye.isActive=function(e,t){var r;if(t)return!(null==(r=ze.get(t))||!r.isToastActive(e));let n=!1;return ze.forEach((t=>{t.isToastActive(e)&&(n=!0)})),n},Ye.update=(e,t={})=>{let r=((e,{containerId:t})=>{var r;return null==(r=ze.get(t||1))?void 0:r.toasts.get(e)})(e,t);if(r){let{props:n,content:a}=r,o={delay:100,...n,...t,toastId:t.toastId||e,updateId:Oe()};o.toastId!==e&&(o.staleId=e);let i=o.render||a;delete o.render,qe(i,o)}},Ye.done=e=>{Ye.update(e,{progress:1})},Ye.onChange=function(e){return Be.add(e),()=>{Be.delete(e)}},Ye.play=e=>We(!0,e),Ye.pause=e=>We(!1,e);let Ze=null,Je=null;async function Ke(){if(Ze)return Ze;if(Je)return Je;if(!Xe()){const e=new Error("WebGL is not supported in this browser. 3D charts require WebGL support.");throw e.code="WEBGL_NOT_SUPPORTED",e}return"undefined"!=typeof window&&window["echarts-gl"]?(Ze=window["echarts-gl"],Promise.resolve(Ze)):(Je=import("echarts-gl").then((e=>(Ze=e,e))).catch((e=>{Je=null;const t=new Error(`Failed to load ECharts GL: ${e.message}`);throw t.code="ECHARTS_GL_LOAD_ERROR",t.originalError=e,t})),Je)}function Qe(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{useToast:r=!0,fallbackMessage:n}=t;let a=n||"Unable to display 3D chart. Please try a different browser.";return"WEBGL_NOT_SUPPORTED"===e.code?a="Your browser does not support WebGL, which is required for 3D charts. Please use a modern browser like Chrome, Firefox, Safari, or Edge.":"ECHARTS_GL_LOAD_ERROR"===e.code&&(a="Failed to load 3D chart library. Please check your internet connection and try again."),r&&void 0!==Ye&&Ye.error(a,{position:"top-center",autoClose:5e3,hideProgressBar:!1,closeOnClick:!0,pauseOnHover:!0,draggable:!0}),a}function et(e){if(e)try{e.off(),e.isDisposed()||e.dispose()}catch(e){console.warn("Error during WebGL cleanup:",e)}}const tt=10,rt=.8,nt="#5470c6",at=t(((t,o)=>{let{props:i,style:s}=t;const{config:c={}}=i,d=i.id||`scatter3d-chart-${Math.random().toString(36).substr(2,9)}`,u=`${d}-description`,f=`${d}-data-table`,p=e.useMemo((()=>Ee(c).valid||!1===c.a11y?.autoFix?c:Te(c)),[c]),[g,m]=a(null),[h,y]=a({active:!0,message:"Loading 3D library..."}),[x,b]=a(null),[v,_]=a(null),w=r(null),A=e.useMemo((()=>p.data||[]),[p]),{containerRef:k,handleKeyDown:E,handleFocus:T,focusedIndex:S}=he({data:A,config:p,onFocusChange:(e,t)=>{if(_(t),w.current){const t=w.current.getEchartsInstance?.();t&&t.dispatchAction({type:"highlight",seriesIndex:0,dataIndex:e})}},onActivate:(e,t)=>{if(w.current){const t=w.current.getEchartsInstance?.();t&&t.dispatchAction({type:"showTip",seriesIndex:0,dataIndex:e})}}}),C=e.useMemo((()=>de(p,"scatter3D",d)),[p,d]),I=e.useMemo((()=>se(A)),[A,p]),M=e.useMemo((()=>ue(A,p,"scatter3D")),[A,p]),$=l((()=>{const e=pe(A,p);e&&(ge(e,`${p.title||"scatter3d-chart"}-data.csv`),fe("Data downloaded as CSV file","polite"))}),[A,p]),D=l((async()=>{try{if(y({active:!0,message:"Loading 3D library..."}),b(null),!Xe())throw new Error("WebGL not supported");await Ke();const e=(e=>{const{title:t,data:r,xAxis3D:n,yAxis3D:a,zAxis3D:o,grid3D:i,visualMap:s,series:l,backgroundColor:c,color:d,tooltip:u,legend:f,toolbox:p}=e;if(!r)throw new Error("Scatter3D requires data");let g=r;if(!Array.isArray(r)&&r.x&&r.y&&r.z){const e=Math.min(r.x.length,r.y.length,r.z.length);g=[];for(let t=0;t<e;t++)g.push([r.x[t],r.y[t],r.z[t]])}else Array.isArray(r)&&r.length>0&&"object"==typeof r[0]&&!Array.isArray(r[0])&&(g=r.map((e=>[e.x,e.y,e.z])));const m={title:"string"==typeof t?{text:t}:{left:"center",top:0,...t},tooltip:{trigger:"item",formatter:u?.formatter||(e=>{const[t,r,n]=e.value;return`X: ${t}<br/>Y: ${r}<br/>Z: ${n}`}),...u},legend:f??void 0,visualMap:s??void 0,xAxis3D:{name:n?.name||"X",type:n?.type||"value",nameGap:25,...n},yAxis3D:{name:a?.name||"Y",type:a?.type||"value",nameGap:25,...a},zAxis3D:{name:o?.name||"Z",type:o?.type||"value",nameGap:25,...o},grid3D:{boxWidth:100,boxDepth:80,boxHeight:60,viewControl:{autoRotate:!1,projection:"perspective",...i?.viewControl},light:{main:{intensity:1.2,shadow:!0},ambient:{intensity:.3}},...i},series:[{type:"scatter3D",symbolSize:l?.symbolSize??tt,data:g,itemStyle:{opacity:l?.opacity??rt,color:l?.color??nt,...l?.itemStyle},emphasis:{itemStyle:{borderColor:"#fff",borderWidth:1}},...l}]};return c&&(m.backgroundColor=c),d&&(m.color=d),p&&(m.toolbox={feature:{...p,saveAsImage:{show:p.saveAsImage?.show??!1}}}),m})(p);m(e),y({active:!1,message:null}),!1!==p.a11y?.announceLoad&&fe(`${C["aria-label"]}. 3D scatter plot. Use arrow keys to navigate data points. Press Enter to select.`,"polite")}catch(e){const t=Qe(e,{useToast:!0});b(t),y({active:!0,message:t}),fe(`Error loading 3D chart: ${t}`,"assertive")}}),[p,C]);return n((()=>{D()}),[D]),n((()=>()=>{o?.current&&et(o.current.getEchartsInstance?.())}),[o]),n((()=>{const e=()=>{if(o?.current){const e=o.current.getEchartsInstance?.();e&&!e.isDisposed()&&e.resize()}};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[o]),x?e.createElement("div",{id:d,ref:k,role:"alert","aria-live":"assertive",style:{...s,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f5f5f5",border:"1px solid #ddd",borderRadius:"4px",padding:"20px",textAlign:"center"},tabIndex:0},e.createElement("div",null,e.createElement("h4",null,"3D Chart Unavailable"),e.createElement("p",{style:{color:"#666",marginTop:"10px"}},x))):e.createElement("div",F({id:d,ref:k,style:{...s,position:"relative"},className:"visualify-chart visualify-scatter3d-chart"},C,{onKeyDown:E,onFocus:T,"data-testid":"scatter3d-chart"}),e.createElement("div",{id:u,className:"sr-only"},I,p.description&&e.createElement("span",null,". ",p.description),e.createElement("p",null,"3D visualization. Use Tab to enter chart, then arrow keys to navigate data points.")),M.rows.length>0&&e.createElement("table",{id:f,className:"sr-only"},e.createElement("caption",null,M.caption," - Data Table"),e.createElement("thead",null,e.createElement("tr",null,M.headers.map(((t,r)=>e.createElement("th",{key:r,scope:"col"},t))))),e.createElement("tbody",null,M.rows.map((t=>e.createElement("tr",{key:t.id},t.cells.map(((t,r)=>e.createElement("td",{key:r},t)))))))),!1!==p.a11y?.enableDownload&&A.length>0&&e.createElement("button",{className:"sr-only",onClick:$,"aria-label":"Download chart data as CSV",tabIndex:-1},"Download Data"),e.createElement("div",{"aria-live":"polite","aria-atomic":"true",className:"sr-only",id:`${d}-live-region`},v&&`Focused: X ${v[0]||v.x}, Y ${v[1]||v.y}, Z ${v[2]||v.z}`),h.active&&e.createElement(W,{message:h.message,style:{marginTop:"10px"}}),g&&e.createElement(R,{ref:e=>{w.current=e,"function"==typeof o?o(e):o&&(o.current=e)},options:g,style:{width:p.chartWidth||"100%",height:p.chartHeight||"400px",opacity:h.active?0:1},"aria-hidden":"true"}))}));at.displayName="Scatter3D";const ot="lambert",it=1,st=t(((t,o)=>{let{props:i,style:s}=t;const{config:c={}}=i,d=i.id||`bar3d-chart-${Math.random().toString(36).substr(2,9)}`,u=`${d}-description`,f=`${d}-data-table`,p=e.useMemo((()=>Ee(c).valid||!1===c.a11y?.autoFix?c:Te(c)),[c]),[g,m]=a(null),[h,y]=a({active:!0,message:"Loading 3D library..."}),[x,b]=a(null),[v,_]=a(null),w=r(null),A=e.useMemo((()=>p.data||[]),[p]),{containerRef:k,handleKeyDown:E,handleFocus:T,focusedIndex:S}=he({data:A,config:p,onFocusChange:(e,t)=>{if(_(t),w.current){const t=w.current.getEchartsInstance?.();t&&t.dispatchAction({type:"highlight",seriesIndex:0,dataIndex:e})}},onActivate:(e,t)=>{if(w.current){const t=w.current.getEchartsInstance?.();t&&t.dispatchAction({type:"showTip",seriesIndex:0,dataIndex:e})}}}),C=e.useMemo((()=>de(p,"bar3D",d)),[p,d]),I=e.useMemo((()=>se(A)),[A,p]),M=e.useMemo((()=>ue(A,p,"bar3D")),[A,p]),$=l((()=>{const e=pe(A,p);e&&(ge(e,`${p.title||"bar3d-chart"}-data.csv`),fe("Data downloaded as CSV file","polite"))}),[A,p]),D=l((async()=>{try{if(y({active:!0,message:"Loading 3D library..."}),b(null),!Xe())throw new Error("WebGL not supported");await Ke();const e=(e=>{const{title:t,data:r,xAxis3D:n,yAxis3D:a,zAxis3D:o,grid3D:i,visualMap:s,series:l,backgroundColor:c,color:d,tooltip:u,legend:f,toolbox:p}=e;if(!r)throw new Error("Bar3D requires data");let g=r;if(!Array.isArray(r)&&r.x&&r.y&&r.z){const e=Math.min(r.x.length,r.y.length,r.z.length);g=[];for(let t=0;t<e;t++)g.push([r.x[t],r.y[t],r.z[t]])}else Array.isArray(r)&&r.length>0&&"object"==typeof r[0]&&!Array.isArray(r[0])&&(g=r.map((e=>[e.x,e.y,e.z])));const m={title:"string"==typeof t?{text:t}:{left:"center",top:0,...t},tooltip:{trigger:"item",formatter:u?.formatter||(e=>{const[t,r,n]=e.value;return`X: ${t}<br/>Y: ${r}<br/>Height: ${n}`}),...u},legend:f??void 0,visualMap:s??void 0,xAxis3D:{name:n?.name||"X",type:n?.type||"category",nameGap:25,...n},yAxis3D:{name:a?.name||"Y",type:a?.type||"category",nameGap:25,...a},zAxis3D:{name:o?.name||"Z",type:o?.type||"value",nameGap:25,...o},grid3D:{boxWidth:100,boxDepth:80,boxHeight:60,viewControl:{autoRotate:!1,projection:"perspective",...i?.viewControl},light:{main:{intensity:1.2,shadow:!0},ambient:{intensity:.3}},...i},series:[{type:"bar3D",data:g,shading:l?.shading??ot,itemStyle:{opacity:l?.opacity??it,...l?.itemStyle},label:{show:l?.label?.show??!1,...l?.label},emphasis:{label:{show:!0,fontSize:16,color:"#fff"},itemStyle:{color:"#ff7f50"}},...l}]};return c&&(m.backgroundColor=c),d&&(m.color=d),p&&(m.toolbox={feature:{...p,saveAsImage:{show:p.saveAsImage?.show??!1}}}),m})(p);m(e),y({active:!1,message:null}),!1!==p.a11y?.announceLoad&&fe(`${C["aria-label"]}. 3D bar chart. Use arrow keys to navigate data points. Press Enter to select.`,"polite")}catch(e){const t=Qe(e,{useToast:!0});b(t),y({active:!0,message:t}),fe(`Error loading 3D chart: ${t}`,"assertive")}}),[p,C]);return n((()=>{D()}),[D]),n((()=>()=>{o?.current&&et(o.current.getEchartsInstance?.())}),[o]),n((()=>{const e=()=>{if(o?.current){const e=o.current.getEchartsInstance?.();e&&!e.isDisposed()&&e.resize()}};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[o]),x?e.createElement("div",{id:d,ref:k,role:"alert","aria-live":"assertive",style:{...s,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f5f5f5",border:"1px solid #ddd",borderRadius:"4px",padding:"20px",textAlign:"center"},tabIndex:0},e.createElement("div",null,e.createElement("h4",null,"3D Chart Unavailable"),e.createElement("p",{style:{color:"#666",marginTop:"10px"}},x))):e.createElement("div",F({id:d,ref:k,style:{...s,position:"relative"},className:"visualify-chart visualify-bar3d-chart"},C,{onKeyDown:E,onFocus:T,"data-testid":"bar3d-chart"}),e.createElement("div",{id:u,className:"sr-only"},I,p.description&&e.createElement("span",null,". ",p.description),e.createElement("p",null,"3D bar chart visualization. Use Tab to enter chart, then arrow keys to navigate data points.")),M.rows.length>0&&e.createElement("table",{id:f,className:"sr-only"},e.createElement("caption",null,M.caption," - Data Table"),e.createElement("thead",null,e.createElement("tr",null,M.headers.map(((t,r)=>e.createElement("th",{key:r,scope:"col"},t))))),e.createElement("tbody",null,M.rows.map((t=>e.createElement("tr",{key:t.id},t.cells.map(((t,r)=>e.createElement("td",{key:r},t)))))))),!1!==p.a11y?.enableDownload&&A.length>0&&e.createElement("button",{className:"sr-only",onClick:$,"aria-label":"Download chart data as CSV",tabIndex:-1},"Download Data"),e.createElement("div",{"aria-live":"polite","aria-atomic":"true",className:"sr-only",id:`${d}-live-region`},v&&`Focused: X ${v[0]||v.x}, Y ${v[1]||v.y}, Height ${v[2]||v.z}`),h.active&&e.createElement(W,{message:h.message,style:{marginTop:"10px"}}),g&&e.createElement(R,{ref:e=>{w.current=e,"function"==typeof o?o(e):o&&(o.current=e)},options:g,style:{width:p.chartWidth||"100%",height:p.chartHeight||"400px",opacity:h.active?0:1},"aria-hidden":"true"}))}));st.displayName="Bar3D";const lt="lambert",ct={show:!1},dt=e=>{const{title:t,data:r,xAxis3D:n,yAxis3D:a,zAxis3D:o,grid3D:i,visualMap:s,series:l,backgroundColor:c,color:d,tooltip:u,legend:f,toolbox:p,contour:g}=e;if(!r)throw new Error("Surface3D requires data");const m=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Array.isArray(e)&&"object"==typeof e&&e.x&&e.y&&e.z){const{x:t,y:r,z:n}=e,a=[];for(let e=0;e<t.length;e++)for(let o=0;o<r.length;o++)a.push([t[e],r[o],n[e][o]]);return a}if(Array.isArray(e))return e;if("function"==typeof e){const{xMin:r=-10,xMax:n=10,yMin:a=-10,yMax:o=10,step:i=1}=t,s=[];for(let t=r;t<=n;t+=i)for(let r=a;r<=o;r+=i){const n=e(t,r);s.push([t,r,n])}return s}return[]}(r,e.range),h={title:"string"==typeof t?{text:t}:{left:"center",top:0,...t},tooltip:{trigger:"item",formatter:u?.formatter||(e=>{const[t,r,n]=e.value;return`X: ${t.toFixed(2)}<br/>Y: ${r.toFixed(2)}<br/>Z: ${n.toFixed(2)}`}),...u},legend:f??void 0,visualMap:s??{show:!0,dimension:2,min:Math.min(...m.map((e=>e[2]))),max:Math.max(...m.map((e=>e[2]))),inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:{name:n?.name||"X",type:n?.type||"value",nameGap:25,...n},yAxis3D:{name:a?.name||"Y",type:a?.type||"value",nameGap:25,...a},zAxis3D:{name:o?.name||"Z",type:o?.type||"value",nameGap:25,...o},grid3D:{boxWidth:100,boxDepth:80,boxHeight:60,viewControl:{autoRotate:l?.autoRotate??!1,projection:"perspective",...i?.viewControl},light:{main:{intensity:1.2,shadow:!0},ambient:{intensity:.3}},...i},series:[{type:"surface",data:m,shading:l?.shading??lt,wireframe:{show:l?.wireframe?.show??ct.show,...l?.wireframe},itemStyle:{opacity:l?.opacity??1,...l?.itemStyle},...l}]};return g?.show&&(h.series[0].contour={show:!0,color:g.color||"#000",...g}),c&&(h.backgroundColor=c),d&&(h.color=d),p&&(h.toolbox={feature:{...p,saveAsImage:{show:p.saveAsImage?.show??!1}}}),h},ut=t(((t,r)=>{let{props:o,style:i}=t;const{config:s={}}=o,[c,d]=a(null),[u,f]=a({active:!0,message:"Loading 3D library..."}),[p,g]=a(null),m=l((async()=>{try{if(f({active:!0,message:"Loading 3D library..."}),g(null),!Xe())throw new Error("WebGL not supported");await Ke();const e=dt(s);d(e),f({active:!1,message:null})}catch(e){const t=Qe(e,{useToast:!0});g(t),f({active:!0,message:t})}}),[s]);return n((()=>{m()}),[m]),n((()=>()=>{r?.current&&et(r.current.getEchartsInstance?.())}),[r]),n((()=>{const e=()=>{if(r?.current){const e=r.current.getEchartsInstance?.();e&&!e.isDisposed()&&e.resize()}};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[r]),p?e.createElement("div",{id:o.id,style:{...i,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f5f5f5",border:"1px solid #ddd",borderRadius:"4px",padding:"20px",textAlign:"center"}},e.createElement("div",null,e.createElement("h4",null,"3D Chart Unavailable"),e.createElement("p",{style:{color:"#666",marginTop:"10px"}},p))):e.createElement("div",{id:o.id,style:{...i,position:"relative"}},u.active&&e.createElement(W,{message:u.message,style:{marginTop:"10px"}}),c&&e.createElement(R,{ref:r,options:c,style:{width:s.chartWidth||"100%",height:s.chartHeight||"400px",opacity:u.active?0:1}}))}));ut.displayName="Surface3D";const ft={width:4},pt=8,gt=e=>{const{title:t,data:r,xAxis3D:n,yAxis3D:a,zAxis3D:o,grid3D:i,visualMap:s,series:l,backgroundColor:c,color:d,tooltip:u,legend:f,toolbox:p}=e,g=(e=>{if(!e)return[];if(Array.isArray(e)){if(e.length>0&&Array.isArray(e[0])&&3===e[0].length)return[{data:e,name:"Series 1"}];if(e.length>0&&e[0].data)return e}if("object"==typeof e&&!Array.isArray(e)){const{x:t,y:r,z:n}=e;if(Array.isArray(t)&&Array.isArray(r)&&Array.isArray(n))return[{data:t.map(((e,t)=>[e,r[t],n[t]])),name:"Series 1"}]}return[]})(r);if(0===g.length)throw new Error("Line3D requires valid data");const m=g.map(((e,t)=>({type:"line3D",name:e.name||`Series ${t+1}`,data:e.data,lineStyle:{width:l?.lineStyle?.width??ft.width,color:l?.lineStyle?.color||d?.[t],...l?.lineStyle},symbolSize:l?.symbolSize??pt,symbol:l?.symbol||"circle",emphasis:{lineStyle:{width:(l?.lineStyle?.width??ft.width)+2}},...l}))),h={title:"string"==typeof t?{text:t}:{left:"center",top:0,...t},tooltip:{trigger:"item",formatter:u?.formatter||(e=>{const[t,r,n]=e.value;return`${e.seriesName}<br/>X: ${t}<br/>Y: ${r}<br/>Z: ${n}`}),...u},legend:f??{show:m.length>1,data:m.map((e=>e.name))},visualMap:s??void 0,xAxis3D:{name:n?.name||"X",type:n?.type||"value",nameGap:25,...n},yAxis3D:{name:a?.name||"Y",type:a?.type||"value",nameGap:25,...a},zAxis3D:{name:o?.name||"Z",type:o?.type||"value",nameGap:25,...o},grid3D:{boxWidth:100,boxDepth:80,boxHeight:60,viewControl:{autoRotate:!1,projection:"perspective",...i?.viewControl},light:{main:{intensity:1.2,shadow:!0},ambient:{intensity:.3}},...i},series:m};return c&&(h.backgroundColor=c),d&&(h.color=d),p&&(h.toolbox={feature:{...p,saveAsImage:{show:p.saveAsImage?.show??!1}}}),h},mt=t(((t,r)=>{let{props:o,style:i}=t;const{config:s={}}=o,[c,d]=a(null),[u,f]=a({active:!0,message:"Loading 3D library..."}),[p,g]=a(null),m=l((async()=>{try{if(f({active:!0,message:"Loading 3D library..."}),g(null),!Xe())throw new Error("WebGL not supported");await Ke();const e=gt(s);d(e),f({active:!1,message:null})}catch(e){const t=Qe(e,{useToast:!0});g(t),f({active:!0,message:t})}}),[s]);return n((()=>{m()}),[m]),n((()=>()=>{r?.current&&et(r.current.getEchartsInstance?.())}),[r]),n((()=>{const e=()=>{if(r?.current){const e=r.current.getEchartsInstance?.();e&&!e.isDisposed()&&e.resize()}};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[r]),p?e.createElement("div",{id:o.id,style:{...i,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f5f5f5",border:"1px solid #ddd",borderRadius:"4px",padding:"20px",textAlign:"center"}},e.createElement("div",null,e.createElement("h4",null,"3D Chart Unavailable"),e.createElement("p",{style:{color:"#666",marginTop:"10px"}},p))):e.createElement("div",{id:o.id,style:{...i,position:"relative"}},u.active&&e.createElement(W,{message:u.message,style:{marginTop:"10px"}}),c&&e.createElement(R,{ref:r,options:c,style:{width:s.chartWidth||"100%",height:s.chartHeight||"400px",opacity:u.active?0:1}}))}));mt.displayName="Line3D";const ht={scatter3d:at,bar3d:st,surface3d:ut,line3d:mt};const yt=new Map;function xt(t){let{config:o,parser:i,advanced:s,chartId:c}=t;const d=r(null),[u,f]=a(o),p=r(null),g=function(e){if(!e)return!1;const t=e.toLowerCase();return Object.keys(ht).includes(t)}(u.type),m=l((()=>{if(d.current){const e=d.current.getEchartsInstance?.()||d.current;return p.current=function(e){if(!e)return null;try{const t=e.getOption();return{dataZoom:t.dataZoom?.map((e=>({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue}))),legend:t.legend?.[0]?.selected,tooltip:t.tooltip?.[0],brush:t.brush,series:t.series?.map((e=>({name:e.name,data:e.data})))}}catch(e){return console.error("[HMR] Failed to preserve chart state:",e),null}}(e),c&&yt.set(c,p.current),p.current}return null}),[c]);if(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{configType:t,onUpdate:a,onError:o,preserveState:i}=e,s=r(null);n((()=>{if("undefined"==typeof window)return;if(!0!==window.__VISUALIFY_HMR__?.enabled)return;const e=$e();if(s.current=e,!e)return;const r=[];if(a&&t){const n=e.onUpdate(t,a);r.push(n)}if(o){const t=e.onError(o);r.push(t)}if(i&&t){const n=e.registerStatePreserver(t,i);r.push(n)}return()=>{r.forEach((e=>e()))}}),[t,a,o,i]),s.current,s.current}({configType:"component",onUpdate:e=>{e.config&&(m(),f(e.config))},onError:e=>{console.error("[Recharts] HMR error:",e.message)},preserveState:m}),n((()=>{if(p.current&&d.current){const e=setTimeout((()=>{!function(e,t){if(e&&t)try{t.dataZoom&&e.setOption({dataZoom:t.dataZoom}),t.legend&&e.setOption({legend:{selected:t.legend}}),t.brush&&e.setOption({brush:t.brush})}catch(e){console.error("[HMR] Failed to restore chart state:",e)}}(d.current.getEchartsInstance?.()||d.current,p.current)}),100);return()=>clearTimeout(e)}}),[u]),g){const t=ht[u.type.toLowerCase()];return e.createElement(t,{ref:d,props:{config:u,parser:i,advanced:s,id:c}})}return e.createElement(Se,{ref:d,props:{config:u,parser:i,advanced:s}})}class bt{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{el:t=null,id:r=null}=e;if("string"==typeof t){if(this.selector=document.querySelector(t),!this.selector)throw new Error(`Element not found with selector: ${t}`)}else this.selector=t;const{parser:n=null,advanced:a=null,...o}=e;this.config=o,this.parser=n,this.advanced=a,this.chartId=r||`chart-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,this.root=null,this.isMounted=!1,"undefined"!=typeof window&&window.__VISUALIFY_HMR__?.enabled&&$e()}mount(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selector;const r="string"==typeof t?document.querySelector(t):t;if(!r)throw new Error(`Element not found with selector: ${t}`);try{yt.get(this.chartId);this.root||(this.root=d(r)),this.root.render(e.createElement(oe,null,e.createElement(xt,{config:this.config,parser:this.parser,advanced:this.advanced,chartId:this.chartId}))),this.isMounted=!0,this.registerHMR()}catch(e){console.error("Error mounting chart:",e)}return this}unmount(){return this.root&&(this.preserveState(),this.root.unmount(),this.root=null,this.isMounted=!1),this.unregisterHMR(),this}update(e){this.preserveState();const{parser:t,advanced:r,...n}=e;return this.config={...this.config,...n},t&&(this.parser=t),r&&(this.advanced=r),this.isMounted&&this.mount(),this}preserveState(){return yt.get(this.chartId)||null}restoreState(e){return e&&yt.set(this.chartId,e),this}registerHMR(){"undefined"!=typeof window&&(window.__VISUALIFY_CHARTS__||(window.__VISUALIFY_CHARTS__=new Map),window.__VISUALIFY_CHARTS__.set(this.chartId,this))}unregisterHMR(){"undefined"!=typeof window&&(window.__VISUALIFY_CHARTS__?.delete(this.chartId),yt.delete(this.chartId))}getId(){return this.chartId}getIsMounted(){return this.isMounted}}var vt,_t=Object.freeze({__proto__:null,reloadAllCharts:function(e){if("undefined"==typeof window)return;const t=window.__VISUALIFY_CHARTS__;t&&t.forEach((t=>{t.getIsMounted()&&e&&t.update(e)}))},preserveAllChartStates:function(){const e=new Map;return yt.forEach(((t,r)=>{e.set(r,t)})),e},restoreAllChartStates:function(e){e.forEach(((e,t)=>{yt.set(t,e)}))},default:bt}),wt={exports:{}};vt=wt,ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,r){var n=e("../lib/oop"),a=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.\-\'\" ]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},o.getTagRule(),{defaultToken:"comment.doc.body",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};n.inherits(o,a),o.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},o.getStartRule=function(e){return{token:"comment.doc",regex:/\/\*\*(?!\/)/,next:e}},o.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=o})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,r){var n=e("../lib/oop"),a=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,i="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",s=function(e){var t={"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},r=this.createKeywordMapper(t,"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)",o="(function)(\\s*)(\\*?)",s={token:["identifier","text","paren.lparen"],regex:"(\\b(?!"+Object.values(t).join("|")+"\\b)"+i+")(\\s*)(\\()"};this.$rules={no_regex:[a.getStartRule("doc-start"),c("no_regex"),s,{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+i+")(\\s*)(=)(\\s*)"+o+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))("+i+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+i+")(\\s*)(:)(\\s*)"+o+"(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)"+o+"(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|debug|time|trace|timeEnd|assert)\b/},{token:r,regex:i},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:"keyword.operator",regex:/=/},{token:["storage.type","text","storage.type","text","paren.lparen"],regex:o+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:"prototype"},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:i},{regex:"",token:"empty",next:"no_regex"}],start:[a.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:i},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,r){if(this.next="{"==e?this.nextState:"","{"==e&&r.length)r.unshift("start",t);else if("}"==e&&r.length&&(r.shift(),this.next=r.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+i+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=[^\\(]+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(a,"doc-",[a.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=i.replace("\\d","\\d\\-"),t={onMatch:function(e,t,r){var n="/"==e.charAt(1)?2:1;return 1==n?(t!=this.nextState?r.unshift(this.next,this.nextState,0):r.unshift(this.next),r[2]++):2==n&&t==this.nextState&&(r[1]--,(!r[1]||r[1]<0)&&(r.shift(),r.shift())),[{type:"meta.tag.punctuation."+(1==n?"":"end-")+"tag-open.xml",value:e.slice(0,n)},{type:"meta.tag.tag-name.xml",value:e.substr(n)}]},regex:"</?(?:"+e+"|(?=>))",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var r={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[r,t,{include:"reference"},{defaultToken:"string.xml"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,r){return t==r[0]&&r.shift(),2==e.length&&(r[0]==this.nextState&&r[1]--,(!r[1]||r[1]<0)&&r.splice(0,2)),this.next=r[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},r,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[a.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[a.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}n.inherits(s,o),t.JavaScriptHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,r){var n=e("../range").Range,a=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var r=e.getLine(t).match(/^(\s*\})/);if(!r)return 0;var a=r[1].length,o=e.findMatchingBracket({row:t,column:a});if(!o||o.row==t)return 0;var i=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,a-1),i)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(a.prototype),t.MatchingBraceOutdent=a})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator"],(function(e,t,r){var n=e("../../lib/oop"),a=e("../behaviour").Behaviour,o=e("../../token_iterator").TokenIterator;function i(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var s=function(){this.add("string_dquotes","insertion",(function(e,t,r,n,a){if('"'==a||"'"==a){var s=a,l=n.doc.getTextRange(r.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&r.getWrapBehavioursEnabled())return{text:s+l+s,selection:!1};var c=r.getCursorPosition(),d=n.doc.getLine(c.row).substring(c.column,c.column+1),u=new o(n,c.row,c.column),f=u.getCurrentToken();if(d==s&&(i(f,"attribute-value")||i(f,"string")))return{text:"",selection:[1,1]};if(f||(f=u.stepBackward()),!f)return;for(;i(f,"tag-whitespace")||i(f,"whitespace");)f=u.stepBackward();var p=!d||d.match(/\s/);if(i(f,"attribute-equals")&&(p||">"==d)||i(f,"decl-attribute-equals")&&(p||"?"==d))return{text:s+s,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,r,n,a){var o=n.doc.getTextRange(a);if(!a.isMultiLine()&&('"'==o||"'"==o)&&n.doc.getLine(a.start.row).substring(a.start.column+1,a.start.column+2)==o)return a.end.column++,a})),this.add("autoclosing","insertion",(function(e,t,r,n,a){if(">"==a){var s=r.getSelectionRange().start,l=new o(n,s.row,s.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(i(c,"tag-name")||i(c,"tag-whitespace")||i(c,"attribute-name")||i(c,"attribute-equals")||i(c,"attribute-value")))return;if(i(c,"reference.attribute-value"))return;if(i(c,"attribute-value")){var d=l.getCurrentTokenColumn()+c.value.length;if(s.column<d)return;if(s.column==d){var u=l.stepForward();if(u&&i(u,"attribute-value"))return;l.stepBackward()}}if(/^\s*>/.test(n.getLine(s.row).slice(s.column)))return;for(;!i(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var f=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(i(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(f==s.row&&(g=g.substring(0,s.column-p)),this.voidElements&&this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:"></"+g+">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,r,n,a){if("\n"==a){var s=r.getCursorPosition(),l=n.getLine(s.row),c=new o(n,s.row,s.column),d=c.getCurrentToken();if(i(d,"")&&-1!==d.type.indexOf("tag-close")){if("/>"==d.value)return;for(;d&&-1===d.type.indexOf("tag-name");)d=c.stepBackward();if(!d)return;var u=d.value,f=c.getCurrentTokenRow();if(!(d=c.stepBackward())||-1!==d.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]||!this.voidElements){var p=n.getTokenAt(s.row,s.column+1),g=(l=n.getLine(f),this.$getIndent(l)),m=g+n.getTabString();return p&&"</"===p.value?{text:"\n"+m+"\n"+g,selection:[1,m.length,1,m.length]}:{text:"\n"+m}}}}}))};n.inherits(s,a),t.XmlBehaviour=s})),ace.define("ace/mode/behaviour/javascript",["require","exports","module","ace/lib/oop","ace/token_iterator","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml"],(function(e,t,r){var n=e("../../lib/oop"),a=e("../../token_iterator").TokenIterator,o=e("../behaviour/cstyle").CstyleBehaviour,i=e("../behaviour/xml").XmlBehaviour,s=function(){var e=new i({closeCurlyBraces:!0}).getBehaviours();this.addBehaviours(e),this.inherit(o),this.add("autoclosing-fragment","insertion",(function(e,t,r,n,o){if(">"==o){var i=r.getSelectionRange().start,s=new a(n,i.row,i.column),l=s.getCurrentToken()||s.stepBackward();if(!l)return;if("<"==l.value)return{text:"></>",selection:[1,1]}}}))};n.inherits(s,o),t.JavaScriptBehaviour=s})),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,r){var n=e("../../lib/oop"),a=e("../../range").Range,o=e("./fold_mode").FoldMode,i=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=n.mixin({},this.voidElements),t&&n.mixin(this.optionalEndTags,t)};n.inherits(i,o);var s=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}(function(){this.getFoldWidget=function(e,t,r){var n=this._getFirstTagInLine(e,r);return n?n.closing||!n.tagName&&n.selfClosing?"markbeginend"===t?"end":"":!n.tagName||n.selfClosing||this.voidElements.hasOwnProperty(n.tagName.toLowerCase())||this._findEndTagInLine(e,r,n.tagName,n.end.column)?"":"start":this.getCommentFoldWidget(e,r)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?"start":""},this._getFirstTagInLine=function(e,t){for(var r=e.getTokens(t),n=new s,a=0;a<r.length;a++){var o=r[a];if(l(o,"tag-open")){if(n.end.column=n.start.column+o.value.length,n.closing=l(o,"end-tag-open"),!(o=r[++a]))return null;if(n.tagName=o.value,""===o.value){if(!(o=r[++a]))return null;n.tagName=o.value}for(n.end.column+=o.value.length,a++;a<r.length;a++)if(o=r[a],n.end.column+=o.value.length,l(o,"tag-close")){n.selfClosing="/>"==o.value;break}return n}if(l(o,"tag-close"))return n.selfClosing="/>"==o.value,n;n.start.column+=o.value.length}return null},this._findEndTagInLine=function(e,t,r,n){for(var a=e.getTokens(t),o=0,i=0;i<a.length;i++){var s=a[i];if(!((o+=s.value.length)<n-1)&&l(s,"end-tag-open")&&(l(s=a[i+1],"tag-name")&&""===s.value&&(s=a[i+2]),s&&s.value==r))return!0}return!1},this.getFoldWidgetRange=function(e,t,r){if(!this._getFirstTagInLine(e,r))return this.getCommentFoldWidget(e,r)&&e.getCommentFoldRange(r,e.getLine(r).length);var n=e.getMatchingTags({row:r,column:0});return n?new a(n.openTag.end.row,n.openTag.end.column,n.closeTag.start.row,n.closeTag.start.column):void 0}}).call(i.prototype)})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,r){var n=e("../../lib/oop"),a=e("../../range").Range,o=e("./fold_mode").FoldMode,i=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(i,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,r){var n=e.getLine(r);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var a=this._getFoldWidgetBase(e,t,r);return!a&&this.startRegionRe.test(n)?"start":a},this.getFoldWidgetRange=function(e,t,r,n){var a,o=e.getLine(r);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,r);if(a=o.match(this.foldingStartMarker)){var i=a.index;if(a[1])return this.openingBracketBlock(e,a[1],r,i);var s=e.getCommentFoldRange(r,i+a[0].length,1);return s&&!s.isMultiLine()&&(n?s=this.getSectionRange(e,r):"all"!=t&&(s=null)),s}return"markbegin"!==t&&(a=o.match(this.foldingStopMarker))?(i=a.index+a[0].length,a[1]?this.closingBracketBlock(e,a[1],r,i):e.getCommentFoldRange(r,i,-1)):void 0},this.getSectionRange=function(e,t){for(var r=e.getLine(t),n=r.search(/\S/),o=t,i=r.length,s=t+=1,l=e.getLength();++t<l;){var c=(r=e.getLine(t)).search(/\S/);if(-1!==c){if(n>c)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=o)break;if(d.isMultiLine())t=d.end.row;else if(n==c)break}s=t}}return new a(o,i,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,r){for(var n=t.search(/\s*$/),o=e.getLength(),i=r,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++r<o;){t=e.getLine(r);var c=s.exec(t);if(c&&(c[1]?l--:l++,!l))break}if(r>i)return new a(i,n,r,t.length)}}.call(i.prototype)})),ace.define("ace/mode/folding/javascript",["require","exports","module","ace/lib/oop","ace/mode/folding/xml","ace/mode/folding/cstyle"],(function(e,t,r){var n=e("../../lib/oop"),a=e("./xml").FoldMode,o=e("./cstyle").FoldMode,i=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end))),this.xmlFoldMode=new a};n.inherits(i,o),function(){this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,r){var n=this.getFoldWidgetBase(e,t,r);return n||this.xmlFoldMode.getFoldWidget(e,t,r)},this.getFoldWidgetRange=function(e,t,r,n){var a=this.getFoldWidgetRangeBase(e,t,r,n);return a||this.xmlFoldMode.getFoldWidgetRange(e,t,r)}}.call(i.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/javascript","ace/mode/folding/javascript"],(function(e,t,r){var n=e("../lib/oop"),a=e("./text").Mode,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,i=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("../worker/worker_client").WorkerClient,l=e("./behaviour/javascript").JavaScriptBehaviour,c=e("./folding/javascript").FoldMode,d=function(){this.HighlightRules=o,this.$outdent=new i,this.$behaviour=new l,this.foldingRules=new c};n.inherits(d,a),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,r){var n=this.$getIndent(t),a=this.getTokenizer().getLineTokens(t,e),o=a.tokens,i=a.state;if(o.length&&"comment"==o[o.length-1].type)return n;if("start"==e||"no_regex"==e)t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/)&&(n+=r);else if("doc-start"==e&&("start"==i||"no_regex"==i))return"";return n},this.checkOutdent=function(e,t,r){return this.$outdent.checkOutdent(t,r)},this.autoOutdent=function(e,t,r){this.$outdent.autoOutdent(t,r)},this.createWorker=function(e){var t=new s(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(d.prototype),t.Mode=d})),ace.require(["ace/mode/javascript"],(function(e){vt&&(vt.exports=e)}));var At={exports:{}};!function(e){ace.define("ace/theme/monokai-css",["require","exports","module"],(function(e,t,r){r.exports=".ace-monokai .ace_gutter {\n background: #2F3129;\n color: #8F908A\n}\n\n.ace-monokai .ace_print-margin {\n width: 1px;\n background: #555651\n}\n\n.ace-monokai {\n background-color: #272822;\n color: #F8F8F2\n}\n\n.ace-monokai .ace_cursor {\n color: #F8F8F0\n}\n\n.ace-monokai .ace_marker-layer .ace_selection {\n background: #49483E\n}\n\n.ace-monokai.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px #272822;\n}\n\n.ace-monokai .ace_marker-layer .ace_step {\n background: rgb(102, 82, 0)\n}\n\n.ace-monokai .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #49483E\n}\n\n.ace-monokai .ace_marker-layer .ace_active-line {\n background: #202020\n}\n\n.ace-monokai .ace_gutter-active-line {\n background-color: #272727\n}\n\n.ace-monokai .ace_marker-layer .ace_selected-word {\n border: 1px solid #49483E\n}\n\n.ace-monokai .ace_invisible {\n color: #52524d\n}\n\n.ace-monokai .ace_entity.ace_name.ace_tag,\n.ace-monokai .ace_keyword,\n.ace-monokai .ace_meta.ace_tag,\n.ace-monokai .ace_storage {\n color: #F92672\n}\n\n.ace-monokai .ace_punctuation,\n.ace-monokai .ace_punctuation.ace_tag {\n color: #fff\n}\n\n.ace-monokai .ace_constant.ace_character,\n.ace-monokai .ace_constant.ace_language,\n.ace-monokai .ace_constant.ace_numeric,\n.ace-monokai .ace_constant.ace_other {\n color: #AE81FF\n}\n\n.ace-monokai .ace_invalid {\n color: #F8F8F0;\n background-color: #F92672\n}\n\n.ace-monokai .ace_invalid.ace_deprecated {\n color: #F8F8F0;\n background-color: #AE81FF\n}\n\n.ace-monokai .ace_support.ace_constant,\n.ace-monokai .ace_support.ace_function {\n color: #66D9EF\n}\n\n.ace-monokai .ace_fold {\n background-color: #A6E22E;\n border-color: #F8F8F2\n}\n\n.ace-monokai .ace_storage.ace_type,\n.ace-monokai .ace_support.ace_class,\n.ace-monokai .ace_support.ace_type {\n font-style: italic;\n color: #66D9EF\n}\n\n.ace-monokai .ace_entity.ace_name.ace_function,\n.ace-monokai .ace_entity.ace_other,\n.ace-monokai .ace_entity.ace_other.ace_attribute-name,\n.ace-monokai .ace_variable {\n color: #A6E22E\n}\n\n.ace-monokai .ace_variable.ace_parameter {\n font-style: italic;\n color: #FD971F\n}\n\n.ace-monokai .ace_string {\n color: #E6DB74\n}\n\n.ace-monokai .ace_comment {\n color: #75715E\n}\n\n.ace-monokai .ace_indent-guide {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\n}\n\n.ace-monokai .ace_indent-guide-active {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQIW2PQ1dX9zzBz5sz/ABCcBFFentLlAAAAAElFTkSuQmCC) right repeat-y;\n}\n"})),ace.define("ace/theme/monokai",["require","exports","module","ace/theme/monokai-css","ace/lib/dom"],(function(e,t,r){t.isDark=!0,t.cssClass="ace-monokai",t.cssText=e("./monokai-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/monokai"],(function(t){e&&(e.exports=t)}))}(At);const kt=t=>{let{config:r}=t;const n=["","monokai"],o=["javascript"],{theme:i="",mode:s="javascript",width:l,height:c="400px",title:d="Rechart Preview",editorProps:u={$blockScrolling:!0}}=r;if(!n.includes(i))throw new Error(`Theme '${i}' not supported. Supported themes are: ${n.join(", ")}`);if(!o.includes(s))throw new Error(`Mode '${s}' not supported. Supported modes are: ${o.join(", ")}`);const[f,p]=a(r.code),g={display:"flex",justifyContent:"space-between"};l&&(g.width=l);return e.createElement("div",{style:g},e.createElement("div",{style:{flexGrow:1,border:"1px solid #ddd",borderRadius:"4px",marginBottom:"10px",width:"50%"}},e.createElement("div",{style:{backgroundColor:"#f4f4f4",padding:"10px",borderBottom:"1px solid #ddd",width:"100%"}},d),e.createElement(m,{mode:s,theme:i,value:f,onChange:p,name:d,editorProps:u,width:"100%",height:c,setOptions:{wrap:!0,useWorker:!1}})),e.createElement("div",{style:{width:"50%"}},e.createElement(Se,{props:{config:(()=>{try{return new Function(f)()()}catch(e){return console.error("Error evaluating chart options:",e),{}}})()}})))};class Et extends bt{constructor(e){super(),this.config=e}mount(t){const r="string"==typeof t?document.querySelector(t):t;if(!r)throw new Error(`Element not found with selector: ${t}`);try{d(r).render(e.createElement(oe,null,e.createElement(kt,{config:this.config})))}catch(e){console.error("Error mounting chart:",e)}}}const Tt={Recharts:bt,LiveEditor:Et,VisualifyProvider:oe,plugin:L,markdown:{process:A,processBlocks:k,extractConfigs:function(e){if(!e||"string"!=typeof e)return[];const t=[],r=/```visualify\n([\s\S]*?)```/g;let n;for(;null!==(n=r.exec(e));){const e=b(n[1],"config extraction");e&&t.push(x(e))}return t}},install:function(e,t){e.init((function(){})),e.mounted((function(){document.querySelectorAll("[data-visualify]").forEach((e=>{try{const t=JSON.parse(e.dataset.visualify||"{}");new bt(t).mount(e)}catch(e){console.error("[VisualifyDocs] Failed to mount chart:",e)}}))})),e.doneEach((function(){document.querySelectorAll("[data-visualify]").forEach((e=>{if(!e.dataset.visualifyMounted)try{const t=JSON.parse(e.dataset.visualify||"{}");new bt(t).mount(e),e.dataset.visualifyMounted="true"}catch(e){console.error("[VisualifyDocs] Failed to mount chart:",e)}}))}))},version:"3.0.0-1.dev",createChart:e=>new bt(e),createEditor:e=>new Et(e),mountAll(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;const t="string"==typeof e?document.querySelector(e):e;if(!t)return void console.error("[VisualifyDocs] Container not found:",e);t.querySelectorAll("[data-visualify]").forEach((e=>{if(!e.dataset.visualifyMounted)try{const t=JSON.parse(e.dataset.visualify||"{}");new bt(t).mount(e),e.dataset.visualifyMounted="true"}catch(e){console.error("[VisualifyDocs] Failed to mount chart:",e)}}))},processMarkdown:e=>k(e)};"undefined"!=typeof window&&window.$docsify&&(window.$docsify.plugins=[].concat(window.$docsify.plugins||[],L.install));export{Et as LiveEditor,bt as Recharts,oe as VisualifyProvider,Tt as default};