mcp-probe-kit 3.0.15 → 3.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +618 -410
- package/build/index.js +13 -1
- package/build/lib/__tests__/memory-client.unit.test.d.ts +1 -0
- package/build/lib/__tests__/memory-client.unit.test.js +83 -0
- package/build/lib/__tests__/memory-config.unit.test.d.ts +1 -0
- package/build/lib/__tests__/memory-config.unit.test.js +33 -0
- package/build/lib/cursor-history-client.d.ts +54 -0
- package/build/lib/cursor-history-client.js +240 -0
- package/build/lib/gitnexus-bridge.js +6 -8
- package/build/lib/memory-client.d.ts +61 -0
- package/build/lib/memory-client.js +293 -0
- package/build/lib/memory-config.d.ts +14 -0
- package/build/lib/memory-config.js +31 -0
- package/build/lib/memory-orchestration.d.ts +26 -0
- package/build/lib/memory-orchestration.js +65 -0
- package/build/lib/project-detector.js +6 -4
- package/build/lib/skill-bridge.d.ts +31 -0
- package/build/lib/skill-bridge.js +100 -0
- package/build/lib/workspace-root.d.ts +12 -0
- package/build/lib/workspace-root.js +153 -0
- package/build/resources/ui-ux-data/charts.json +302 -0
- package/build/resources/ui-ux-data/colors.json +1058 -0
- package/build/resources/ui-ux-data/icons.json +1102 -0
- package/build/resources/ui-ux-data/landing.json +262 -0
- package/build/resources/ui-ux-data/metadata.json +6 -0
- package/build/resources/ui-ux-data/products.json +1058 -0
- package/build/resources/ui-ux-data/react-performance.json +574 -0
- package/build/resources/ui-ux-data/stacks/astro.json +266 -0
- package/build/resources/ui-ux-data/stacks/flutter.json +626 -0
- package/build/resources/ui-ux-data/stacks/html-tailwind.json +662 -0
- package/build/resources/ui-ux-data/stacks/jetpack-compose.json +626 -0
- package/build/resources/ui-ux-data/stacks/nextjs.json +218 -0
- package/build/resources/ui-ux-data/stacks/nuxt-ui.json +14 -0
- package/build/resources/ui-ux-data/stacks/nuxtjs.json +182 -0
- package/build/resources/ui-ux-data/stacks/react-native.json +350 -0
- package/build/resources/ui-ux-data/stacks/react.json +530 -0
- package/build/resources/ui-ux-data/stacks/shadcn.json +566 -0
- package/build/resources/ui-ux-data/stacks/svelte.json +134 -0
- package/build/resources/ui-ux-data/stacks/swiftui.json +26 -0
- package/build/resources/ui-ux-data/stacks/vue.json +170 -0
- package/build/resources/ui-ux-data/styles.json +1610 -0
- package/build/resources/ui-ux-data/typography.json +743 -0
- package/build/resources/ui-ux-data/ui-reasoning.json +1431 -0
- package/build/resources/ui-ux-data/ux-guidelines.json +1190 -0
- package/build/resources/ui-ux-data/web-interface.json +389 -0
- package/build/schemas/code-analysis-tools.d.ts +1 -1
- package/build/schemas/code-analysis-tools.js +1 -1
- package/build/schemas/index.d.ts +198 -4
- package/build/schemas/index.js +2 -0
- package/build/schemas/memory-tools.d.ts +191 -0
- package/build/schemas/memory-tools.js +106 -0
- package/build/schemas/orchestration-tools.d.ts +3 -3
- package/build/schemas/orchestration-tools.js +3 -3
- package/build/schemas/ui-ux-schemas.d.ts +8 -0
- package/build/schemas/ui-ux-schemas.js +5 -1
- package/build/tools/__tests__/cursor-history.unit.test.d.ts +1 -0
- package/build/tools/__tests__/cursor-history.unit.test.js +87 -0
- package/build/tools/__tests__/memorize_asset.unit.test.d.ts +1 -0
- package/build/tools/__tests__/memorize_asset.unit.test.js +68 -0
- package/build/tools/code_insight.d.ts +20 -0
- package/build/tools/code_insight.js +15 -0
- package/build/tools/cursor_list_conversations.d.ts +7 -0
- package/build/tools/cursor_list_conversations.js +35 -0
- package/build/tools/cursor_read_conversation.d.ts +7 -0
- package/build/tools/cursor_read_conversation.js +36 -0
- package/build/tools/cursor_search_conversations.d.ts +7 -0
- package/build/tools/cursor_search_conversations.js +36 -0
- package/build/tools/index.d.ts +6 -0
- package/build/tools/index.js +7 -0
- package/build/tools/init_project_context.d.ts +20 -1
- package/build/tools/init_project_context.js +114 -99
- package/build/tools/memorize_asset.d.ts +7 -0
- package/build/tools/memorize_asset.js +66 -0
- package/build/tools/read_memory_asset.d.ts +7 -0
- package/build/tools/read_memory_asset.js +26 -0
- package/build/tools/scan_and_extract_patterns.d.ts +27 -0
- package/build/tools/scan_and_extract_patterns.js +346 -0
- package/build/tools/start_bugfix.d.ts +20 -0
- package/build/tools/start_bugfix.js +97 -69
- package/build/tools/start_feature.d.ts +20 -0
- package/build/tools/start_feature.js +61 -31
- package/build/tools/start_onboard.d.ts +20 -0
- package/build/tools/start_onboard.js +15 -0
- package/build/tools/start_product.js +8 -1
- package/build/tools/start_ui.d.ts +20 -0
- package/build/tools/start_ui.js +79 -34
- package/build/tools/ui-ux-tools.js +21 -17
- package/build/utils/ui-data-loader.d.ts +18 -2
- package/build/utils/ui-data-loader.js +74 -12
- package/docs/data/tools.js +472 -373
- package/docs/i18n/all-tools/en.json +38 -5
- package/docs/i18n/all-tools/ja.json +14 -4
- package/docs/i18n/all-tools/ko.json +13 -3
- package/docs/i18n/all-tools/zh-CN.json +38 -5
- package/docs/i18n/en.json +48 -10
- package/docs/i18n/ja.json +47 -9
- package/docs/i18n/ko.json +47 -9
- package/docs/i18n/zh-CN.json +48 -10
- package/docs/pages/all-tools.html +515 -515
- package/docs/pages/examples.html +661 -661
- package/docs/pages/getting-started.html +673 -582
- package/docs/pages/migration.html +291 -291
- package/package.json +83 -81
- package/docs/debug-i18n.html +0 -163
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const WORKSPACE_ENV_KEYS = [
|
|
5
|
+
"MCP_PROJECT_ROOT",
|
|
6
|
+
"MCP_WORKSPACE_ROOT",
|
|
7
|
+
"CURSOR_WORKSPACE_ROOT",
|
|
8
|
+
"WORKSPACE_ROOT",
|
|
9
|
+
"PROJECT_ROOT",
|
|
10
|
+
"INIT_CWD",
|
|
11
|
+
"PWD",
|
|
12
|
+
];
|
|
13
|
+
const WORKSPACE_MARKERS = [
|
|
14
|
+
".git",
|
|
15
|
+
"package.json",
|
|
16
|
+
"pnpm-workspace.yaml",
|
|
17
|
+
"yarn.lock",
|
|
18
|
+
"package-lock.json",
|
|
19
|
+
"tsconfig.json",
|
|
20
|
+
"Cargo.toml",
|
|
21
|
+
"go.mod",
|
|
22
|
+
"pyproject.toml",
|
|
23
|
+
"requirements.txt",
|
|
24
|
+
".cursor",
|
|
25
|
+
".vscode",
|
|
26
|
+
".kiro",
|
|
27
|
+
"src",
|
|
28
|
+
"app",
|
|
29
|
+
"docs",
|
|
30
|
+
];
|
|
31
|
+
const COMMON_ROOT_DIRS = new Set([
|
|
32
|
+
"src",
|
|
33
|
+
"app",
|
|
34
|
+
"lib",
|
|
35
|
+
"test",
|
|
36
|
+
"tests",
|
|
37
|
+
"spec",
|
|
38
|
+
"specs",
|
|
39
|
+
"docs",
|
|
40
|
+
"scripts",
|
|
41
|
+
"packages",
|
|
42
|
+
"services",
|
|
43
|
+
"server",
|
|
44
|
+
"client",
|
|
45
|
+
"components",
|
|
46
|
+
"utils",
|
|
47
|
+
"bin",
|
|
48
|
+
"config",
|
|
49
|
+
"examples",
|
|
50
|
+
]);
|
|
51
|
+
function safeResolve(value) {
|
|
52
|
+
const trimmed = value.trim();
|
|
53
|
+
if (!trimmed) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
return path.resolve(trimmed);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function isExistingDirectory(target) {
|
|
64
|
+
if (!target) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
return fs.existsSync(target) && fs.statSync(target).isDirectory();
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function getRuntimePackageRoot() {
|
|
75
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
76
|
+
return path.resolve(moduleDir, "..", "..");
|
|
77
|
+
}
|
|
78
|
+
function looksLikeWorkspaceRoot(target) {
|
|
79
|
+
return WORKSPACE_MARKERS.some((marker) => fs.existsSync(path.join(target, marker)));
|
|
80
|
+
}
|
|
81
|
+
function findWorkspaceAncestor(start, packageRoot) {
|
|
82
|
+
if (!isExistingDirectory(start)) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
let current = start;
|
|
86
|
+
while (true) {
|
|
87
|
+
if (current !== packageRoot && looksLikeWorkspaceRoot(current)) {
|
|
88
|
+
return current;
|
|
89
|
+
}
|
|
90
|
+
const parent = path.dirname(current);
|
|
91
|
+
if (parent === current) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
current = parent;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export function isLikelyProjectNamedRelativePath(inputPath) {
|
|
98
|
+
if (!inputPath || path.isAbsolute(inputPath)) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
const normalized = inputPath.replace(/\\/g, "/").replace(/^\.\//, "").trim();
|
|
102
|
+
if (!normalized || normalized.startsWith("../")) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
const segments = normalized.split("/").filter(Boolean);
|
|
106
|
+
if (segments.length < 2) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
const [firstSegment, secondSegment] = segments;
|
|
110
|
+
if (COMMON_ROOT_DIRS.has(firstSegment.toLowerCase())) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
if (!/^[a-z0-9._-]+$/i.test(firstSegment)) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
return COMMON_ROOT_DIRS.has(secondSegment.toLowerCase()) || firstSegment.includes("-");
|
|
117
|
+
}
|
|
118
|
+
export function buildProjectRootRetryHint(inputPath) {
|
|
119
|
+
const normalized = (inputPath || "").replace(/\\/g, "/").trim();
|
|
120
|
+
const relativePath = normalized.split("/").slice(1).join("/") || "app/utils";
|
|
121
|
+
return {
|
|
122
|
+
preferred: {
|
|
123
|
+
project_root: "C:/path/to/your/project",
|
|
124
|
+
path: relativePath,
|
|
125
|
+
},
|
|
126
|
+
fallback: {
|
|
127
|
+
project_root: "C:/path/to/your/project",
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export function resolveWorkspaceRoot(explicitProjectRoot) {
|
|
132
|
+
const explicit = safeResolve(explicitProjectRoot || "");
|
|
133
|
+
if (isExistingDirectory(explicit)) {
|
|
134
|
+
return explicit;
|
|
135
|
+
}
|
|
136
|
+
const packageRoot = getRuntimePackageRoot();
|
|
137
|
+
const cwd = safeResolve(process.cwd()) || packageRoot;
|
|
138
|
+
for (const key of WORKSPACE_ENV_KEYS) {
|
|
139
|
+
const candidate = safeResolve(process.env[key] || "");
|
|
140
|
+
const resolved = findWorkspaceAncestor(candidate, packageRoot);
|
|
141
|
+
if (resolved) {
|
|
142
|
+
return resolved;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const cwdWorkspace = findWorkspaceAncestor(cwd, packageRoot);
|
|
146
|
+
if (cwdWorkspace) {
|
|
147
|
+
return cwdWorkspace;
|
|
148
|
+
}
|
|
149
|
+
return packageRoot;
|
|
150
|
+
}
|
|
151
|
+
export function toWorkspacePath(explicitProjectRoot) {
|
|
152
|
+
return resolveWorkspaceRoot(explicitProjectRoot).replace(/\\/g, "/");
|
|
153
|
+
}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"No": "1",
|
|
4
|
+
"Data Type": "Trend Over Time",
|
|
5
|
+
"Keywords": "trend, time-series, line, growth, timeline, progress",
|
|
6
|
+
"Best Chart Type": "Line Chart",
|
|
7
|
+
"Secondary Options": "Area Chart, Smooth Area",
|
|
8
|
+
"Color Guidance": "Primary: #0080FF. Multiple series: use distinct colors. Fill: 20% opacity",
|
|
9
|
+
"Performance Impact": "⚡ Excellent (optimized)",
|
|
10
|
+
"Accessibility Notes": "✓ Clear line patterns for colorblind users. Add pattern overlays.",
|
|
11
|
+
"Library Recommendation": "Chart.js, Recharts, ApexCharts",
|
|
12
|
+
"Interactive Level": "Hover + Zoom"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"No": "2",
|
|
16
|
+
"Data Type": "Compare Categories",
|
|
17
|
+
"Keywords": "compare, categories, bar, comparison, ranking",
|
|
18
|
+
"Best Chart Type": "Bar Chart (Horizontal or Vertical)",
|
|
19
|
+
"Secondary Options": "Column Chart, Grouped Bar",
|
|
20
|
+
"Color Guidance": "Each bar: distinct color. Category: grouped same color. Sorted: descending order",
|
|
21
|
+
"Performance Impact": "⚡ Excellent",
|
|
22
|
+
"Accessibility Notes": "✓ Easy to compare. Add value labels on bars for clarity.",
|
|
23
|
+
"Library Recommendation": "Chart.js, Recharts, D3.js",
|
|
24
|
+
"Interactive Level": "Hover + Sort"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"No": "3",
|
|
28
|
+
"Data Type": "Part-to-Whole",
|
|
29
|
+
"Keywords": "part-to-whole, pie, donut, percentage, proportion, share",
|
|
30
|
+
"Best Chart Type": "Pie Chart or Donut",
|
|
31
|
+
"Secondary Options": "Stacked Bar, Treemap",
|
|
32
|
+
"Color Guidance": "Colors: 5-6 max. Contrasting palette. Large slices first. Use labels.",
|
|
33
|
+
"Performance Impact": "⚡ Good (limit 6 slices)",
|
|
34
|
+
"Accessibility Notes": "⚠ Hard for accessibility. Better: Stacked bar with legend. Avoid pie if >5 items.",
|
|
35
|
+
"Library Recommendation": "Chart.js, Recharts, D3.js",
|
|
36
|
+
"Interactive Level": "Hover + Drill"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"No": "4",
|
|
40
|
+
"Data Type": "Correlation/Distribution",
|
|
41
|
+
"Keywords": "correlation, distribution, scatter, relationship, pattern",
|
|
42
|
+
"Best Chart Type": "Scatter Plot or Bubble Chart",
|
|
43
|
+
"Secondary Options": "Heat Map, Matrix",
|
|
44
|
+
"Color Guidance": "Color axis: gradient (blue-red). Size: relative. Opacity: 0.6-0.8 to show density",
|
|
45
|
+
"Performance Impact": "⚠ Moderate (many points)",
|
|
46
|
+
"Accessibility Notes": "⚠ Provide data table alternative. Use pattern + color distinction.",
|
|
47
|
+
"Library Recommendation": "D3.js, Plotly, Recharts",
|
|
48
|
+
"Interactive Level": "Hover + Brush"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"No": "5",
|
|
52
|
+
"Data Type": "Heatmap/Intensity",
|
|
53
|
+
"Keywords": "heatmap, heat-map, intensity, density, matrix",
|
|
54
|
+
"Best Chart Type": "Heat Map or Choropleth",
|
|
55
|
+
"Secondary Options": "Grid Heat Map, Bubble Heat",
|
|
56
|
+
"Color Guidance": "Gradient: Cool (blue) to Hot (red). Scale: clear legend. Divergent for ±data",
|
|
57
|
+
"Performance Impact": "⚡ Excellent (color CSS)",
|
|
58
|
+
"Accessibility Notes": "⚠ Colorblind: Use pattern overlay. Provide numerical legend.",
|
|
59
|
+
"Library Recommendation": "D3.js, Plotly, ApexCharts",
|
|
60
|
+
"Interactive Level": "Hover + Zoom"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"No": "6",
|
|
64
|
+
"Data Type": "Geographic Data",
|
|
65
|
+
"Keywords": "geographic, map, location, region, geo, spatial",
|
|
66
|
+
"Best Chart Type": "Choropleth Map, Bubble Map",
|
|
67
|
+
"Secondary Options": "Geographic Heat Map",
|
|
68
|
+
"Color Guidance": "Regional: single color gradient or categorized colors. Legend: clear scale",
|
|
69
|
+
"Performance Impact": "⚠ Moderate (rendering)",
|
|
70
|
+
"Accessibility Notes": "⚠ Include text labels for regions. Provide data table alternative.",
|
|
71
|
+
"Library Recommendation": "D3.js, Mapbox, Leaflet",
|
|
72
|
+
"Interactive Level": "Pan + Zoom + Drill"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"No": "7",
|
|
76
|
+
"Data Type": "Funnel/Flow",
|
|
77
|
+
"Keywords": "funnel/flow",
|
|
78
|
+
"Best Chart Type": "Funnel Chart, Sankey",
|
|
79
|
+
"Secondary Options": "Waterfall (for flows)",
|
|
80
|
+
"Color Guidance": "Stages: gradient (starting color → ending color). Show conversion %",
|
|
81
|
+
"Performance Impact": "⚡ Good",
|
|
82
|
+
"Accessibility Notes": "✓ Clear stage labels + percentages. Good for accessibility if labeled.",
|
|
83
|
+
"Library Recommendation": "D3.js, Recharts, Custom SVG",
|
|
84
|
+
"Interactive Level": "Hover + Drill"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"No": "8",
|
|
88
|
+
"Data Type": "Performance vs Target",
|
|
89
|
+
"Keywords": "performance-vs-target",
|
|
90
|
+
"Best Chart Type": "Gauge Chart or Bullet Chart",
|
|
91
|
+
"Secondary Options": "Dial, Thermometer",
|
|
92
|
+
"Color Guidance": "Performance: Red→Yellow→Green gradient. Target: marker line. Threshold colors",
|
|
93
|
+
"Performance Impact": "⚡ Good",
|
|
94
|
+
"Accessibility Notes": "✓ Add numerical value + percentage label beside gauge.",
|
|
95
|
+
"Library Recommendation": "D3.js, ApexCharts, Custom SVG",
|
|
96
|
+
"Interactive Level": "Hover"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"No": "9",
|
|
100
|
+
"Data Type": "Time-Series Forecast",
|
|
101
|
+
"Keywords": "time-series-forecast",
|
|
102
|
+
"Best Chart Type": "Line with Confidence Band",
|
|
103
|
+
"Secondary Options": "Ribbon Chart",
|
|
104
|
+
"Color Guidance": "Actual: solid line #0080FF. Forecast: dashed #FF9500. Band: light shading",
|
|
105
|
+
"Performance Impact": "⚡ Good",
|
|
106
|
+
"Accessibility Notes": "✓ Clearly distinguish actual vs forecast. Add legend.",
|
|
107
|
+
"Library Recommendation": "Chart.js, ApexCharts, Plotly",
|
|
108
|
+
"Interactive Level": "Hover + Toggle"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"No": "10",
|
|
112
|
+
"Data Type": "Anomaly Detection",
|
|
113
|
+
"Keywords": "anomaly-detection",
|
|
114
|
+
"Best Chart Type": "Line Chart with Highlights",
|
|
115
|
+
"Secondary Options": "Scatter with Alert",
|
|
116
|
+
"Color Guidance": "Normal: blue #0080FF. Anomaly: red #FF0000 circle/square marker + alert",
|
|
117
|
+
"Performance Impact": "⚡ Good",
|
|
118
|
+
"Accessibility Notes": "✓ Circle/marker for anomalies. Add text alert annotation.",
|
|
119
|
+
"Library Recommendation": "D3.js, Plotly, ApexCharts",
|
|
120
|
+
"Interactive Level": "Hover + Alert"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"No": "11",
|
|
124
|
+
"Data Type": "Hierarchical/Nested Data",
|
|
125
|
+
"Keywords": "hierarchical/nested-data",
|
|
126
|
+
"Best Chart Type": "Treemap",
|
|
127
|
+
"Secondary Options": "Sunburst, Nested Donut, Icicle",
|
|
128
|
+
"Color Guidance": "Parent: distinct hues. Children: lighter shades. White borders 2-3px.",
|
|
129
|
+
"Performance Impact": "⚠ Moderate",
|
|
130
|
+
"Accessibility Notes": "⚠ Poor - provide table alternative. Label large areas.",
|
|
131
|
+
"Library Recommendation": "D3.js, Recharts, ApexCharts",
|
|
132
|
+
"Interactive Level": "Hover + Drilldown"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"No": "12",
|
|
136
|
+
"Data Type": "Flow/Process Data",
|
|
137
|
+
"Keywords": "flow/process-data",
|
|
138
|
+
"Best Chart Type": "Sankey Diagram",
|
|
139
|
+
"Secondary Options": "Alluvial, Chord Diagram",
|
|
140
|
+
"Color Guidance": "Gradient from source to target. Opacity 0.4-0.6 for flows.",
|
|
141
|
+
"Performance Impact": "⚠ Moderate",
|
|
142
|
+
"Accessibility Notes": "⚠ Poor - provide flow table alternative.",
|
|
143
|
+
"Library Recommendation": "D3.js (d3-sankey), Plotly",
|
|
144
|
+
"Interactive Level": "Hover + Drilldown"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"No": "13",
|
|
148
|
+
"Data Type": "Cumulative Changes",
|
|
149
|
+
"Keywords": "cumulative-changes",
|
|
150
|
+
"Best Chart Type": "Waterfall Chart",
|
|
151
|
+
"Secondary Options": "Stacked Bar, Cascade",
|
|
152
|
+
"Color Guidance": "Increases: #4CAF50. Decreases: #F44336. Start: #2196F3. End: #0D47A1.",
|
|
153
|
+
"Performance Impact": "⚡ Good",
|
|
154
|
+
"Accessibility Notes": "✓ Good - clear directional colors with labels.",
|
|
155
|
+
"Library Recommendation": "ApexCharts, Highcharts, Plotly",
|
|
156
|
+
"Interactive Level": "Hover"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"No": "14",
|
|
160
|
+
"Data Type": "Multi-Variable Comparison",
|
|
161
|
+
"Keywords": "multi-variable-comparison",
|
|
162
|
+
"Best Chart Type": "Radar/Spider Chart",
|
|
163
|
+
"Secondary Options": "Parallel Coordinates, Grouped Bar",
|
|
164
|
+
"Color Guidance": "Single: #0080FF 20% fill. Multiple: distinct colors per dataset.",
|
|
165
|
+
"Performance Impact": "⚡ Good",
|
|
166
|
+
"Accessibility Notes": "⚠ Moderate - limit 5-8 axes. Add data table.",
|
|
167
|
+
"Library Recommendation": "Chart.js, Recharts, ApexCharts",
|
|
168
|
+
"Interactive Level": "Hover + Toggle"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"No": "15",
|
|
172
|
+
"Data Type": "Stock/Trading OHLC",
|
|
173
|
+
"Keywords": "stock/trading-ohlc",
|
|
174
|
+
"Best Chart Type": "Candlestick Chart",
|
|
175
|
+
"Secondary Options": "OHLC Bar, Heikin-Ashi",
|
|
176
|
+
"Color Guidance": "Bullish: #26A69A. Bearish: #EF5350. Volume: 40% opacity below.",
|
|
177
|
+
"Performance Impact": "⚡ Good",
|
|
178
|
+
"Accessibility Notes": "⚠ Moderate - provide OHLC data table.",
|
|
179
|
+
"Library Recommendation": "Lightweight Charts (TradingView), ApexCharts",
|
|
180
|
+
"Interactive Level": "Real-time + Hover + Zoom"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"No": "16",
|
|
184
|
+
"Data Type": "Relationship/Connection Data",
|
|
185
|
+
"Keywords": "relationship/connection-data",
|
|
186
|
+
"Best Chart Type": "Network Graph",
|
|
187
|
+
"Secondary Options": "Hierarchical Tree, Adjacency Matrix",
|
|
188
|
+
"Color Guidance": "Node types: categorical colors. Edges: #90A4AE 60% opacity.",
|
|
189
|
+
"Performance Impact": "❌ Poor (500+ nodes struggles)",
|
|
190
|
+
"Accessibility Notes": "❌ Very Poor - provide adjacency list alternative.",
|
|
191
|
+
"Library Recommendation": "D3.js (d3-force), Vis.js, Cytoscape.js",
|
|
192
|
+
"Interactive Level": "Drilldown + Hover + Drag"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"No": "17",
|
|
196
|
+
"Data Type": "Distribution/Statistical",
|
|
197
|
+
"Keywords": "distribution/statistical",
|
|
198
|
+
"Best Chart Type": "Box Plot",
|
|
199
|
+
"Secondary Options": "Violin Plot, Beeswarm",
|
|
200
|
+
"Color Guidance": "Box: #BBDEFB. Border: #1976D2. Median: #D32F2F. Outliers: #F44336.",
|
|
201
|
+
"Performance Impact": "⚡ Excellent",
|
|
202
|
+
"Accessibility Notes": "✓ Good - include stats table (min, Q1, median, Q3, max).",
|
|
203
|
+
"Library Recommendation": "Plotly, D3.js, Chart.js (plugin)",
|
|
204
|
+
"Interactive Level": "Hover"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"No": "18",
|
|
208
|
+
"Data Type": "Performance vs Target (Compact)",
|
|
209
|
+
"Keywords": "performance-vs-target-(compact)",
|
|
210
|
+
"Best Chart Type": "Bullet Chart",
|
|
211
|
+
"Secondary Options": "Gauge, Progress Bar",
|
|
212
|
+
"Color Guidance": "Ranges: #FFCDD2, #FFF9C4, #C8E6C9. Performance: #1976D2. Target: black 3px.",
|
|
213
|
+
"Performance Impact": "⚡ Excellent",
|
|
214
|
+
"Accessibility Notes": "✓ Excellent - compact with clear values.",
|
|
215
|
+
"Library Recommendation": "D3.js, Plotly, Custom SVG",
|
|
216
|
+
"Interactive Level": "Hover"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"No": "19",
|
|
220
|
+
"Data Type": "Proportional/Percentage",
|
|
221
|
+
"Keywords": "proportional/percentage",
|
|
222
|
+
"Best Chart Type": "Waffle Chart",
|
|
223
|
+
"Secondary Options": "Pictogram, Stacked Bar 100%",
|
|
224
|
+
"Color Guidance": "10x10 grid. 3-5 categories max. 2-3px spacing between squares.",
|
|
225
|
+
"Performance Impact": "⚡ Good",
|
|
226
|
+
"Accessibility Notes": "✓ Good - better than pie for accessibility.",
|
|
227
|
+
"Library Recommendation": "D3.js, React-Waffle, Custom CSS Grid",
|
|
228
|
+
"Interactive Level": "Hover"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"No": "20",
|
|
232
|
+
"Data Type": "Hierarchical Proportional",
|
|
233
|
+
"Keywords": "hierarchical-proportional",
|
|
234
|
+
"Best Chart Type": "Sunburst Chart",
|
|
235
|
+
"Secondary Options": "Treemap, Icicle, Circle Packing",
|
|
236
|
+
"Color Guidance": "Center to outer: darker to lighter. 15-20% lighter per level.",
|
|
237
|
+
"Performance Impact": "⚠ Moderate",
|
|
238
|
+
"Accessibility Notes": "⚠ Poor - provide hierarchy table alternative.",
|
|
239
|
+
"Library Recommendation": "D3.js (d3-hierarchy), Recharts, ApexCharts",
|
|
240
|
+
"Interactive Level": "Drilldown + Hover"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"No": "21",
|
|
244
|
+
"Data Type": "Root Cause Analysis",
|
|
245
|
+
"Keywords": "root cause, decomposition, tree, hierarchy, drill-down, ai-split",
|
|
246
|
+
"Best Chart Type": "Decomposition Tree",
|
|
247
|
+
"Secondary Options": "Decision Tree, Flow Chart",
|
|
248
|
+
"Color Guidance": "Nodes: #2563EB (Primary) vs #EF4444 (Negative impact). Connectors: Neutral grey.",
|
|
249
|
+
"Performance Impact": "⚠ Moderate (calculation heavy)",
|
|
250
|
+
"Accessibility Notes": "✓ clear hierarchy. Allow keyboard navigation for nodes.",
|
|
251
|
+
"Library Recommendation": "Power BI (native), React-Flow, Custom D3.js",
|
|
252
|
+
"Interactive Level": "Drill + Expand"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"No": "22",
|
|
256
|
+
"Data Type": "3D Spatial Data",
|
|
257
|
+
"Keywords": "3d, spatial, immersive, terrain, molecular, volumetric",
|
|
258
|
+
"Best Chart Type": "3D Scatter/Surface Plot",
|
|
259
|
+
"Secondary Options": "Volumetric Rendering, Point Cloud",
|
|
260
|
+
"Color Guidance": "Depth cues: lighting/shading. Z-axis: color gradient (cool to warm).",
|
|
261
|
+
"Performance Impact": "❌ Heavy (WebGL required)",
|
|
262
|
+
"Accessibility Notes": "❌ Poor - requires alternative 2D view or data table.",
|
|
263
|
+
"Library Recommendation": "Three.js, Deck.gl, Plotly 3D",
|
|
264
|
+
"Interactive Level": "Rotate + Zoom + VR"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"No": "23",
|
|
268
|
+
"Data Type": "Real-Time Streaming",
|
|
269
|
+
"Keywords": "streaming, real-time, ticker, live, velocity, pulse",
|
|
270
|
+
"Best Chart Type": "Streaming Area Chart",
|
|
271
|
+
"Secondary Options": "Ticker Tape, Moving Gauge",
|
|
272
|
+
"Color Guidance": "Current: Bright Pulse (#00FF00). History: Fading opacity. Grid: Dark.",
|
|
273
|
+
"Performance Impact": "⚡ Optimized (canvas/webgl)",
|
|
274
|
+
"Accessibility Notes": "⚠ Flashing elements - provide pause button. High contrast.",
|
|
275
|
+
"Library Recommendation": "Smoothed D3.js",
|
|
276
|
+
"Interactive Level": "CanvasJS"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"No": "24",
|
|
280
|
+
"Data Type": "Sentiment/Emotion",
|
|
281
|
+
"Keywords": "sentiment, emotion, nlp, opinion, feeling",
|
|
282
|
+
"Best Chart Type": "Word Cloud with Sentiment",
|
|
283
|
+
"Secondary Options": "Sentiment Arc, Radar Chart",
|
|
284
|
+
"Color Guidance": "Positive: #22C55E. Negative: #EF4444. Neutral: #94A3B8. Size = Frequency.",
|
|
285
|
+
"Performance Impact": "⚡ Good",
|
|
286
|
+
"Accessibility Notes": "⚠ Word clouds poor for screen readers. Use list view.",
|
|
287
|
+
"Library Recommendation": "D3-cloud, Highcharts, Nivo",
|
|
288
|
+
"Interactive Level": "Hover + Filter"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"No": "25",
|
|
292
|
+
"Data Type": "Process Mining",
|
|
293
|
+
"Keywords": "process, mining, variants, path, bottleneck, log",
|
|
294
|
+
"Best Chart Type": "Process Map / Graph",
|
|
295
|
+
"Secondary Options": "Directed Acyclic Graph (DAG), Petri Net",
|
|
296
|
+
"Color Guidance": "Happy path: #10B981 (Thick). Deviations: #F59E0B (Thin). Bottlenecks: #EF4444.",
|
|
297
|
+
"Performance Impact": "⚠ Moderate to Heavy",
|
|
298
|
+
"Accessibility Notes": "⚠ Complex graphs hard to navigate. Provide path summary.",
|
|
299
|
+
"Library Recommendation": "React-Flow, Cytoscape.js, Recharts",
|
|
300
|
+
"Interactive Level": "Drag + Node-Click"
|
|
301
|
+
}
|
|
302
|
+
]
|