@particle-academy/fancy-echarts 1.2.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-resize-observer.ts","../src/hooks/use-echarts.ts","../src/components/EChart.tsx","../src/components/EChart3D.tsx","../src/components/EChartGraphic.tsx","../src/utils/register.ts","../src/utils/themes.ts"],"names":["useRef","useEffect","useSyncExternalStore","useState","getInstanceByDom","init","forwardRef","jsx","useMemo","DEFAULT_STYLE","Fragment","LineChart","BarChart","PieChart","ScatterChart","RadarChart","HeatmapChart","GaugeChart","FunnelChart","TreemapChart","SunburstChart","SankeyChart","GraphChart","CandlestickChart","BoxplotChart","ParallelChart","ThemeRiverChart","MapChart","CustomChart","EffectScatterChart","PictorialBarChart","GridComponent","TooltipComponent","TitleComponent","LegendComponent","DataZoomComponent","ToolboxComponent","VisualMapComponent","GeoComponent","ParallelComponent","CalendarComponent","GraphicComponent","PolarComponent","RadarComp","DatasetComponent","MarkLineComponent","MarkPointComponent","MarkAreaComponent","TimelineComponent","BrushComponent","SingleAxisComponent","CanvasRenderer","SVGRenderer","use","echartsRegisterTheme"],"mappings":"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","file":"index.cjs","sourcesContent":["import { useEffect, useRef, type RefObject } from \"react\";\r\n\r\nexport function useResizeObserver(\r\n ref: RefObject<HTMLElement | null>,\r\n callback: () => void\r\n): void {\r\n const callbackRef = useRef(callback);\r\n callbackRef.current = callback;\r\n\r\n useEffect(() => {\r\n const element = ref.current;\r\n if (!element) return;\r\n\r\n const observer = new ResizeObserver(() => {\r\n callbackRef.current();\r\n });\r\n\r\n observer.observe(element);\r\n\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }, [ref]);\r\n}\r\n","import { useEffect, useRef, useState, useSyncExternalStore, type RefObject } from \"react\";\r\nimport { init, getInstanceByDom, type EChartsType } from \"echarts/core\";\r\nimport type { EChartsOption } from \"echarts\";\r\n\r\ntype ECharts = EChartsType;\r\nimport { useResizeObserver } from \"./use-resize-observer\";\r\n\r\nexport interface UseEChartsOptions {\r\n option: EChartsOption;\r\n theme?: string | object;\r\n renderer?: \"canvas\" | \"svg\";\r\n notMerge?: boolean;\r\n lazyUpdate?: boolean;\r\n showLoading?: boolean;\r\n loadingOption?: object;\r\n onEvents?: Record<string, (params: any) => void>;\r\n autoResize?: boolean;\r\n}\r\n\r\nexport interface UseEChartsReturn {\r\n chartRef: RefObject<HTMLDivElement | null>;\r\n instance: ECharts | null;\r\n}\r\n\r\n/** Detect system dark mode preference reactively. */\r\nfunction useDarkMode(): boolean {\r\n return useSyncExternalStore(\r\n (callback) => {\r\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\r\n mq.addEventListener(\"change\", callback);\r\n return () => mq.removeEventListener(\"change\", callback);\r\n },\r\n () => window.matchMedia(\"(prefers-color-scheme: dark)\").matches,\r\n () => false,\r\n );\r\n}\r\n\r\nexport function useECharts(options: UseEChartsOptions): UseEChartsReturn {\r\n const {\r\n option,\r\n theme,\r\n renderer = \"canvas\",\r\n notMerge = false,\r\n lazyUpdate = false,\r\n showLoading = false,\r\n loadingOption,\r\n onEvents,\r\n autoResize = true,\r\n } = options;\r\n\r\n const isDark = useDarkMode();\r\n // Auto-detect theme: use explicit theme if provided, otherwise \"dark\" or undefined\r\n const autoDark = theme === undefined && isDark;\r\n const resolvedTheme = theme !== undefined ? theme : isDark ? \"dark\" : undefined;\r\n\r\n const chartRef = useRef<HTMLDivElement | null>(null);\r\n const instanceRef = useRef<ECharts | null>(null);\r\n const [instance, setInstance] = useState<ECharts | null>(null);\r\n\r\n // Init/dispose — re-init when theme changes (including dark mode toggle)\r\n useEffect(() => {\r\n if (!chartRef.current) return;\r\n\r\n // Dispose any existing instance (handles StrictMode double-mount)\r\n const existing = getInstanceByDom(chartRef.current);\r\n if (existing) {\r\n existing.dispose();\r\n }\r\n\r\n const chart = init(chartRef.current, resolvedTheme, { renderer });\r\n instanceRef.current = chart;\r\n setInstance(chart);\r\n\r\n return () => {\r\n chart.dispose();\r\n instanceRef.current = null;\r\n setInstance(null);\r\n };\r\n }, [resolvedTheme, renderer]);\r\n\r\n // Set option\r\n useEffect(() => {\r\n const chart = instanceRef.current;\r\n if (!chart || !option) return;\r\n // When using auto-detected dark theme, force transparent background\r\n // so charts blend with the page's own dark background\r\n const finalOption = autoDark\r\n ? { backgroundColor: \"transparent\", ...option }\r\n : option;\r\n chart.setOption(finalOption, { notMerge, lazyUpdate });\r\n }, [option, notMerge, lazyUpdate, autoDark]);\r\n\r\n // Loading state\r\n useEffect(() => {\r\n const chart = instanceRef.current;\r\n if (!chart) return;\r\n if (showLoading) {\r\n chart.showLoading(\"default\", loadingOption);\r\n } else {\r\n chart.hideLoading();\r\n }\r\n }, [showLoading, loadingOption]);\r\n\r\n // Event binding\r\n useEffect(() => {\r\n const chart = instanceRef.current;\r\n if (!chart || !onEvents) return;\r\n\r\n const entries = Object.entries(onEvents);\r\n for (const [event, handler] of entries) {\r\n chart.on(event, handler);\r\n }\r\n\r\n return () => {\r\n for (const [event, handler] of entries) {\r\n chart.off(event, handler);\r\n }\r\n };\r\n }, [onEvents]);\r\n\r\n // Auto-resize\r\n useResizeObserver(chartRef, () => {\r\n if (autoResize && instanceRef.current) {\r\n instanceRef.current.resize();\r\n }\r\n });\r\n\r\n return { chartRef, instance };\r\n}\r\n","import React, { forwardRef, useMemo } from \"react\";\r\nimport type { EChartsOption } from \"echarts\";\r\nimport { useECharts } from \"../hooks/use-echarts\";\r\nimport type {\r\n EChartComponentProps,\r\n SeriesComponentProps,\r\n ChartDivProps,\r\n} from \"../types\";\r\n\r\nconst DEFAULT_STYLE: React.CSSProperties = { width: \"100%\", height: 400 };\r\n\r\n/** Base EChart component — accepts any ECharts option. */\r\nconst EChartBase = forwardRef<HTMLDivElement, EChartComponentProps>(\r\n (\r\n {\r\n option,\r\n theme,\r\n renderer,\r\n notMerge,\r\n lazyUpdate,\r\n showLoading,\r\n loadingOption,\r\n onEvents,\r\n autoResize = true,\r\n style,\r\n className,\r\n ...rest\r\n },\r\n _ref\r\n ) => {\r\n const { chartRef } = useECharts({\r\n option,\r\n theme,\r\n renderer,\r\n notMerge,\r\n lazyUpdate,\r\n showLoading,\r\n loadingOption,\r\n onEvents,\r\n autoResize,\r\n });\r\n\r\n return (\r\n <div\r\n ref={chartRef}\r\n style={{ ...DEFAULT_STYLE, ...style }}\r\n className={className}\r\n {...rest}\r\n />\r\n );\r\n }\r\n);\r\n\r\nEChartBase.displayName = \"EChart\";\r\n\r\n// --- Helper to create typed series sub-components ---\r\n\r\nfunction createSeriesComponent(\r\n seriesType: string,\r\n displayName: string\r\n): React.FC<SeriesComponentProps & ChartDivProps> {\r\n const Component: React.FC<SeriesComponentProps & ChartDivProps> = ({\r\n data,\r\n title,\r\n xAxis,\r\n yAxis,\r\n tooltip = true,\r\n legend = false,\r\n grid,\r\n seriesOptions = {},\r\n option: extraOption = {},\r\n style,\r\n className,\r\n ...rest\r\n }) => {\r\n const option = useMemo((): EChartsOption => {\r\n const base: EChartsOption = {};\r\n\r\n if (title) {\r\n base.title = { text: title };\r\n }\r\n\r\n if (tooltip === true) {\r\n base.tooltip = { trigger: \"axis\" };\r\n } else if (tooltip && typeof tooltip === \"object\") {\r\n base.tooltip = tooltip;\r\n }\r\n\r\n if (legend === true) {\r\n base.legend = {};\r\n } else if (legend && typeof legend === \"object\") {\r\n base.legend = legend;\r\n }\r\n\r\n if (grid) {\r\n base.grid = grid;\r\n }\r\n\r\n // Handle axis-based charts\r\n const axisCharts = [\r\n \"line\",\r\n \"bar\",\r\n \"scatter\",\r\n \"candlestick\",\r\n \"boxplot\",\r\n \"heatmap\",\r\n \"effectScatter\",\r\n \"pictorialBar\",\r\n ];\r\n if (axisCharts.includes(seriesType)) {\r\n base.xAxis = xAxis ?? { type: \"category\" };\r\n base.yAxis = yAxis ?? { type: \"value\" };\r\n }\r\n\r\n // Handle data format\r\n if (Array.isArray(data)) {\r\n base.series = [{ type: seriesType, data, ...seriesOptions }] as any;\r\n } else if (data && typeof data === \"object\" && \"series\" in data) {\r\n // Multi-series: { categories: [...], series: [{ name, data }, ...] }\r\n const multiData = data as {\r\n categories?: string[];\r\n series: Array<{ name?: string; data: any[]; [k: string]: any }>;\r\n };\r\n if (multiData.categories && axisCharts.includes(seriesType)) {\r\n base.xAxis = xAxis ?? {\r\n type: \"category\",\r\n data: multiData.categories,\r\n };\r\n }\r\n base.series = multiData.series.map((s) => ({\r\n type: seriesType,\r\n ...seriesOptions,\r\n ...s,\r\n })) as any;\r\n } else {\r\n base.series = [{ type: seriesType, data, ...seriesOptions }] as any;\r\n }\r\n\r\n return { ...base, ...extraOption };\r\n }, [\r\n data,\r\n title,\r\n xAxis,\r\n yAxis,\r\n tooltip,\r\n legend,\r\n grid,\r\n seriesOptions,\r\n extraOption,\r\n ]);\r\n\r\n return (\r\n <EChartBase\r\n option={option}\r\n style={style}\r\n className={className}\r\n {...rest}\r\n />\r\n );\r\n };\r\n\r\n Component.displayName = displayName;\r\n return Component;\r\n}\r\n\r\n// --- Compound component with all chart type sub-components ---\r\n\r\nexport const EChart = Object.assign(EChartBase, {\r\n Line: createSeriesComponent(\"line\", \"EChart.Line\"),\r\n Bar: createSeriesComponent(\"bar\", \"EChart.Bar\"),\r\n Pie: createSeriesComponent(\"pie\", \"EChart.Pie\"),\r\n Scatter: createSeriesComponent(\"scatter\", \"EChart.Scatter\"),\r\n Radar: createSeriesComponent(\"radar\", \"EChart.Radar\"),\r\n Heatmap: createSeriesComponent(\"heatmap\", \"EChart.Heatmap\"),\r\n Gauge: createSeriesComponent(\"gauge\", \"EChart.Gauge\"),\r\n Funnel: createSeriesComponent(\"funnel\", \"EChart.Funnel\"),\r\n Treemap: createSeriesComponent(\"treemap\", \"EChart.Treemap\"),\r\n Sunburst: createSeriesComponent(\"sunburst\", \"EChart.Sunburst\"),\r\n Sankey: createSeriesComponent(\"sankey\", \"EChart.Sankey\"),\r\n Graph: createSeriesComponent(\"graph\", \"EChart.Graph\"),\r\n Candlestick: createSeriesComponent(\"candlestick\", \"EChart.Candlestick\"),\r\n Boxplot: createSeriesComponent(\"boxplot\", \"EChart.Boxplot\"),\r\n Parallel: createSeriesComponent(\"parallel\", \"EChart.Parallel\"),\r\n ThemeRiver: createSeriesComponent(\"themeRiver\", \"EChart.ThemeRiver\"),\r\n Map: createSeriesComponent(\"map\", \"EChart.Map\"),\r\n Custom: createSeriesComponent(\"custom\", \"EChart.Custom\"),\r\n EffectScatter: createSeriesComponent(\r\n \"effectScatter\",\r\n \"EChart.EffectScatter\"\r\n ),\r\n PictorialBar: createSeriesComponent(\"pictorialBar\", \"EChart.PictorialBar\"),\r\n});\r\n","import React, { forwardRef, useEffect, useMemo, useState } from \"react\";\r\nimport type { EChartsOption } from \"echarts\";\r\nimport { useECharts } from \"../hooks/use-echarts\";\r\nimport type {\r\n EChartComponentProps,\r\n SeriesComponentProps,\r\n ChartDivProps,\r\n} from \"../types\";\r\n\r\nconst DEFAULT_STYLE: React.CSSProperties = { width: \"100%\", height: 500 };\r\n\r\nlet glLoaded = false;\r\nlet glPromise: Promise<void> | null = null;\r\n\r\nfunction loadEChartsGL(): Promise<void> {\r\n if (glLoaded) return Promise.resolve();\r\n if (!glPromise) {\r\n glPromise = import(\"echarts-gl\")\r\n .then(() => {\r\n glLoaded = true;\r\n })\r\n .catch((err: unknown) => {\r\n console.warn(\"Failed to load echarts-gl for 3D charts:\", err);\r\n });\r\n }\r\n return glPromise;\r\n}\r\n\r\n/** Wrapper that delays mount until echarts-gl is loaded */\r\nfunction WithGL({ children, style, className }: { children: React.ReactNode; style?: React.CSSProperties; className?: string }) {\r\n const [ready, setReady] = useState(glLoaded);\r\n\r\n useEffect(() => {\r\n if (glLoaded) {\r\n setReady(true);\r\n return;\r\n }\r\n loadEChartsGL().then(() => setReady(true));\r\n }, []);\r\n\r\n if (!ready) {\r\n return (\r\n <div style={{ ...DEFAULT_STYLE, ...style, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }} className={className}>\r\n <span style={{ color: \"#9ca3af\", fontSize: 14 }}>Loading 3D engine...</span>\r\n </div>\r\n );\r\n }\r\n\r\n return <>{children}</>;\r\n}\r\n\r\n/**\r\n * EChart3D — 3D chart component that lazy-loads the bundled echarts-gl\r\n * engine on first mount (split into its own chunk to keep the main bundle small).\r\n */\r\nconst EChart3DInner = forwardRef<HTMLDivElement, EChartComponentProps>(\r\n (\r\n {\r\n option,\r\n theme,\r\n renderer,\r\n notMerge,\r\n lazyUpdate,\r\n showLoading,\r\n loadingOption,\r\n onEvents,\r\n autoResize = true,\r\n style,\r\n className,\r\n ...rest\r\n },\r\n _ref\r\n ) => {\r\n const { chartRef } = useECharts({\r\n option,\r\n theme,\r\n renderer,\r\n notMerge,\r\n lazyUpdate,\r\n showLoading,\r\n loadingOption,\r\n onEvents,\r\n autoResize,\r\n });\r\n\r\n return (\r\n <div\r\n ref={chartRef}\r\n style={{ ...DEFAULT_STYLE, ...style }}\r\n className={className}\r\n {...rest}\r\n />\r\n );\r\n }\r\n);\r\n\r\nEChart3DInner.displayName = \"EChart3DInner\";\r\n\r\nconst EChart3DBase = forwardRef<HTMLDivElement, EChartComponentProps>(\r\n (props, ref) => {\r\n const { style, className, ...rest } = props;\r\n return (\r\n <WithGL style={style} className={className}>\r\n <EChart3DInner ref={ref} style={style} className={className} {...rest} />\r\n </WithGL>\r\n );\r\n }\r\n);\r\n\r\nEChart3DBase.displayName = \"EChart3D\";\r\n\r\nfunction create3DSeriesComponent(\r\n seriesType: string,\r\n displayName: string\r\n): React.FC<SeriesComponentProps & ChartDivProps> {\r\n const Component: React.FC<SeriesComponentProps & ChartDivProps> = ({\r\n data,\r\n title,\r\n tooltip = true,\r\n seriesOptions = {},\r\n option: extraOption = {},\r\n style,\r\n className,\r\n ...rest\r\n }) => {\r\n const option = useMemo((): EChartsOption => {\r\n const base: any = {};\r\n\r\n if (title) {\r\n base.title = { text: title };\r\n }\r\n\r\n if (tooltip === true) {\r\n base.tooltip = {};\r\n } else if (tooltip && typeof tooltip === \"object\") {\r\n base.tooltip = tooltip;\r\n }\r\n\r\n if ([\"bar3D\", \"scatter3D\", \"line3D\", \"surface\"].includes(seriesType)) {\r\n base.xAxis3D = { type: \"value\" };\r\n base.yAxis3D = { type: \"value\" };\r\n base.zAxis3D = { type: \"value\" };\r\n base.grid3D = {};\r\n }\r\n\r\n base.series = [{ type: seriesType, data, ...seriesOptions }];\r\n\r\n return { ...base, ...extraOption } as EChartsOption;\r\n }, [data, title, tooltip, seriesOptions, extraOption]);\r\n\r\n return (\r\n <EChart3DBase\r\n option={option}\r\n style={style}\r\n className={className}\r\n {...rest}\r\n />\r\n );\r\n };\r\n\r\n Component.displayName = displayName;\r\n return Component;\r\n}\r\n\r\nfunction createGlobeComponent(): React.FC<\r\n Omit<SeriesComponentProps, \"data\"> &\r\n ChartDivProps & { globe?: any; series?: any[] }\r\n> {\r\n const Component: React.FC<\r\n Omit<SeriesComponentProps, \"data\"> &\r\n ChartDivProps & { globe?: any; series?: any[] }\r\n > = ({\r\n title,\r\n globe,\r\n series = [],\r\n option: extraOption = {},\r\n style,\r\n className,\r\n ...rest\r\n }) => {\r\n const option = useMemo((): EChartsOption => {\r\n const base: any = {};\r\n\r\n if (title) {\r\n base.title = { text: title };\r\n }\r\n\r\n base.globe = globe ?? {\r\n baseTexture: \"\",\r\n shading: \"lambert\",\r\n atmosphere: { show: true },\r\n };\r\n\r\n if (series.length > 0) {\r\n base.series = series;\r\n }\r\n\r\n return { ...base, ...extraOption } as EChartsOption;\r\n }, [title, globe, series, extraOption]);\r\n\r\n return (\r\n <EChart3DBase\r\n option={option}\r\n style={style}\r\n className={className}\r\n {...rest}\r\n />\r\n );\r\n };\r\n\r\n Component.displayName = \"EChart3D.Globe\";\r\n return Component;\r\n}\r\n\r\nexport const EChart3D = Object.assign(EChart3DBase, {\r\n Bar: create3DSeriesComponent(\"bar3D\", \"EChart3D.Bar\"),\r\n Scatter: create3DSeriesComponent(\"scatter3D\", \"EChart3D.Scatter\"),\r\n Line: create3DSeriesComponent(\"line3D\", \"EChart3D.Line\"),\r\n Surface: create3DSeriesComponent(\"surface\", \"EChart3D.Surface\"),\r\n Globe: createGlobeComponent(),\r\n});\r\n","import React, { forwardRef, useMemo } from \"react\";\r\nimport type { EChartsOption } from \"echarts\";\r\nimport { useECharts } from \"../hooks/use-echarts\";\r\nimport type { EChartBaseProps, ChartDivProps } from \"../types\";\r\n\r\nexport interface GraphicElement {\r\n type:\r\n | \"rect\"\r\n | \"circle\"\r\n | \"ring\"\r\n | \"arc\"\r\n | \"polygon\"\r\n | \"polyline\"\r\n | \"path\"\r\n | \"image\"\r\n | \"text\"\r\n | \"group\";\r\n left?: number | string;\r\n top?: number | string;\r\n right?: number | string;\r\n bottom?: number | string;\r\n shape?: Record<string, any>;\r\n style?: Record<string, any>;\r\n children?: GraphicElement[];\r\n onclick?: (e: any) => void;\r\n onmouseover?: (e: any) => void;\r\n onmouseout?: (e: any) => void;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface EChartGraphicProps\r\n extends Omit<EChartBaseProps, \"option\">,\r\n ChartDivProps,\r\n React.HTMLAttributes<HTMLDivElement> {\r\n elements: GraphicElement[];\r\n option?: Partial<EChartsOption>;\r\n}\r\n\r\nconst DEFAULT_STYLE: React.CSSProperties = { width: \"100%\", height: 400 };\r\n\r\n/**\r\n * EChartGraphic — for custom drawing via ECharts graphic layer.\r\n * Supports rect, circle, ring, arc, polygon, polyline, path, image, text, group elements.\r\n */\r\nexport const EChartGraphic = forwardRef<HTMLDivElement, EChartGraphicProps>(\r\n (\r\n {\r\n elements,\r\n option: extraOption = {},\r\n theme,\r\n renderer,\r\n notMerge,\r\n lazyUpdate,\r\n showLoading,\r\n loadingOption,\r\n onEvents,\r\n autoResize = true,\r\n style,\r\n className,\r\n ...rest\r\n },\r\n _ref\r\n ) => {\r\n const option = useMemo((): EChartsOption => {\r\n return {\r\n graphic: {\r\n elements,\r\n },\r\n ...extraOption,\r\n } as EChartsOption;\r\n }, [elements, extraOption]);\r\n\r\n const { chartRef } = useECharts({\r\n option,\r\n theme,\r\n renderer,\r\n notMerge,\r\n lazyUpdate,\r\n showLoading,\r\n loadingOption,\r\n onEvents,\r\n autoResize,\r\n });\r\n\r\n return (\r\n <div\r\n ref={chartRef}\r\n style={{ ...DEFAULT_STYLE, ...style }}\r\n className={className}\r\n {...rest}\r\n />\r\n );\r\n }\r\n);\r\n\r\nEChartGraphic.displayName = \"EChartGraphic\";\r\n","import { use } from \"echarts/core\";\r\nimport {\r\n LineChart,\r\n BarChart,\r\n PieChart,\r\n ScatterChart,\r\n RadarChart,\r\n HeatmapChart,\r\n GaugeChart,\r\n FunnelChart,\r\n TreemapChart,\r\n SunburstChart,\r\n SankeyChart,\r\n GraphChart,\r\n CandlestickChart,\r\n BoxplotChart,\r\n ParallelChart,\r\n ThemeRiverChart,\r\n MapChart,\r\n CustomChart,\r\n EffectScatterChart,\r\n PictorialBarChart,\r\n} from \"echarts/charts\";\r\nimport {\r\n GridComponent,\r\n TooltipComponent,\r\n TitleComponent,\r\n LegendComponent,\r\n DataZoomComponent,\r\n ToolboxComponent,\r\n VisualMapComponent,\r\n GeoComponent,\r\n ParallelComponent,\r\n CalendarComponent,\r\n GraphicComponent,\r\n PolarComponent,\r\n RadarComponent as RadarComp,\r\n DatasetComponent,\r\n MarkLineComponent,\r\n MarkPointComponent,\r\n MarkAreaComponent,\r\n TimelineComponent,\r\n BrushComponent,\r\n SingleAxisComponent,\r\n} from \"echarts/components\";\r\nimport { CanvasRenderer, SVGRenderer } from \"echarts/renderers\";\r\n\r\nconst allCharts = [\r\n LineChart,\r\n BarChart,\r\n PieChart,\r\n ScatterChart,\r\n RadarChart,\r\n HeatmapChart,\r\n GaugeChart,\r\n FunnelChart,\r\n TreemapChart,\r\n SunburstChart,\r\n SankeyChart,\r\n GraphChart,\r\n CandlestickChart,\r\n BoxplotChart,\r\n ParallelChart,\r\n ThemeRiverChart,\r\n MapChart,\r\n CustomChart,\r\n EffectScatterChart,\r\n PictorialBarChart,\r\n] as const;\r\n\r\nconst allComponents = [\r\n GridComponent,\r\n TooltipComponent,\r\n TitleComponent,\r\n LegendComponent,\r\n DataZoomComponent,\r\n ToolboxComponent,\r\n VisualMapComponent,\r\n GeoComponent,\r\n ParallelComponent,\r\n CalendarComponent,\r\n GraphicComponent,\r\n PolarComponent,\r\n RadarComp,\r\n DatasetComponent,\r\n MarkLineComponent,\r\n MarkPointComponent,\r\n MarkAreaComponent,\r\n TimelineComponent,\r\n BrushComponent,\r\n SingleAxisComponent,\r\n] as const;\r\n\r\nconst allRenderers = [CanvasRenderer, SVGRenderer] as const;\r\n\r\nlet registered = false;\r\n\r\n/** Register all ECharts chart types, components, and renderers. Convenient for demos/quick starts. */\r\nexport function registerAll(): void {\r\n if (registered) return;\r\n use([...allCharts, ...allComponents, ...allRenderers] as any);\r\n registered = true;\r\n}\r\n\r\n/** Register specific chart types by name for tree-shaking optimization. */\r\nexport function registerCharts(\r\n ...chartTypes: Array<(typeof allCharts)[number]>\r\n): void {\r\n use(chartTypes as any);\r\n}\r\n\r\n/** Register specific components by reference. */\r\nexport function registerComponents(\r\n ...components: Array<(typeof allComponents)[number]>\r\n): void {\r\n use(components as any);\r\n}\r\n\r\n// Re-export individual charts and components for manual registration\r\nexport {\r\n LineChart,\r\n BarChart,\r\n PieChart,\r\n ScatterChart,\r\n RadarChart,\r\n HeatmapChart,\r\n GaugeChart,\r\n FunnelChart,\r\n TreemapChart,\r\n SunburstChart,\r\n SankeyChart,\r\n GraphChart,\r\n CandlestickChart,\r\n BoxplotChart,\r\n ParallelChart,\r\n ThemeRiverChart,\r\n MapChart,\r\n CustomChart,\r\n EffectScatterChart,\r\n PictorialBarChart,\r\n GridComponent,\r\n TooltipComponent,\r\n TitleComponent,\r\n LegendComponent,\r\n DataZoomComponent,\r\n ToolboxComponent,\r\n VisualMapComponent,\r\n GeoComponent,\r\n CalendarComponent,\r\n GraphicComponent,\r\n PolarComponent,\r\n DatasetComponent,\r\n SingleAxisComponent,\r\n CanvasRenderer,\r\n SVGRenderer,\r\n};\r\n","import { registerTheme as echartsRegisterTheme } from \"echarts/core\";\r\n\r\n/** Dark theme preset */\r\nexport const darkTheme = {\r\n backgroundColor: \"#1a1a2e\",\r\n textStyle: { color: \"#e0e0e0\" },\r\n title: { textStyle: { color: \"#ffffff\" } },\r\n legend: { textStyle: { color: \"#cccccc\" } },\r\n categoryAxis: {\r\n axisLine: { lineStyle: { color: \"#444\" } },\r\n splitLine: { lineStyle: { color: \"#333\" } },\r\n axisLabel: { color: \"#aaa\" },\r\n },\r\n valueAxis: {\r\n axisLine: { lineStyle: { color: \"#444\" } },\r\n splitLine: { lineStyle: { color: \"#333\" } },\r\n axisLabel: { color: \"#aaa\" },\r\n },\r\n color: [\r\n \"#5470c6\",\r\n \"#91cc75\",\r\n \"#fac858\",\r\n \"#ee6666\",\r\n \"#73c0de\",\r\n \"#3ba272\",\r\n \"#fc8452\",\r\n \"#9a60b4\",\r\n \"#ea7ccc\",\r\n ],\r\n};\r\n\r\n/** Vintage theme preset */\r\nexport const vintageTheme = {\r\n color: [\r\n \"#d87c7c\",\r\n \"#919e8b\",\r\n \"#d7ab82\",\r\n \"#6e7074\",\r\n \"#61a0a8\",\r\n \"#efa18d\",\r\n \"#787464\",\r\n \"#cc7e63\",\r\n \"#724e58\",\r\n \"#4b565b\",\r\n ],\r\n backgroundColor: \"#fef8ef\",\r\n textStyle: {},\r\n title: { textStyle: { color: \"#333333\" } },\r\n categoryAxis: {\r\n axisLine: { lineStyle: { color: \"#ccc\" } },\r\n splitLine: { lineStyle: { color: \"#eee\" } },\r\n },\r\n valueAxis: {\r\n axisLine: { lineStyle: { color: \"#ccc\" } },\r\n splitLine: { lineStyle: { color: \"#eee\" } },\r\n },\r\n};\r\n\r\n/** Pastel theme preset */\r\nexport const pastelTheme = {\r\n color: [\r\n \"#c4b5fd\",\r\n \"#a5f3fc\",\r\n \"#fca5a5\",\r\n \"#fde68a\",\r\n \"#a7f3d0\",\r\n \"#fbcfe8\",\r\n \"#c7d2fe\",\r\n \"#fed7aa\",\r\n ],\r\n backgroundColor: \"#fafafa\",\r\n textStyle: { color: \"#555\" },\r\n title: { textStyle: { color: \"#333\" } },\r\n};\r\n\r\n/** Register a named theme with ECharts */\r\nexport function registerTheme(name: string, theme: object): void {\r\n echartsRegisterTheme(name, theme);\r\n}\r\n\r\n/** Register all built-in theme presets */\r\nexport function registerBuiltinThemes(): void {\r\n registerTheme(\"dark-preset\", darkTheme);\r\n registerTheme(\"vintage\", vintageTheme);\r\n registerTheme(\"pastel\", pastelTheme);\r\n}\r\n"]}
@@ -0,0 +1,227 @@
1
+ import React$1, { RefObject } from 'react';
2
+ import { EChartsOption } from 'echarts';
3
+ export { ECharts as EChartsInstance, EChartsOption } from 'echarts';
4
+ import { EChartsType } from 'echarts/core';
5
+ import { LineChart, BarChart, PieChart, ScatterChart, RadarChart, HeatmapChart, GaugeChart, FunnelChart, TreemapChart, SunburstChart, SankeyChart, GraphChart, CandlestickChart, BoxplotChart, ParallelChart, ThemeRiverChart, MapChart, CustomChart, EffectScatterChart, PictorialBarChart } from 'echarts/charts';
6
+ export { BarChart, BoxplotChart, CandlestickChart, CustomChart, EffectScatterChart, FunnelChart, GaugeChart, GraphChart, HeatmapChart, LineChart, MapChart, ParallelChart, PictorialBarChart, PieChart, RadarChart, SankeyChart, ScatterChart, SunburstChart, ThemeRiverChart, TreemapChart } from 'echarts/charts';
7
+ import { GridComponent, TooltipComponent, TitleComponent, LegendComponent, DataZoomComponent, ToolboxComponent, VisualMapComponent, GeoComponent, ParallelComponent, CalendarComponent, GraphicComponent, PolarComponent, RadarComponent, DatasetComponent, MarkLineComponent, MarkPointComponent, MarkAreaComponent, TimelineComponent, BrushComponent, SingleAxisComponent } from 'echarts/components';
8
+ export { CalendarComponent, DataZoomComponent, DatasetComponent, GeoComponent, GraphicComponent, GridComponent, LegendComponent, PolarComponent, TitleComponent, ToolboxComponent, TooltipComponent, VisualMapComponent } from 'echarts/components';
9
+ export { CanvasRenderer, SVGRenderer } from 'echarts/renderers';
10
+
11
+ interface EChartBaseProps {
12
+ option: EChartsOption;
13
+ theme?: string | object;
14
+ renderer?: "canvas" | "svg";
15
+ notMerge?: boolean;
16
+ lazyUpdate?: boolean;
17
+ showLoading?: boolean;
18
+ loadingOption?: object;
19
+ onEvents?: Record<string, (params: any) => void>;
20
+ autoResize?: boolean;
21
+ }
22
+ interface SeriesComponentProps<T = any> extends Omit<EChartBaseProps, "option"> {
23
+ data: T;
24
+ title?: string;
25
+ xAxis?: EChartsOption["xAxis"];
26
+ yAxis?: EChartsOption["yAxis"];
27
+ tooltip?: boolean | EChartsOption["tooltip"];
28
+ legend?: boolean | EChartsOption["legend"];
29
+ grid?: EChartsOption["grid"];
30
+ seriesOptions?: Record<string, any>;
31
+ option?: Partial<EChartsOption>;
32
+ }
33
+ interface ChartDivProps {
34
+ style?: React.CSSProperties;
35
+ className?: string;
36
+ }
37
+ type EChartComponentProps = EChartBaseProps & ChartDivProps & React.HTMLAttributes<HTMLDivElement>;
38
+
39
+ declare const EChart: React$1.ForwardRefExoticComponent<EChartBaseProps & ChartDivProps & React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>> & {
40
+ Line: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
41
+ Bar: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
42
+ Pie: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
43
+ Scatter: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
44
+ Radar: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
45
+ Heatmap: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
46
+ Gauge: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
47
+ Funnel: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
48
+ Treemap: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
49
+ Sunburst: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
50
+ Sankey: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
51
+ Graph: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
52
+ Candlestick: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
53
+ Boxplot: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
54
+ Parallel: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
55
+ ThemeRiver: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
56
+ Map: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
57
+ Custom: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
58
+ EffectScatter: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
59
+ PictorialBar: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
60
+ };
61
+
62
+ declare const EChart3D: React$1.ForwardRefExoticComponent<EChartBaseProps & ChartDivProps & React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>> & {
63
+ Bar: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
64
+ Scatter: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
65
+ Line: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
66
+ Surface: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
67
+ Globe: React$1.FC<Omit<SeriesComponentProps<any>, "data"> & ChartDivProps & {
68
+ globe?: any;
69
+ series?: any[];
70
+ }>;
71
+ };
72
+
73
+ interface GraphicElement {
74
+ type: "rect" | "circle" | "ring" | "arc" | "polygon" | "polyline" | "path" | "image" | "text" | "group";
75
+ left?: number | string;
76
+ top?: number | string;
77
+ right?: number | string;
78
+ bottom?: number | string;
79
+ shape?: Record<string, any>;
80
+ style?: Record<string, any>;
81
+ children?: GraphicElement[];
82
+ onclick?: (e: any) => void;
83
+ onmouseover?: (e: any) => void;
84
+ onmouseout?: (e: any) => void;
85
+ [key: string]: any;
86
+ }
87
+ interface EChartGraphicProps extends Omit<EChartBaseProps, "option">, ChartDivProps, React$1.HTMLAttributes<HTMLDivElement> {
88
+ elements: GraphicElement[];
89
+ option?: Partial<EChartsOption>;
90
+ }
91
+ /**
92
+ * EChartGraphic — for custom drawing via ECharts graphic layer.
93
+ * Supports rect, circle, ring, arc, polygon, polyline, path, image, text, group elements.
94
+ */
95
+ declare const EChartGraphic: React$1.ForwardRefExoticComponent<EChartGraphicProps & React$1.RefAttributes<HTMLDivElement>>;
96
+
97
+ type ECharts = EChartsType;
98
+ interface UseEChartsOptions {
99
+ option: EChartsOption;
100
+ theme?: string | object;
101
+ renderer?: "canvas" | "svg";
102
+ notMerge?: boolean;
103
+ lazyUpdate?: boolean;
104
+ showLoading?: boolean;
105
+ loadingOption?: object;
106
+ onEvents?: Record<string, (params: any) => void>;
107
+ autoResize?: boolean;
108
+ }
109
+ interface UseEChartsReturn {
110
+ chartRef: RefObject<HTMLDivElement | null>;
111
+ instance: ECharts | null;
112
+ }
113
+ declare function useECharts(options: UseEChartsOptions): UseEChartsReturn;
114
+
115
+ declare function useResizeObserver(ref: RefObject<HTMLElement | null>, callback: () => void): void;
116
+
117
+ declare const allCharts: readonly [typeof LineChart, typeof BarChart, typeof PieChart, typeof ScatterChart, typeof RadarChart, typeof HeatmapChart, typeof GaugeChart, typeof FunnelChart, typeof TreemapChart, typeof SunburstChart, typeof SankeyChart, typeof GraphChart, typeof CandlestickChart, typeof BoxplotChart, typeof ParallelChart, typeof ThemeRiverChart, typeof MapChart, typeof CustomChart, typeof EffectScatterChart, typeof PictorialBarChart];
118
+ declare const allComponents: readonly [typeof GridComponent, typeof TooltipComponent, typeof TitleComponent, typeof LegendComponent, typeof DataZoomComponent, typeof ToolboxComponent, typeof VisualMapComponent, typeof GeoComponent, typeof ParallelComponent, typeof CalendarComponent, typeof GraphicComponent, typeof PolarComponent, typeof RadarComponent, typeof DatasetComponent, typeof MarkLineComponent, typeof MarkPointComponent, typeof MarkAreaComponent, typeof TimelineComponent, typeof BrushComponent, typeof SingleAxisComponent];
119
+ /** Register all ECharts chart types, components, and renderers. Convenient for demos/quick starts. */
120
+ declare function registerAll(): void;
121
+ /** Register specific chart types by name for tree-shaking optimization. */
122
+ declare function registerCharts(...chartTypes: Array<(typeof allCharts)[number]>): void;
123
+ /** Register specific components by reference. */
124
+ declare function registerComponents(...components: Array<(typeof allComponents)[number]>): void;
125
+
126
+ /** Dark theme preset */
127
+ declare const darkTheme: {
128
+ backgroundColor: string;
129
+ textStyle: {
130
+ color: string;
131
+ };
132
+ title: {
133
+ textStyle: {
134
+ color: string;
135
+ };
136
+ };
137
+ legend: {
138
+ textStyle: {
139
+ color: string;
140
+ };
141
+ };
142
+ categoryAxis: {
143
+ axisLine: {
144
+ lineStyle: {
145
+ color: string;
146
+ };
147
+ };
148
+ splitLine: {
149
+ lineStyle: {
150
+ color: string;
151
+ };
152
+ };
153
+ axisLabel: {
154
+ color: string;
155
+ };
156
+ };
157
+ valueAxis: {
158
+ axisLine: {
159
+ lineStyle: {
160
+ color: string;
161
+ };
162
+ };
163
+ splitLine: {
164
+ lineStyle: {
165
+ color: string;
166
+ };
167
+ };
168
+ axisLabel: {
169
+ color: string;
170
+ };
171
+ };
172
+ color: string[];
173
+ };
174
+ /** Vintage theme preset */
175
+ declare const vintageTheme: {
176
+ color: string[];
177
+ backgroundColor: string;
178
+ textStyle: {};
179
+ title: {
180
+ textStyle: {
181
+ color: string;
182
+ };
183
+ };
184
+ categoryAxis: {
185
+ axisLine: {
186
+ lineStyle: {
187
+ color: string;
188
+ };
189
+ };
190
+ splitLine: {
191
+ lineStyle: {
192
+ color: string;
193
+ };
194
+ };
195
+ };
196
+ valueAxis: {
197
+ axisLine: {
198
+ lineStyle: {
199
+ color: string;
200
+ };
201
+ };
202
+ splitLine: {
203
+ lineStyle: {
204
+ color: string;
205
+ };
206
+ };
207
+ };
208
+ };
209
+ /** Pastel theme preset */
210
+ declare const pastelTheme: {
211
+ color: string[];
212
+ backgroundColor: string;
213
+ textStyle: {
214
+ color: string;
215
+ };
216
+ title: {
217
+ textStyle: {
218
+ color: string;
219
+ };
220
+ };
221
+ };
222
+ /** Register a named theme with ECharts */
223
+ declare function registerTheme(name: string, theme: object): void;
224
+ /** Register all built-in theme presets */
225
+ declare function registerBuiltinThemes(): void;
226
+
227
+ export { type ChartDivProps, EChart, EChart3D, type EChartBaseProps, type EChartComponentProps, EChartGraphic, type EChartGraphicProps, type GraphicElement, type SeriesComponentProps, type UseEChartsOptions, type UseEChartsReturn, darkTheme, pastelTheme, registerAll, registerBuiltinThemes, registerCharts, registerComponents, registerTheme, useECharts, useResizeObserver, vintageTheme };
@@ -0,0 +1,227 @@
1
+ import React$1, { RefObject } from 'react';
2
+ import { EChartsOption } from 'echarts';
3
+ export { ECharts as EChartsInstance, EChartsOption } from 'echarts';
4
+ import { EChartsType } from 'echarts/core';
5
+ import { LineChart, BarChart, PieChart, ScatterChart, RadarChart, HeatmapChart, GaugeChart, FunnelChart, TreemapChart, SunburstChart, SankeyChart, GraphChart, CandlestickChart, BoxplotChart, ParallelChart, ThemeRiverChart, MapChart, CustomChart, EffectScatterChart, PictorialBarChart } from 'echarts/charts';
6
+ export { BarChart, BoxplotChart, CandlestickChart, CustomChart, EffectScatterChart, FunnelChart, GaugeChart, GraphChart, HeatmapChart, LineChart, MapChart, ParallelChart, PictorialBarChart, PieChart, RadarChart, SankeyChart, ScatterChart, SunburstChart, ThemeRiverChart, TreemapChart } from 'echarts/charts';
7
+ import { GridComponent, TooltipComponent, TitleComponent, LegendComponent, DataZoomComponent, ToolboxComponent, VisualMapComponent, GeoComponent, ParallelComponent, CalendarComponent, GraphicComponent, PolarComponent, RadarComponent, DatasetComponent, MarkLineComponent, MarkPointComponent, MarkAreaComponent, TimelineComponent, BrushComponent, SingleAxisComponent } from 'echarts/components';
8
+ export { CalendarComponent, DataZoomComponent, DatasetComponent, GeoComponent, GraphicComponent, GridComponent, LegendComponent, PolarComponent, TitleComponent, ToolboxComponent, TooltipComponent, VisualMapComponent } from 'echarts/components';
9
+ export { CanvasRenderer, SVGRenderer } from 'echarts/renderers';
10
+
11
+ interface EChartBaseProps {
12
+ option: EChartsOption;
13
+ theme?: string | object;
14
+ renderer?: "canvas" | "svg";
15
+ notMerge?: boolean;
16
+ lazyUpdate?: boolean;
17
+ showLoading?: boolean;
18
+ loadingOption?: object;
19
+ onEvents?: Record<string, (params: any) => void>;
20
+ autoResize?: boolean;
21
+ }
22
+ interface SeriesComponentProps<T = any> extends Omit<EChartBaseProps, "option"> {
23
+ data: T;
24
+ title?: string;
25
+ xAxis?: EChartsOption["xAxis"];
26
+ yAxis?: EChartsOption["yAxis"];
27
+ tooltip?: boolean | EChartsOption["tooltip"];
28
+ legend?: boolean | EChartsOption["legend"];
29
+ grid?: EChartsOption["grid"];
30
+ seriesOptions?: Record<string, any>;
31
+ option?: Partial<EChartsOption>;
32
+ }
33
+ interface ChartDivProps {
34
+ style?: React.CSSProperties;
35
+ className?: string;
36
+ }
37
+ type EChartComponentProps = EChartBaseProps & ChartDivProps & React.HTMLAttributes<HTMLDivElement>;
38
+
39
+ declare const EChart: React$1.ForwardRefExoticComponent<EChartBaseProps & ChartDivProps & React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>> & {
40
+ Line: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
41
+ Bar: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
42
+ Pie: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
43
+ Scatter: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
44
+ Radar: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
45
+ Heatmap: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
46
+ Gauge: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
47
+ Funnel: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
48
+ Treemap: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
49
+ Sunburst: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
50
+ Sankey: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
51
+ Graph: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
52
+ Candlestick: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
53
+ Boxplot: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
54
+ Parallel: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
55
+ ThemeRiver: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
56
+ Map: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
57
+ Custom: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
58
+ EffectScatter: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
59
+ PictorialBar: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
60
+ };
61
+
62
+ declare const EChart3D: React$1.ForwardRefExoticComponent<EChartBaseProps & ChartDivProps & React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>> & {
63
+ Bar: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
64
+ Scatter: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
65
+ Line: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
66
+ Surface: React$1.FC<SeriesComponentProps<any> & ChartDivProps>;
67
+ Globe: React$1.FC<Omit<SeriesComponentProps<any>, "data"> & ChartDivProps & {
68
+ globe?: any;
69
+ series?: any[];
70
+ }>;
71
+ };
72
+
73
+ interface GraphicElement {
74
+ type: "rect" | "circle" | "ring" | "arc" | "polygon" | "polyline" | "path" | "image" | "text" | "group";
75
+ left?: number | string;
76
+ top?: number | string;
77
+ right?: number | string;
78
+ bottom?: number | string;
79
+ shape?: Record<string, any>;
80
+ style?: Record<string, any>;
81
+ children?: GraphicElement[];
82
+ onclick?: (e: any) => void;
83
+ onmouseover?: (e: any) => void;
84
+ onmouseout?: (e: any) => void;
85
+ [key: string]: any;
86
+ }
87
+ interface EChartGraphicProps extends Omit<EChartBaseProps, "option">, ChartDivProps, React$1.HTMLAttributes<HTMLDivElement> {
88
+ elements: GraphicElement[];
89
+ option?: Partial<EChartsOption>;
90
+ }
91
+ /**
92
+ * EChartGraphic — for custom drawing via ECharts graphic layer.
93
+ * Supports rect, circle, ring, arc, polygon, polyline, path, image, text, group elements.
94
+ */
95
+ declare const EChartGraphic: React$1.ForwardRefExoticComponent<EChartGraphicProps & React$1.RefAttributes<HTMLDivElement>>;
96
+
97
+ type ECharts = EChartsType;
98
+ interface UseEChartsOptions {
99
+ option: EChartsOption;
100
+ theme?: string | object;
101
+ renderer?: "canvas" | "svg";
102
+ notMerge?: boolean;
103
+ lazyUpdate?: boolean;
104
+ showLoading?: boolean;
105
+ loadingOption?: object;
106
+ onEvents?: Record<string, (params: any) => void>;
107
+ autoResize?: boolean;
108
+ }
109
+ interface UseEChartsReturn {
110
+ chartRef: RefObject<HTMLDivElement | null>;
111
+ instance: ECharts | null;
112
+ }
113
+ declare function useECharts(options: UseEChartsOptions): UseEChartsReturn;
114
+
115
+ declare function useResizeObserver(ref: RefObject<HTMLElement | null>, callback: () => void): void;
116
+
117
+ declare const allCharts: readonly [typeof LineChart, typeof BarChart, typeof PieChart, typeof ScatterChart, typeof RadarChart, typeof HeatmapChart, typeof GaugeChart, typeof FunnelChart, typeof TreemapChart, typeof SunburstChart, typeof SankeyChart, typeof GraphChart, typeof CandlestickChart, typeof BoxplotChart, typeof ParallelChart, typeof ThemeRiverChart, typeof MapChart, typeof CustomChart, typeof EffectScatterChart, typeof PictorialBarChart];
118
+ declare const allComponents: readonly [typeof GridComponent, typeof TooltipComponent, typeof TitleComponent, typeof LegendComponent, typeof DataZoomComponent, typeof ToolboxComponent, typeof VisualMapComponent, typeof GeoComponent, typeof ParallelComponent, typeof CalendarComponent, typeof GraphicComponent, typeof PolarComponent, typeof RadarComponent, typeof DatasetComponent, typeof MarkLineComponent, typeof MarkPointComponent, typeof MarkAreaComponent, typeof TimelineComponent, typeof BrushComponent, typeof SingleAxisComponent];
119
+ /** Register all ECharts chart types, components, and renderers. Convenient for demos/quick starts. */
120
+ declare function registerAll(): void;
121
+ /** Register specific chart types by name for tree-shaking optimization. */
122
+ declare function registerCharts(...chartTypes: Array<(typeof allCharts)[number]>): void;
123
+ /** Register specific components by reference. */
124
+ declare function registerComponents(...components: Array<(typeof allComponents)[number]>): void;
125
+
126
+ /** Dark theme preset */
127
+ declare const darkTheme: {
128
+ backgroundColor: string;
129
+ textStyle: {
130
+ color: string;
131
+ };
132
+ title: {
133
+ textStyle: {
134
+ color: string;
135
+ };
136
+ };
137
+ legend: {
138
+ textStyle: {
139
+ color: string;
140
+ };
141
+ };
142
+ categoryAxis: {
143
+ axisLine: {
144
+ lineStyle: {
145
+ color: string;
146
+ };
147
+ };
148
+ splitLine: {
149
+ lineStyle: {
150
+ color: string;
151
+ };
152
+ };
153
+ axisLabel: {
154
+ color: string;
155
+ };
156
+ };
157
+ valueAxis: {
158
+ axisLine: {
159
+ lineStyle: {
160
+ color: string;
161
+ };
162
+ };
163
+ splitLine: {
164
+ lineStyle: {
165
+ color: string;
166
+ };
167
+ };
168
+ axisLabel: {
169
+ color: string;
170
+ };
171
+ };
172
+ color: string[];
173
+ };
174
+ /** Vintage theme preset */
175
+ declare const vintageTheme: {
176
+ color: string[];
177
+ backgroundColor: string;
178
+ textStyle: {};
179
+ title: {
180
+ textStyle: {
181
+ color: string;
182
+ };
183
+ };
184
+ categoryAxis: {
185
+ axisLine: {
186
+ lineStyle: {
187
+ color: string;
188
+ };
189
+ };
190
+ splitLine: {
191
+ lineStyle: {
192
+ color: string;
193
+ };
194
+ };
195
+ };
196
+ valueAxis: {
197
+ axisLine: {
198
+ lineStyle: {
199
+ color: string;
200
+ };
201
+ };
202
+ splitLine: {
203
+ lineStyle: {
204
+ color: string;
205
+ };
206
+ };
207
+ };
208
+ };
209
+ /** Pastel theme preset */
210
+ declare const pastelTheme: {
211
+ color: string[];
212
+ backgroundColor: string;
213
+ textStyle: {
214
+ color: string;
215
+ };
216
+ title: {
217
+ textStyle: {
218
+ color: string;
219
+ };
220
+ };
221
+ };
222
+ /** Register a named theme with ECharts */
223
+ declare function registerTheme(name: string, theme: object): void;
224
+ /** Register all built-in theme presets */
225
+ declare function registerBuiltinThemes(): void;
226
+
227
+ export { type ChartDivProps, EChart, EChart3D, type EChartBaseProps, type EChartComponentProps, EChartGraphic, type EChartGraphicProps, type GraphicElement, type SeriesComponentProps, type UseEChartsOptions, type UseEChartsReturn, darkTheme, pastelTheme, registerAll, registerBuiltinThemes, registerCharts, registerComponents, registerTheme, useECharts, useResizeObserver, vintageTheme };