Generates and validates configs for ApexCharts charts, grid, gantt, tree, sankey, stock and maps.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Build a minimal valid ApexCharts options object for a given chart type. Picks the correct series data format (axis vs non-axis) and supplies placeholder data when none is given. Use this as the starting point for a chart. Since apexcharts 8.0 the Tier 2 types (waterfall, dumbbell, streamgraph, raincloud, violin, icicle, sunburst, unit, waffle) are outside the default bundle: the page also needs that type's add-on import next to 'apexcharts', or `import ApexCharts from 'apexcharts/full'`; apexcharts_list_types names the import per type.
ApexCharts chart.type value (e.g. "line", "bar", "pie").
Optional chart title.
Chart height in px (default 350).
Optional series data in the format required by the chart type.
Stack series. Honored only for bar, column, area and line chart types.
xaxis categories (axis charts) or labels (pie/donut/etc).
Render bars horizontally. Honored only for bar and dumbbell (column is vertical by definition).
Build a minimal valid ApexCharts options object for a given chart type. Picks the correct series data format (axis vs non-axis) and supplies placeholder data when none is given. Use this as the starting point for a chart. Since apexcharts 8.0 the Tier 2 types (waterfall, dumbbell, streamgraph, raincloud, violin, icicle, sunburst, unit, waffle) are outside the default bundle: the page also needs that type's add-on import next to 'apexcharts', or `import ApexCharts from 'apexcharts/full'`; apexcharts_list_types names the import per type.
| Argument | Type | Description |
|---|---|---|
| type* | string | ApexCharts chart.type value (e.g. "line", "bar", "pie"). |
| title | string | Optional chart title. |
| height | integer | Chart height in px (default 350). |
| series | array | Optional series data in the format required by the chart type. |
| stacked | boolean | Stack series. Honored only for bar, column, area and line chart types. |
| categories | array | xaxis categories (axis charts) or labels (pie/donut/etc). |
| horizontal | boolean | Render bars horizontally. Honored only for bar and dumbbell (column is vertical by definition). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"line",
"area",
"bar",
"column",
"scatter",
"bubble",
"rangeArea",
"rangeBar",
"funnel",
"pyramid",
"waterfall",
"dumbbell",
"streamgraph",
"raincloud",
"histogram",
"candlestick",
"boxPlot",
"violin",
"heatmap",
"treemap",
"icicle",
"radar",
"pie",
"donut",
"polarArea",
"radialBar",
"gauge",
"sunburst",
"unit",
"waffle"
],
"type": "string",
"description": "ApexCharts chart.type value (e.g. \"line\", \"bar\", \"pie\")."
},
"title": {
"type": "string",
"description": "Optional chart title."
},
"height": {
"type": "integer",
"description": "Chart height in px (default 350).",
"exclusiveMinimum": 0
},
"series": {
"type": "array",
"items": {},
"description": "Optional series data in the format required by the chart type."
},
"stacked": {
"type": "boolean",
"description": "Stack series. Honored only for bar, column, area and line chart types."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "xaxis categories (axis charts) or labels (pie/donut/etc)."
},
"horizontal": {
"type": "boolean",
"description": "Render bars horizontally. Honored only for bar and dumbbell (column is vertical by definition)."
}
},
"additionalProperties": false
}Read authoritative ApexCharts documentation from the bundled apexcharts-skill knowledge base. Call with no arguments to list all available files (SKILL.md plus per-family reference docs). Call with `file` to return that file as markdown. Use this when you need to look up an option, formatter signature, plotOptions detail, or a fully worked example for a specific chart family.
| Argument | Type | Description |
|---|---|---|
| file | string | Filename to read (e.g. "SKILL.md", "circular-charts.md"). Omit to list available files. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"circular-charts.md\"). Omit to list available files."
}
},
"additionalProperties": false
}Return every product (charts, gantt, tree, sankey, grid, stock, maps) currently exposed by this MCP server, with a "when to pick this" hint and the tool names it registers. Use this once at the start of a session to decide which product matches the user's task; then call that product's tools directly. Each product also reports `compatibility`: the bundled skill version and the upstream library version its guidance was verified against; use it to tell the user which library version this server targets. Results respect the APEXCHARTS_MCP_PRODUCTS env-var gating.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Return every ApexCharts chart type this server supports, with name, description, family (cartesian/bar/financial/circular/grid/radar/unit), series format (axis vs non-axis), expected data shape, the reference doc filename for deeper detail, and `bundle`: { tier: 1 } for a type the default bundle has, or for a Tier 2 type { tier: 2, import, scripts, since, failure, note? } naming the add-on it needs. Optionally filter by family.
| Argument | Type | Description |
|---|---|---|
| family | string | Optional family filter. Omit to return all supported types. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"family": {
"enum": [
"cartesian",
"bar",
"financial",
"circular",
"grid",
"radar",
"unit"
],
"type": "string",
"description": "Optional family filter. Omit to return all supported types."
}
},
"additionalProperties": false
}Check an ApexCharts options object against the data-format rules and known pitfalls (wrong series shape for chart type, radialBar values outside the min/max domain, undefined data points, conflicting tooltip flags, hex colors missing #, etc.). Returns structured issues so the caller can fix them. Returns ok: true when there are no errors (warnings still allowed).
| Argument | Type | Description |
|---|---|---|
| config* | object | The ApexCharts options object to validate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"config"
],
"properties": {
"config": {
"type": "object",
"description": "The ApexCharts options object to validate.",
"additionalProperties": {}
}
},
"additionalProperties": false
}Build a minimal valid ApexGantt options object. Generates a placeholder schedule (phases, dependencies, a milestone) when `tasks` is omitted, so the result can be rendered as-is. The placeholder dates are emitted in whatever `inputDateFormat` is chosen, so they parse without further work.
| Argument | Type | Description |
|---|---|---|
| tasks | array | Task array (`series`). Each task: { id, name, startTime, endTime?, progress?, type?, parentId?, dependency? }. |
| title | string | Optional chart title. |
| height | integer | Chart height in px (default 600). |
| baseline | any | Enable planned-vs-actual baseline track. Tasks must supply a per-task `baseline: { start, end }`. |
| enableSelection | boolean | Enable `getSelectedTasks()` / `setSelectedTasks()` / `selectionChange` event. |
| inputDateFormat | string | dayjs format for parsing date strings. Default is ApexGantt's own default "MM-DD-YYYY". Common alternatives: "YYYY-MM-DD", "DD/MM/YYYY". |
| enableCriticalPath | boolean | Highlight the longest dependency chain on render. |
Read authoritative ApexGantt documentation from the bundled apexgantt-skill knowledge base. Call with no arguments to list all available files. Call with `file` to return that file as markdown. Use this to look up task data format, dependency types, view modes, the update lifecycle, or framework integration.
| Argument | Type | Description |
|---|---|---|
| file | string | Filename to read (e.g. "SKILL.md", "data-format.md"). Omit to list available files. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"data-format.md\"). Omit to list available files."
}
},
"additionalProperties": false
}Check an ApexGantt options object against what the library does with it (missing id/name, tasks missing the dates the library requires, an incomplete `parsing` map, duplicate ids, orphan parentId, progress out of 0 to 100, ISO dates with the default MM-DD-YYYY format, dependency object using `id` instead of `taskId`, unknown dependency target, self-dependency, invalid dependency type, cycles, baseline missing start/end). Returns structured issues with stable rule ids.
| Argument | Type | Description |
|---|---|---|
| config* | object | The ApexGantt options object to validate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"config"
],
"properties": {
"config": {
"type": "object",
"description": "The ApexGantt options object to validate.",
"additionalProperties": {}
}
},
"additionalProperties": false
}Build a minimal valid `<apex-grid>` config: `{ columns, data }`. When both are omitted, a small users table is generated. When only `columns` is omitted, they are inferred from the keys of the first data row with `type` inferred per column. Pass `enableSortAndFilter: true` to opt every generated column in.
| Argument | Type | Description |
|---|---|---|
| data | array | Array of row objects. Keys referenced by `column.key` must exist on each row. |
| columns | array | Array of ColumnConfiguration. Each column needs `{ key, type? }` where key is a real key of each data row. |
| resizable | boolean | Convenience: add `resizable: true` to every generated column. |
| enableSortAndFilter | boolean | Convenience: add `sort: true` and `filter: true` to every generated column. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"type": "array",
"items": {},
"description": "Array of row objects. Keys referenced by `column.key` must exist on each row."
},
"columns": {
"type": "array",
"items": {},
"description": "Array of ColumnConfiguration. Each column needs `{ key, type? }` where key is a real key of each data row."
},
"resizable": {
"type": "boolean",
"description": "Convenience: add `resizable: true` to every generated column."
},
"enableSortAndFilter": {
"type": "boolean",
"description": "Convenience: add `sort: true` and `filter: true` to every generated column."
}
},
"additionalProperties": false
}Read authoritative apex-grid documentation from the bundled apexgrid-skill knowledge base. Call with no arguments to list available files; call with `file` to fetch markdown. Use this for ColumnConfiguration, Lit cellTemplate, sort/filter, data pipeline, or framework integration.
| Argument | Type | Description |
|---|---|---|
| file | string | Filename to read (e.g. "SKILL.md", "columns-and-templates.md"). Omit to list available files. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"columns-and-templates.md\"). Omit to list available files."
}
},
"additionalProperties": false
}Check an apex-grid `{ columns, data }` config against apexgrid-skill rules: columns/data required and array-shaped, every column.key must be a real key of the data rows, column.key unique, type is one of apex-grid's column types (string, number, boolean, date, currency, select and the other presentation types), sort/filter is boolean or config object. Returns structured issues with stable rule ids.
| Argument | Type | Description |
|---|---|---|
| config* | object | The apex-grid config `{ columns, data }` to validate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"config"
],
"properties": {
"config": {
"type": "object",
"description": "The apex-grid config `{ columns, data }` to validate.",
"additionalProperties": {}
}
},
"additionalProperties": false
}Build a minimal valid ApexMaps options object for a geographic visualization. Supports the six series types: choropleth (default), bubble, marker, arc, line, hexbin. Geometry comes from the built-in registry (e.g. "world/countries", "us", "eu/nuts2"), so no GeoJSON is needed. Generates a small placeholder dataset when data is omitted. Use the result with `new ApexMaps(el, options)` then `await map.render()`.
| Argument | Type | Description |
|---|---|---|
| map | string | Geometry registry pack id or alias: "world/countries", "us", "us/counties", "eu/nuts2", "jp/prefectures", ... Default "world/countries". |
| data | array | Data array in the datum shape of `type`: choropleth rows `{ <key>, value }`, bubble/marker `{ lon, lat, ... }`, arc `{ from, to }`, line `{ path: [[lon,lat],...] }`, hexbin `{ lon, lat, value? }`. Omit for a placeholder dataset. |
| type | string | Series type. Default "choropleth". "hexbin" bins points into a hex lattice (density); it takes points, never region-keyed rows. |
| joinBy | any | Join spec: "field", ["geoField", "dataField"], or { geo, data }. Omit to use key auto-detection (the placeholder emits ["iso_a3", "code"]). |
| palette | string | Palette name for the value scale (e.g. "blues", "viridis", "okabeIto"). |
| themeMode | string | Theme mode. |
Read authoritative ApexMaps documentation from the bundled apexmaps-skill knowledge base. Call with no arguments to list available files; call with `file` to fetch markdown. Use this for series datum shapes, joins, the geometry registry, projections, scales, drilldown, theming, or framework integration.
| Argument | Type | Description |
|---|---|---|
| file | string | Filename to read (e.g. "SKILL.md", "data-format.md"). Omit to list available files. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"data-format.md\"). Omit to list available files."
}
},
"additionalProperties": false
}Check an ApexMaps options object against what the library does with it: geo.map present and a built-in map id (or a URL / inline geometry), hex layouts only where one exists, a frameable geo.view.fit, known series types, arc from/to endpoints, line paths, bubble/marker coordinates or something to join on, hexbin point positions and aggregates (a hexbin has no joinBy), [lon, lat] ordering, joinBy shape, null (not undefined) for missing values, and known scale / projection / palette names. Returns structured issues with stable rule ids, severity, path, and a fix when there is a one-shot remedy.
| Argument | Type | Description |
|---|---|---|
| config* | object | The ApexMaps options object to validate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"config"
],
"properties": {
"config": {
"type": "object",
"description": "The ApexMaps options object to validate.",
"additionalProperties": {}
}
},
"additionalProperties": false
}Build a minimal valid ApexSankey config split into `options` (constructor) and `data` (render payload). Generates a 5-node placeholder flow when nodes/edges are omitted so the result renders something visible. Use the result by calling `new ApexSankey(el, options)` then `sankey.render(data)`.
| Argument | Type | Description |
|---|---|---|
| edges | array | Array of edge objects: `{ source, target, value, type }`. source/target reference node ids; value > 0. |
| nodes | array | Array of node objects: `{ id, title, color? }`. ids must be unique. |
| width | number | string | Canvas width (px number or any CSS width). Default "100%". |
| height | number | string | Canvas height (px number or "auto"). Default "auto" ≈ 1.6:1 from width. |
| spacing | number | Horizontal gap between node columns (px). Default 20. |
| animation | boolean | Enable entrance animation. Default true. |
| nodeWidth | number | Node rectangle width (px). Default 20. |
| tooltipTheme | string |
Read authoritative ApexSankey documentation from the bundled apexsankey-skill knowledge base. Call with no arguments to list available files; call with `file` to fetch markdown. Use this for the { nodes, edges, options } data shape, layer ordering, styling, or framework integration.
| Argument | Type | Description |
|---|---|---|
| file | string | Filename to read (e.g. "SKILL.md", "data-format.md"). Omit to list available files. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"data-format.md\"). Omit to list available files."
}
},
"additionalProperties": false
}Check an ApexSankey config against what the library does with it (unique node ids, edges reference real nodes, no negative values, no self-loops, no parallel edges that collapse into one, nodes without edges). Cycles are allowed: they render as dashed loops. Accepts the wrapped `{ options, data }` shape from generate_config, the raw render payload `{ nodes, edges }`, or an ApexSankey.compare `{ before, after }` config.
| Argument | Type | Description |
|---|---|---|
| config* | object | The ApexSankey config object to validate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"config"
],
"properties": {
"config": {
"type": "object",
"description": "The ApexSankey config object to validate.",
"additionalProperties": {}
}
},
"additionalProperties": false
}Build a minimal valid ApexStock options object for a financial / stock chart. Generates a placeholder OHLCV candle series when `data` is omitted, so the result renders as-is. Note: ApexStock does not bundle ApexCharts. The host provides the constructor per instance (`new ApexStock(el, options, { ApexCharts })`), once app-wide (`ApexStock.setApexCharts(ApexCharts)`), or as the `window.ApexCharts` global. That is a host-page concern, not part of this options object.
| Argument | Type | Description |
|---|---|---|
| data | array | OHLC candles for series[0].data. Each point: { x, y: [open, high, low, close], v? }. Omit for a placeholder series. |
| name | string | Series name (default "Price"). |
| theme | string | Theme mode (default "light"). |
| title | string | Optional chart title. |
| height | integer | Chart height in px (default 600). |
| indicators | any | Indicators to enable: a list of keys (e.g. ["moving average", "rsi"]) or a keyed config map (e.g. { "bollinger bands": { period: 20, stdDev: 2 } }). Overlays and oscillators both stack; each oscillator gets its own pane. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"type": "array",
"items": {},
"description": "OHLC candles for series[0].data. Each point: { x, y: [open, high, low, close], v? }. Omit for a placeholder series."
},
"name": {
"type": "string",
"description": "Series name (default \"Price\")."
},
"theme": {
"enum": [
"light",
"dark"
],
"type": "string",
"description": "Theme mode (default \"light\")."
},
"title": {
"type": "string",
"description": "Optional chart title."
},
"height": {
"type": "integer",
"description": "Chart height in px (default 600).",
"exclusiveMinimum": 0
},
"indicators": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "object",
"additionalProperties": {}
}
],
"description": "Indicators to enable: a list of keys (e.g. [\"moving average\", \"rsi\"]) or a keyed config map (e.g. { \"bollinger bands\": { period: 20, stdDev: 2 } }). Overlays and oscillators both stack; each oscillator gets its own pane."
}
},
"additionalProperties": false
}Read authoritative ApexStock documentation from the bundled apexstock-skill knowledge base. Call with no arguments to list all available files. Call with `file` to return that file as markdown. Use this to look up the OHLC data format, indicators, streaming/appendData, trading overlays, theming, or framework integration.
| Argument | Type | Description |
|---|---|---|
| file | string | Filename to read (e.g. "SKILL.md", "indicators.md"). Omit to list available files. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"indicators.md\"). Omit to list available files."
}
},
"additionalProperties": false
}Check an ApexStock options object against the rules in apexstock-skill (missing series/data, flat o/h/l/c keys instead of a y:[o,h,l,c] array, malformed or inconsistent OHLC tuples, missing/invalid x, non-ascending data, invalid theme.mode, and unknown indicator keys). Returns structured issues with stable rule ids.
| Argument | Type | Description |
|---|---|---|
| config* | object | The ApexStock options object to validate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"config"
],
"properties": {
"config": {
"type": "object",
"description": "The ApexStock options object to validate.",
"additionalProperties": {}
}
},
"additionalProperties": false
}Build a minimal valid ApexTree config split into `options` (constructor) and `data` (the root NestedNode passed to `tree.render(data)`). Generates a small 3-level org chart placeholder when `data` is omitted. Every node in the output has `children: []` even for leaves (ApexTree requires it).
| Argument | Type | Description |
|---|---|---|
| data | object | Root NestedNode: `{ id, name, children: [...] }`. Recursive. Leaves must have `children: []`. |
| theme | string | Built-in "light"/"dark"/"custom", or (apextree 2.1+) the name of a theme registered on the shared family registry. |
| width | number | string | Canvas width. Default "100%". |
| height | number | string | Canvas height. Default "auto". |
| direction | string | Where the root sits and which way the tree grows. Default "top". "radial" (apextree 2.0+) puts the root at the centre with one ring per depth. |
| edgeStyle | string | |
| nodeWidth | number | |
| contentKey | string | Key on each node used as the label. Default "name". Set to "data" to activate the built-in org-card template. |
Read authoritative ApexTree documentation from the bundled apextree-skill knowledge base. Call with no arguments to list available files; call with `file` to fetch markdown. Use this for the NestedNode data shape, grow directions, nodeTemplate, the graph API, or framework integration.
| Argument | Type | Description |
|---|---|---|
| file | string | Filename to read (e.g. "SKILL.md", "data-format.md"). Omit to list available files. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"data-format.md\"). Omit to list available files."
}
},
"additionalProperties": false
}Check an ApexTree config against what the library does with it: root is a NestedNode, every node has an id and a label, children (when present) is an array, ids unique across the whole tree, valid direction/edgeStyle/edgeColorMode/theme values, enableSelection is "single"|"multi"|false (NOT boolean true), and a warning when contentKey is "data" but a node has no `data` payload. Accepts both the wrapped `{ options, data }` shape and a bare root node.
| Argument | Type | Description |
|---|---|---|
| config* | object | The ApexTree config to validate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"config"
],
"properties": {
"config": {
"type": "object",
"description": "The ApexTree config to validate.",
"additionalProperties": {}
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tasks": {
"type": "array",
"items": {},
"description": "Task array (`series`). Each task: { id, name, startTime, endTime?, progress?, type?, parentId?, dependency? }."
},
"title": {
"type": "string",
"description": "Optional chart title."
},
"height": {
"type": "integer",
"description": "Chart height in px (default 600).",
"exclusiveMinimum": 0
},
"baseline": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"color": {
"type": "string"
}
},
"additionalProperties": true
}
],
"description": "Enable planned-vs-actual baseline track. Tasks must supply a per-task `baseline: { start, end }`."
},
"enableSelection": {
"type": "boolean",
"description": "Enable `getSelectedTasks()` / `setSelectedTasks()` / `selectionChange` event."
},
"inputDateFormat": {
"type": "string",
"description": "dayjs format for parsing date strings. Default is ApexGantt's own default \"MM-DD-YYYY\". Common alternatives: \"YYYY-MM-DD\", \"DD/MM/YYYY\"."
},
"enableCriticalPath": {
"type": "boolean",
"description": "Highlight the longest dependency chain on render."
}
},
"additionalProperties": false
}| projection | any | Projection name or spec object. Omit to use the pack default (recommended: packs like "us" already pick albersUsa). |
| seriesName | string | Series display name (legend / tooltip). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"map": {
"type": "string",
"description": "Geometry registry pack id or alias: \"world/countries\", \"us\", \"us/counties\", \"eu/nuts2\", \"jp/prefectures\", ... Default \"world/countries\"."
},
"data": {
"type": "array",
"items": {},
"description": "Data array in the datum shape of `type`: choropleth rows `{ <key>, value }`, bubble/marker `{ lon, lat, ... }`, arc `{ from, to }`, line `{ path: [[lon,lat],...] }`, hexbin `{ lon, lat, value? }`. Omit for a placeholder dataset."
},
"type": {
"enum": [
"choropleth",
"bubble",
"marker",
"arc",
"line",
"hexbin"
],
"type": "string",
"description": "Series type. Default \"choropleth\". \"hexbin\" bins points into a hex lattice (density); it takes points, never region-keyed rows."
},
"joinBy": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
],
"maxItems": 2,
"minItems": 2
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
}
],
"description": "Join spec: \"field\", [\"geoField\", \"dataField\"], or { geo, data }. Omit to use key auto-detection (the placeholder emits [\"iso_a3\", \"code\"])."
},
"palette": {
"type": "string",
"description": "Palette name for the value scale (e.g. \"blues\", \"viridis\", \"okabeIto\")."
},
"themeMode": {
"enum": [
"light",
"dark",
"auto"
],
"type": "string",
"description": "Theme mode."
},
"projection": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {}
}
],
"description": "Projection name or spec object. Omit to use the pack default (recommended: packs like \"us\" already pick albersUsa)."
},
"seriesName": {
"type": "string",
"description": "Series display name (legend / tooltip)."
}
},
"additionalProperties": false
}| Tooltip preset. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"edges": {
"type": "array",
"items": {},
"description": "Array of edge objects: `{ source, target, value, type }`. source/target reference node ids; value > 0."
},
"nodes": {
"type": "array",
"items": {},
"description": "Array of node objects: `{ id, title, color? }`. ids must be unique."
},
"width": {
"type": [
"number",
"string"
],
"description": "Canvas width (px number or any CSS width). Default \"100%\"."
},
"height": {
"type": [
"number",
"string"
],
"description": "Canvas height (px number or \"auto\"). Default \"auto\" ≈ 1.6:1 from width."
},
"spacing": {
"type": "number",
"description": "Horizontal gap between node columns (px). Default 20."
},
"animation": {
"type": "boolean",
"description": "Enable entrance animation. Default true."
},
"nodeWidth": {
"type": "number",
"description": "Node rectangle width (px). Default 20."
},
"tooltipTheme": {
"enum": [
"light",
"dark"
],
"type": "string",
"description": "Tooltip preset."
}
},
"additionalProperties": false
}| nodeHeight | number |
| enableToolbar | boolean |
| siblingSpacing | number | Horizontal spacing between siblings (px). |
| childrenSpacing | number | Vertical spacing between a node and its children (px). |
| enableSelection | string | boolean | Selection mode. Note: enableSelection: true is INVALID — use "single" or "multi". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"type": "object",
"description": "Root NestedNode: `{ id, name, children: [...] }`. Recursive. Leaves must have `children: []`.",
"additionalProperties": {}
},
"theme": {
"type": "string",
"description": "Built-in \"light\"/\"dark\"/\"custom\", or (apextree 2.1+) the name of a theme registered on the shared family registry."
},
"width": {
"type": [
"number",
"string"
],
"description": "Canvas width. Default \"100%\"."
},
"height": {
"type": [
"number",
"string"
],
"description": "Canvas height. Default \"auto\"."
},
"direction": {
"enum": [
"top",
"bottom",
"left",
"right",
"radial"
],
"type": "string",
"description": "Where the root sits and which way the tree grows. Default \"top\". \"radial\" (apextree 2.0+) puts the root at the centre with one ring per depth."
},
"edgeStyle": {
"enum": [
"orthogonal",
"curved",
"straight"
],
"type": "string"
},
"nodeWidth": {
"type": "number"
},
"contentKey": {
"type": "string",
"description": "Key on each node used as the label. Default \"name\". Set to \"data\" to activate the built-in org-card template."
},
"nodeHeight": {
"type": "number"
},
"enableToolbar": {
"type": "boolean"
},
"siblingSpacing": {
"type": "number",
"description": "Horizontal spacing between siblings (px)."
},
"childrenSpacing": {
"type": "number",
"description": "Vertical spacing between a node and its children (px)."
},
"enableSelection": {
"enum": [
"single",
"multi",
false
],
"type": [
"string",
"boolean"
],
"description": "Selection mode. Note: enableSelection: true is INVALID — use \"single\" or \"multi\"."
}
},
"additionalProperties": false
}