crushdataai 1.2.13 → 1.2.14
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/assets/.agent/workflows/data-analyst.md +23 -0
- package/assets/.claude/skills/data-analyst/SKILL.md +48 -0
- package/assets/.cursor/commands/data-analyst.md +20 -0
- package/assets/.github/prompts/data-analyst.prompt.md +18 -0
- package/assets/.kiro/steering/data-analyst.md +18 -0
- package/assets/.windsurf/workflows/data-analyst.md +18 -0
- package/dist/dashboard-server.d.ts +1 -0
- package/dist/dashboard-server.js +78 -0
- package/dist/index.js +17 -1
- package/dist/routes/dashboard.d.ts +2 -0
- package/dist/routes/dashboard.js +113 -0
- package/dist/types/dashboard.d.ts +48 -0
- package/dist/types/dashboard.js +3 -0
- package/package.json +4 -3
- package/ui-dashboard-dist/assets/index-BhtUalwh.js +112 -0
- package/ui-dashboard-dist/assets/index-uepFwkLY.css +1 -0
- package/ui-dashboard-dist/favicon.svg +13 -0
- package/ui-dashboard-dist/index.html +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.sidebar{width:280px;min-width:280px;background:linear-gradient(180deg,#141423fa,#0f0f19fc);border-right:1px solid rgba(99,102,241,.15);display:flex;flex-direction:column;height:100vh;overflow:hidden}.sidebar-header{display:flex;align-items:center;gap:.75rem;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header h2{margin:0;font-size:1rem;font-weight:600;color:#f3f4f6}.sidebar-icon{width:20px;height:20px;color:#818cf8}.sidebar-nav{flex:1;overflow-y:auto;padding:1rem}.sidebar-empty{color:#6b7280;font-size:.9rem;text-align:center;padding:2rem 1rem}.sidebar-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:transparent;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:all .2s ease;text-align:left;margin-bottom:.5rem}.sidebar-item:hover{background:#6366f11a;border-color:#6366f133}.sidebar-item.active{background:#6366f126;border-color:#6366f14d}.sidebar-item .item-icon{width:18px;height:18px;color:#9ca3af;flex-shrink:0}.sidebar-item.active .item-icon{color:#818cf8}.item-content{display:flex;flex-direction:column;gap:.125rem;min-width:0}.item-title{font-size:.9rem;font-weight:500;color:#e5e7eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-meta{font-size:.75rem;color:#6b7280}.kpi-card{background:linear-gradient(135deg,#1e1e2df2,#141423fa);border:1px solid rgba(99,102,241,.2);border-radius:16px;padding:1.5rem;min-width:180px;transition:all .3s ease;box-shadow:0 4px 20px #0000004d}.kpi-card:hover{border-color:#6366f166;box-shadow:0 8px 30px #6366f126;transform:translateY(-2px)}.kpi-label{font-size:.85rem;color:#9ca3af;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.kpi-value{font-size:2rem;font-weight:700;color:#f3f4f6;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.kpi-trend{display:flex;align-items:center;gap:.25rem;font-size:.9rem;font-weight:500}.kpi-trend.positive{color:#22c55e}.kpi-trend.negative{color:#ef4444}.kpi-trend.neutral{color:#9ca3af}.trend-icon{width:16px;height:16px}.trend-icon.up{color:#22c55e}.trend-icon.down{color:#ef4444}.trend-icon.neutral{color:#9ca3af}.chart-card{background:linear-gradient(135deg,#1e1e2df2,#141423fa);border:1px solid rgba(99,102,241,.2);border-radius:16px;padding:1.5rem;transition:all .3s ease;box-shadow:0 4px 20px #0000004d}.chart-card:hover{border-color:#6366f166;box-shadow:0 8px 30px #6366f126;transform:translateY(-2px)}.chart-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.chart-card-title-group{flex:1}.chart-card-title{font-size:1.1rem;font-weight:600;color:#f3f4f6;margin:0 0 .25rem}.chart-card-description{font-size:.85rem;color:#9ca3af;margin:0}.chart-refresh-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#6366f126;border:1px solid rgba(99,102,241,.3);border-radius:8px;color:#818cf8;cursor:pointer;transition:all .2s ease}.chart-refresh-btn:hover{background:#6366f140;border-color:#6366f180;color:#a5b4fc}.chart-refresh-btn:active{transform:scale(.95)}.chart-card-body{min-height:300px;display:flex;align-items:center;justify-content:center}.chart-card-footer{margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.1)}.last-refreshed{font-size:.75rem;color:#6b7280}.chart-table{width:100%;overflow-x:auto}.chart-table table{width:100%;border-collapse:collapse;font-size:.875rem}.chart-table th,.chart-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}.chart-table th{color:#9ca3af;font-weight:500;background:#0003}.chart-table td{color:#e5e7eb}.chart-table tr:hover td{background:#6366f11a}.chart-fallback .fallback-warning{color:#fbbf24;font-size:.85rem;margin-bottom:1rem;padding:.5rem 1rem;background:#fbbf241a;border-radius:8px;border:1px solid rgba(251,191,36,.2)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 2rem;min-height:60vh}.empty-state-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#6366f133,#8b5cf633);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}.empty-state-icon svg{width:40px;height:40px;color:#818cf8}.empty-state-title{font-size:1.5rem;font-weight:600;color:#f3f4f6;margin:0 0 .5rem}.empty-state-description{color:#9ca3af;font-size:1rem;margin:0 0 2rem;max-width:400px}.empty-state-steps{background:#1e1e2dcc;border:1px solid rgba(99,102,241,.2);border-radius:12px;padding:1.5rem 2rem;text-align:left;margin-bottom:1.5rem}.empty-state-steps p{color:#9ca3af;margin:0 0 .5rem;font-size:.9rem}.empty-state-steps ol{margin:0;padding-left:1.25rem;color:#d1d5db}.empty-state-steps li{margin:.25rem 0;font-size:.9rem}.empty-state-steps code{background:#6366f126;padding:.125rem .375rem;border-radius:4px;font-size:.85rem;color:#a5b4fc}.empty-state-hint{color:#6b7280;font-size:.85rem}.empty-state-hint code{background:#6366f126;padding:.25rem .5rem;border-radius:6px;color:#818cf8}*{box-sizing:border-box}:root{--bg-primary: #0f0f17;--bg-secondary: #1a1a2e;--border-color: rgba(99, 102, 241, .2);--text-primary: #f3f4f6;--text-secondary: #9ca3af;--accent: #6366f1;--accent-light: #818cf8}body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}#root{min-height:100vh}.app{display:flex;min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(99,102,241,.08) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(139,92,246,.06) 0%,transparent 50%),var(--bg-primary)}.app-centered{justify-content:center;align-items:center}.main-content{flex:1;padding:2rem;overflow-y:auto;max-height:100vh}.dashboard-header{margin-bottom:2rem}.header-info{display:flex;flex-direction:column;gap:.5rem}.dashboard-title{font-size:2rem;font-weight:700;margin:0;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-meta{display:flex;align-items:center;gap:1.5rem;color:var(--text-secondary)}.meta-item{display:flex;align-items:center;gap:.375rem;font-size:.875rem}.meta-item svg{width:14px;height:14px}.kpi-section{margin-bottom:2rem}.kpi-grid{display:flex;gap:1.25rem;flex-wrap:wrap}.charts-section{margin-bottom:2rem}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:1.5rem}@media (max-width: 1200px){.charts-grid{grid-template-columns:1fr}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;width:100%;color:var(--text-secondary)}.loading-spinner{width:32px;height:32px;color:var(--accent-light);animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;width:100%;color:#ef4444}.chart-renderer{width:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6366f180}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="grad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#6366f1"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#8b5cf6"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect width="32" height="32" rx="6" fill="url(#grad)"/>
|
|
9
|
+
<rect x="6" y="18" width="4" height="8" rx="1" fill="white" opacity="0.9"/>
|
|
10
|
+
<rect x="12" y="12" width="4" height="14" rx="1" fill="white" opacity="0.9"/>
|
|
11
|
+
<rect x="18" y="8" width="4" height="18" rx="1" fill="white" opacity="0.9"/>
|
|
12
|
+
<rect x="24" y="14" width="2" height="12" rx="1" fill="white" opacity="0.7"/>
|
|
13
|
+
</svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>CrushData AI Dashboard</title>
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BhtUalwh.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-uepFwkLY.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div id="root"></div>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|