@manojkmfsi/monodog 1.1.38 → 1.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/monodog-dashboard/dist/assets/index-C08ciT3A.js +20 -0
  3. package/monodog-dashboard/dist/assets/index-C08ciT3A.js.map +1 -0
  4. package/monodog-dashboard/dist/assets/index-Dc2vaUOq.css +1 -0
  5. package/monodog-dashboard/{index.html → dist/index.html} +2 -1
  6. package/package.json +2 -2
  7. package/monodog-dashboard/THEME_SYSTEM.md +0 -309
  8. package/monodog-dashboard/__tests__/AuthCallbackPage.test.ts +0 -138
  9. package/monodog-dashboard/__tests__/ConfigInspector.test.ts +0 -33
  10. package/monodog-dashboard/__tests__/DependencyGraph.test.ts +0 -72
  11. package/monodog-dashboard/__tests__/HealthStatus.test.ts +0 -69
  12. package/monodog-dashboard/__tests__/LoginPage.test.ts +0 -79
  13. package/monodog-dashboard/__tests__/PackageDetail.test.ts +0 -22
  14. package/monodog-dashboard/__tests__/ReleaseManager.test.tsx +0 -510
  15. package/monodog-dashboard/__tests__/api-client.test.ts +0 -475
  16. package/monodog-dashboard/__tests__/components.test.ts +0 -117
  17. package/monodog-dashboard/__tests__/dashboard.utils.test.ts +0 -144
  18. package/monodog-dashboard/__tests__/dependency.utils.test.ts +0 -125
  19. package/monodog-dashboard/__tests__/monorepoService.unit.test.ts +0 -103
  20. package/monodog-dashboard/__tests__/packages.utils.test.ts +0 -37
  21. package/monodog-dashboard/__tests__/pages.test.ts +0 -103
  22. package/monodog-dashboard/package-lock.json +0 -4587
  23. package/monodog-dashboard/postcss.config.js +0 -6
  24. package/monodog-dashboard/src/components/App.tsx +0 -36
  25. package/monodog-dashboard/src/components/LoadingState.tsx +0 -18
  26. package/monodog-dashboard/src/components/PermissionGuard.tsx +0 -92
  27. package/monodog-dashboard/src/components/ProtectedRoute.tsx +0 -24
  28. package/monodog-dashboard/src/components/configuration/Configuration.tsx +0 -91
  29. package/monodog-dashboard/src/components/configuration/components/BrandingSettings.tsx +0 -128
  30. package/monodog-dashboard/src/components/configuration/components/ConfigurationHeader.tsx +0 -34
  31. package/monodog-dashboard/src/components/configuration/components/ConfigurationModal.tsx +0 -20
  32. package/monodog-dashboard/src/components/configuration/components/ConfigurationTabs.tsx +0 -30
  33. package/monodog-dashboard/src/components/configuration/components/FeatureToggles.tsx +0 -66
  34. package/monodog-dashboard/src/components/configuration/components/GeneralSettings.tsx +0 -77
  35. package/monodog-dashboard/src/components/configuration/components/MonorepoSettings.tsx +0 -179
  36. package/monodog-dashboard/src/components/configuration/components/index.ts +0 -8
  37. package/monodog-dashboard/src/components/configuration/types/config.types.ts +0 -52
  38. package/monodog-dashboard/src/components/configuration/utils/config.utils.tsx +0 -115
  39. package/monodog-dashboard/src/components/main-dashboard/Dashboard.tsx +0 -242
  40. package/monodog-dashboard/src/components/main-dashboard/Layout.tsx +0 -112
  41. package/monodog-dashboard/src/components/main-dashboard/components/Header.tsx +0 -47
  42. package/monodog-dashboard/src/components/main-dashboard/components/PackageDistribution.tsx +0 -35
  43. package/monodog-dashboard/src/components/main-dashboard/components/PackageSearchFilter.tsx +0 -47
  44. package/monodog-dashboard/src/components/main-dashboard/components/PackageTable.tsx +0 -87
  45. package/monodog-dashboard/src/components/main-dashboard/components/QuickActions.tsx +0 -60
  46. package/monodog-dashboard/src/components/main-dashboard/components/StatsCards.tsx +0 -73
  47. package/monodog-dashboard/src/components/main-dashboard/components/index.ts +0 -7
  48. package/monodog-dashboard/src/components/main-dashboard/types/dashboard.types.ts +0 -33
  49. package/monodog-dashboard/src/components/main-dashboard/utils/dashboard.utils.tsx +0 -70
  50. package/monodog-dashboard/src/components/modules/ci-integration/CIIntegration.tsx +0 -277
  51. package/monodog-dashboard/src/components/modules/ci-integration/components/BuildDetails.tsx +0 -228
  52. package/monodog-dashboard/src/components/modules/ci-integration/components/BuildList.tsx +0 -212
  53. package/monodog-dashboard/src/components/modules/ci-integration/components/BuildOverview.tsx +0 -158
  54. package/monodog-dashboard/src/components/modules/ci-integration/components/CIIntegrationHeader.tsx +0 -38
  55. package/monodog-dashboard/src/components/modules/ci-integration/components/ErrorState.tsx +0 -25
  56. package/monodog-dashboard/src/components/modules/ci-integration/components/LoadingState.tsx +0 -16
  57. package/monodog-dashboard/src/components/modules/ci-integration/components/PipelineStatus.tsx +0 -223
  58. package/monodog-dashboard/src/components/modules/ci-integration/components/index.ts +0 -8
  59. package/monodog-dashboard/src/components/modules/ci-integration/types/ci.types.ts +0 -97
  60. package/monodog-dashboard/src/components/modules/ci-integration/utils/ci.utils.tsx +0 -264
  61. package/monodog-dashboard/src/components/modules/config-inspector/ConfigInspector.tsx +0 -324
  62. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigEditor.tsx +0 -93
  63. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigInspectorHeader.tsx +0 -36
  64. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigPreview.tsx +0 -89
  65. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigSidebar.tsx +0 -141
  66. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigToolbar.tsx +0 -184
  67. package/monodog-dashboard/src/components/modules/config-inspector/components/ErrorState.tsx +0 -25
  68. package/monodog-dashboard/src/components/modules/config-inspector/components/LoadingState.tsx +0 -16
  69. package/monodog-dashboard/src/components/modules/config-inspector/components/ValidationPanel.tsx +0 -155
  70. package/monodog-dashboard/src/components/modules/config-inspector/components/index.ts +0 -9
  71. package/monodog-dashboard/src/components/modules/config-inspector/types/config.types.ts +0 -100
  72. package/monodog-dashboard/src/components/modules/config-inspector/utils/config.utils.tsx +0 -704
  73. package/monodog-dashboard/src/components/modules/dependency-graph/DependencyGraph.tsx +0 -224
  74. package/monodog-dashboard/src/components/modules/dependency-graph/components/CircularDependencies.tsx +0 -177
  75. package/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyDetails.tsx +0 -192
  76. package/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyGraphHeader.tsx +0 -30
  77. package/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyList.tsx +0 -177
  78. package/monodog-dashboard/src/components/modules/dependency-graph/components/ErrorState.tsx +0 -25
  79. package/monodog-dashboard/src/components/modules/dependency-graph/components/GraphLegend.tsx +0 -89
  80. package/monodog-dashboard/src/components/modules/dependency-graph/components/GraphStats.tsx +0 -141
  81. package/monodog-dashboard/src/components/modules/dependency-graph/components/GraphToolbar.tsx +0 -107
  82. package/monodog-dashboard/src/components/modules/dependency-graph/components/GraphVisualization.tsx +0 -179
  83. package/monodog-dashboard/src/components/modules/dependency-graph/components/LoadingState.tsx +0 -16
  84. package/monodog-dashboard/src/components/modules/dependency-graph/components/index.ts +0 -11
  85. package/monodog-dashboard/src/components/modules/dependency-graph/types/dependency.types.ts +0 -105
  86. package/monodog-dashboard/src/components/modules/dependency-graph/utils/dependency.utils.tsx +0 -433
  87. package/monodog-dashboard/src/components/modules/health-status/HealthStatus.tsx +0 -739
  88. package/monodog-dashboard/src/components/modules/health-status/components/ErrorState.tsx +0 -25
  89. package/monodog-dashboard/src/components/modules/health-status/components/HealthActions.tsx +0 -122
  90. package/monodog-dashboard/src/components/modules/health-status/components/HealthAlerts.tsx +0 -151
  91. package/monodog-dashboard/src/components/modules/health-status/components/HealthMetrics.tsx +0 -132
  92. package/monodog-dashboard/src/components/modules/health-status/components/HealthStatusHeader.tsx +0 -30
  93. package/monodog-dashboard/src/components/modules/health-status/components/LoadingState.tsx +0 -16
  94. package/monodog-dashboard/src/components/modules/health-status/components/OverallHealthScore.tsx +0 -122
  95. package/monodog-dashboard/src/components/modules/health-status/components/PackageHealthList.tsx +0 -195
  96. package/monodog-dashboard/src/components/modules/health-status/types/health.types.ts +0 -80
  97. package/monodog-dashboard/src/components/modules/health-status/utils/health.utils.tsx +0 -220
  98. package/monodog-dashboard/src/components/modules/packages/PackageDetail.tsx +0 -255
  99. package/monodog-dashboard/src/components/modules/packages/PackagesOverview.tsx +0 -166
  100. package/monodog-dashboard/src/components/modules/packages/components/ConfigurationTab.tsx +0 -311
  101. package/monodog-dashboard/src/components/modules/packages/components/DependenciesTab.tsx +0 -154
  102. package/monodog-dashboard/src/components/modules/packages/components/ErrorState.tsx +0 -21
  103. package/monodog-dashboard/src/components/modules/packages/components/HealthMetricsTab.tsx +0 -275
  104. package/monodog-dashboard/src/components/modules/packages/components/LoadingState.tsx +0 -14
  105. package/monodog-dashboard/src/components/modules/packages/components/PackageDetailHeader.tsx +0 -167
  106. package/monodog-dashboard/src/components/modules/packages/components/PackageDetailTabs.tsx +0 -49
  107. package/monodog-dashboard/src/components/modules/packages/components/PackageStats.tsx +0 -70
  108. package/monodog-dashboard/src/components/modules/packages/components/PackagesTable.tsx +0 -163
  109. package/monodog-dashboard/src/components/modules/packages/components/RecentCommitsTab.tsx +0 -90
  110. package/monodog-dashboard/src/components/modules/packages/components/SearchAndFilter.tsx +0 -66
  111. package/monodog-dashboard/src/components/modules/packages/components/index.ts +0 -12
  112. package/monodog-dashboard/src/components/modules/packages/types/packages.types.ts +0 -101
  113. package/monodog-dashboard/src/components/modules/packages/utils/packages.utils.tsx +0 -178
  114. package/monodog-dashboard/src/components/pipeline/JobsList.tsx +0 -83
  115. package/monodog-dashboard/src/components/pipeline/LogViewer.tsx +0 -392
  116. package/monodog-dashboard/src/components/pipeline/PipelineManager.tsx +0 -562
  117. package/monodog-dashboard/src/components/pipeline/WorkflowRunsList.tsx +0 -272
  118. package/monodog-dashboard/src/components/pipeline/WorkflowTrigger.tsx +0 -182
  119. package/monodog-dashboard/src/components/pipeline/utils/pipeline.utils.tsx +0 -11
  120. package/monodog-dashboard/src/components/publish-control/PublishControl.tsx +0 -229
  121. package/monodog-dashboard/src/components/publish-control/components/ChangelogViewer.tsx +0 -103
  122. package/monodog-dashboard/src/components/publish-control/components/ErrorState.tsx +0 -23
  123. package/monodog-dashboard/src/components/publish-control/components/LoadingState.tsx +0 -10
  124. package/monodog-dashboard/src/components/publish-control/components/PackageReleaseTable.tsx +0 -140
  125. package/monodog-dashboard/src/components/publish-control/components/PublishHeader.tsx +0 -30
  126. package/monodog-dashboard/src/components/publish-control/components/QuickActionCards.tsx +0 -56
  127. package/monodog-dashboard/src/components/publish-control/components/ReleaseSchedule.tsx +0 -104
  128. package/monodog-dashboard/src/components/publish-control/components/index.ts +0 -8
  129. package/monodog-dashboard/src/components/publish-control/types/publish.types.ts +0 -39
  130. package/monodog-dashboard/src/components/publish-control/utils/publish.utils.ts +0 -59
  131. package/monodog-dashboard/src/components/release-manager/ReleaseManager.tsx +0 -342
  132. package/monodog-dashboard/src/components/release-manager/components/ChangesetPreview.tsx +0 -123
  133. package/monodog-dashboard/src/components/release-manager/components/ErrorState.tsx +0 -38
  134. package/monodog-dashboard/src/components/release-manager/components/LoadingState.tsx +0 -18
  135. package/monodog-dashboard/src/components/release-manager/components/PackageSelector.tsx +0 -137
  136. package/monodog-dashboard/src/components/release-manager/components/PublishConfirmation.tsx +0 -150
  137. package/monodog-dashboard/src/components/release-manager/components/ReleaseValidation.tsx +0 -138
  138. package/monodog-dashboard/src/components/release-manager/components/VersionBumpSelector.tsx +0 -142
  139. package/monodog-dashboard/src/components/release-manager/types/index.ts +0 -9
  140. package/monodog-dashboard/src/components/release-manager/types/release-manager.types.ts +0 -29
  141. package/monodog-dashboard/src/components/setup-guide/SetupGuide.tsx +0 -96
  142. package/monodog-dashboard/src/components/setup-guide/components/SetupHeader.tsx +0 -24
  143. package/monodog-dashboard/src/components/setup-guide/components/SetupModal.tsx +0 -24
  144. package/monodog-dashboard/src/components/setup-guide/components/SetupProgress.tsx +0 -29
  145. package/monodog-dashboard/src/components/setup-guide/components/StepContent.tsx +0 -272
  146. package/monodog-dashboard/src/components/setup-guide/components/StepNavigation.tsx +0 -62
  147. package/monodog-dashboard/src/components/setup-guide/components/index.ts +0 -6
  148. package/monodog-dashboard/src/components/setup-guide/types/setup.types.ts +0 -38
  149. package/monodog-dashboard/src/components/setup-guide/utils/setup.utils.ts +0 -79
  150. package/monodog-dashboard/src/constants/api-config.ts +0 -81
  151. package/monodog-dashboard/src/constants/index.ts +0 -9
  152. package/monodog-dashboard/src/constants/messages.ts +0 -40
  153. package/monodog-dashboard/src/icons/heroicons.ts +0 -65
  154. package/monodog-dashboard/src/icons/index.tsx +0 -1788
  155. package/monodog-dashboard/src/index.css +0 -175
  156. package/monodog-dashboard/src/main.tsx +0 -9
  157. package/monodog-dashboard/src/pages/AuthCallbackPage.tsx +0 -103
  158. package/monodog-dashboard/src/pages/CIPage.tsx +0 -6
  159. package/monodog-dashboard/src/pages/ConfigPage.tsx +0 -6
  160. package/monodog-dashboard/src/pages/DashboardPage.tsx +0 -6
  161. package/monodog-dashboard/src/pages/DependenciesPage.tsx +0 -6
  162. package/monodog-dashboard/src/pages/HealthPage.tsx +0 -6
  163. package/monodog-dashboard/src/pages/LoginPage.tsx +0 -77
  164. package/monodog-dashboard/src/pages/PackageDetailPage.tsx +0 -6
  165. package/monodog-dashboard/src/pages/PackagesPage.tsx +0 -6
  166. package/monodog-dashboard/src/pages/PipelinePage.tsx +0 -22
  167. package/monodog-dashboard/src/pages/PublishPage.tsx +0 -6
  168. package/monodog-dashboard/src/pages/ReleaseManagerPage.tsx +0 -9
  169. package/monodog-dashboard/src/pages/index.ts +0 -28
  170. package/monodog-dashboard/src/routes/AppRouter.tsx +0 -89
  171. package/monodog-dashboard/src/routes/AppRouterPages.tsx +0 -56
  172. package/monodog-dashboard/src/routes/index.ts +0 -10
  173. package/monodog-dashboard/src/routes/routes.config.ts +0 -94
  174. package/monodog-dashboard/src/services/api/api-client.ts +0 -189
  175. package/monodog-dashboard/src/services/api/index.ts +0 -30
  176. package/monodog-dashboard/src/services/api/types/api.types.ts +0 -63
  177. package/monodog-dashboard/src/services/auth-context.tsx +0 -344
  178. package/monodog-dashboard/src/services/monorepoService.ts +0 -733
  179. package/monodog-dashboard/src/services/permission-context.tsx +0 -193
  180. package/monodog-dashboard/src/theme/COMPONENT_UPDATES.md +0 -273
  181. package/monodog-dashboard/src/theme/INTEGRATION.md +0 -381
  182. package/monodog-dashboard/src/theme/README.md +0 -239
  183. package/monodog-dashboard/src/theme/examples.tsx +0 -386
  184. package/monodog-dashboard/src/theme/index.ts +0 -402
  185. package/monodog-dashboard/src/theme/migration-guide.md +0 -335
  186. package/monodog-dashboard/src/types/auth-context.types.ts +0 -51
  187. package/monodog-dashboard/src/types/component.types.ts +0 -96
  188. package/monodog-dashboard/src/types/icons.types.ts +0 -13
  189. package/monodog-dashboard/src/types/index.ts +0 -68
  190. package/monodog-dashboard/src/types/monorepo-service.types.ts +0 -53
  191. package/monodog-dashboard/src/types/permission-context.types.ts +0 -49
  192. package/monodog-dashboard/src/types/pipeline.types.ts +0 -89
  193. package/monodog-dashboard/src/types/routes.types.ts +0 -12
  194. package/monodog-dashboard/src/utils/cookies.ts +0 -47
  195. package/monodog-dashboard/tailwind.config.js +0 -68
  196. package/monodog-dashboard/tsconfig.app.json +0 -14
  197. package/monodog-dashboard/tsconfig.json +0 -17
  198. package/monodog-dashboard/tsconfig.node.json +0 -10
  199. package/monodog-dashboard/vite.config.ts +0 -9
@@ -1,112 +0,0 @@
1
- import { Link, useLocation } from 'react-router-dom';
2
- import {
3
- HomeIcon,
4
- CubeIcon,
5
- ChartBarIcon,
6
- HeartIcon,
7
- CloudArrowUpIcon,
8
- CpuChipIcon,
9
- Cog6ToothIcon,
10
- RocketLaunchIcon,
11
- LogoutIcon,
12
- } from '../../icons/index';
13
- import { useAuth } from '../../services/auth-context';
14
-
15
- const navigation = [
16
- { name: 'Dashboard', href: '/', icon: HomeIcon },
17
- { name: 'Packages', href: '/packages', icon: CubeIcon },
18
- { name: 'Dependencies', href: '/dependencies', icon: ChartBarIcon },
19
- { name: 'Health Status', href: '/health', icon: HeartIcon },
20
- { name: 'Release', href: '/release', icon: CloudArrowUpIcon },
21
- { name: 'Pipeline', href: '/pipeline', icon: RocketLaunchIcon },
22
- // { name: 'Publish Control', href: '/publish', icon: CloudArrowUpIcon },
23
- // { name: 'CI/CD', href: '/ci', icon: CpuChipIcon },
24
- { name: 'Configuration', href: '/config', icon: Cog6ToothIcon },
25
- ];
26
-
27
- interface LayoutProps {
28
- children: React.ReactNode;
29
- }
30
-
31
- export default function Layout({ children }: LayoutProps) {
32
- const location = useLocation();
33
- const { session, logout } = useAuth();
34
-
35
- return (
36
- <div className="min-h-screen bg-neutral-50">
37
- {/* Sidebar */}
38
- <div className="fixed inset-y-0 left-0 z-50 w-64 bg-white shadow-medium">
39
- <div className="flex h-16 items-center justify-center border-b border-neutral-200">
40
- <h1 className="text-heading text-xl text-primary-700">MonoDog</h1>
41
- </div>
42
- <nav className="mt-8 px-4">
43
- <ul className="space-y-2">
44
- {navigation.map(item => {
45
- const isActive = location.pathname === item.href;
46
- return (
47
- <li key={item.name}>
48
- <Link
49
- to={item.href}
50
- className={`nav-link ${
51
- isActive ? 'nav-link-active' : 'nav-link-inactive'
52
- }`}
53
- >
54
- <item.icon className="mr-3 h-5 w-5" />
55
- {item.name}
56
- </Link>
57
- </li>
58
- );
59
- })}
60
- </ul>
61
- </nav>
62
- </div>
63
-
64
- {/* Main content */}
65
- <div className="pl-64">
66
- {/* Header */}
67
- <header className="bg-white shadow-soft border-b border-neutral-200 flex items-center justify-between px-6 py-4">
68
- <div className="flex items-center gap-4">
69
- <h2 className="text-heading text-lg font-semibold">
70
- {navigation.find(item => item.href === location.pathname)?.name ||
71
- 'Dashboard'}
72
- </h2>
73
- {/* System stats */}
74
- {/* <div className="flex items-center gap-6 ml-8">
75
- <div className="flex items-center gap-2 text-sm text-neutral-700">
76
- <CpuChipIcon className="h-5 w-5 text-primary-500" />
77
- <span>
78
- CPU: <span className="font-medium">32%</span>
79
- </span>
80
- </div>
81
- <div className="flex items-center gap-2 text-sm text-neutral-700">
82
- <ChartBarIcon className="h-5 w-5 text-primary-500" />
83
- <span>
84
- Memory: <span className="font-medium">2.1 GB / 8 GB</span>
85
- </span>
86
- </div>
87
- </div> */}
88
- </div>
89
- {/* User info */}
90
- <div className="flex items-center gap-3">
91
- <div className="flex flex-col items-end text-sm">
92
- <button className="font-medium" onClick={logout} title="Logout"><LogoutIcon></LogoutIcon></button>
93
- </div>
94
- <div className="flex flex-col items-end text-sm">
95
- {session && <span className="font-medium text-primary-700">{session.user?.login ?? 'anonymous'}</span>}
96
-
97
- {session && <span className="text-neutral-500">{session.permission?.role ?? 'Denied'}</span>}
98
- </div>
99
- <img
100
- src={session.user?.avatar_url ?? ''}
101
- alt="User Avatar"
102
- className="h-8 w-8 rounded-full border border-neutral-200"
103
- />
104
- </div>
105
- </header>
106
-
107
- {/* Page content */}
108
- <main className="p-6">{children}</main>
109
- </div>
110
- </div>
111
- );
112
- }
@@ -1,47 +0,0 @@
1
- import { ArrowPathIcon, CogIcon } from '../../../icons/heroicons';
2
- import { DashboardConfig } from '../../configuration/Configuration';
3
-
4
- interface HeaderProps {
5
- config: DashboardConfig;
6
- onShowSetupGuide: () => void;
7
- onShowConfig: () => void;
8
- onRefresh: () => void;
9
- }
10
-
11
- export default function Header({
12
- config,
13
- onShowSetupGuide,
14
- onShowConfig,
15
- onRefresh,
16
- }: HeaderProps) {
17
- return (
18
- <div className="flex items-center justify-between">
19
- <div>
20
- <h1 className="text-heading text-3xl">{config.title}</h1>
21
- <p className="text-body mt-2">{config.description}</p>
22
- <button
23
- onClick={onShowSetupGuide}
24
- className="hidden text-primary-600 hover:text-primary-700 text-sm font-medium mt-2"
25
- >
26
- First time? Run the setup guide
27
- </button>
28
- </div>
29
- <div className="flex space-x-3">
30
- <button
31
- onClick={onRefresh}
32
- className="btn-primary flex items-center space-x-2"
33
- >
34
- <ArrowPathIcon className="w-5 h-5" />
35
- <span>Refresh</span>
36
- </button>
37
- <button
38
- onClick={onShowConfig}
39
- className="hidden btn-ghost flex items-center space-x-2"
40
- >
41
- <CogIcon className="w-5 h-5" />
42
- <span>Configure</span>
43
- </button>
44
- </div>
45
- </div>
46
- );
47
- }
@@ -1,35 +0,0 @@
1
- import React from 'react';
2
- import { Package } from '../types/dashboard.types';
3
-
4
- interface PackageDistributionProps {
5
- packages: Package[];
6
- packageTypes: string[];
7
- getTypeIcon: (type: string) => React.ReactNode;
8
- }
9
-
10
- export default function PackageDistribution({
11
- packages,
12
- packageTypes,
13
- getTypeIcon,
14
- }: PackageDistributionProps) {
15
- return (
16
- <div className="bg-white p-6 rounded-lg shadow border">
17
- <h3 className="text-lg font-semibold text-gray-900 mb-4">
18
- Package Distribution
19
- </h3>
20
- <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
21
- {packageTypes.map(type => (
22
- <div key={type} className="text-center p-4 bg-gray-50 rounded-lg">
23
- <div className="text-3xl mb-2 flex justify-center">{getTypeIcon(type)}</div>
24
- <div className="text-sm font-medium text-gray-600 capitalize flex justify-center">
25
- {type}
26
- </div>
27
- <div className="text-2xl font-bold text-gray-900">
28
- {packages.filter(p => p.type === type).length}
29
- </div>
30
- </div>
31
- ))}
32
- </div>
33
- </div>
34
- );
35
- }
@@ -1,47 +0,0 @@
1
- import { MagnifyingGlassIcon, FunnelIcon } from '../../../icons/heroicons';
2
-
3
- interface PackageSearchFilterProps {
4
- searchTerm: string;
5
- selectedType: string;
6
- packageTypes: string[];
7
- onSearchChange: (value: string) => void;
8
- onTypeChange: (value: string) => void;
9
- }
10
-
11
- export default function PackageSearchFilter({
12
- searchTerm,
13
- selectedType,
14
- packageTypes,
15
- onSearchChange,
16
- onTypeChange,
17
- }: PackageSearchFilterProps) {
18
- return (
19
- <div className="flex flex-col md:flex-row gap-4 mb-6">
20
- <div className="flex-1 relative">
21
- <MagnifyingGlassIcon className="w-5 h-5 absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400" />
22
- <input
23
- type="text"
24
- placeholder="Search packages..."
25
- value={searchTerm}
26
- onChange={e => onSearchChange(e.target.value)}
27
- className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
28
- />
29
- </div>
30
- <div className="flex items-center space-x-2">
31
- <FunnelIcon className="w-5 h-5 text-gray-400" />
32
- <select
33
- value={selectedType}
34
- onChange={e => onTypeChange(e.target.value)}
35
- className="px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
36
- >
37
- <option value="all">All Types</option>
38
- {packageTypes.map(type => (
39
- <option key={type} value={type} className="capitalize">
40
- {type}
41
- </option>
42
- ))}
43
- </select>
44
- </div>
45
- </div>
46
- );
47
- }
@@ -1,87 +0,0 @@
1
- import React from 'react';
2
- import { Link } from 'react-router-dom';
3
- import { Package } from '../types/dashboard.types';
4
-
5
- interface PackageTableProps {
6
- packages: Package[];
7
- getTypeIcon: (type: string) => React.ReactNode;
8
- getStatusColor: (type: string) => string;
9
- }
10
-
11
- export default function PackageTable({
12
- packages,
13
- getTypeIcon,
14
- getStatusColor,
15
- }: PackageTableProps) {
16
- return (
17
- <div className="overflow-x-auto">
18
- <table className="min-w-full divide-y divide-gray-200">
19
- <thead className="bg-gray-50">
20
- <tr>
21
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
22
- Package
23
- </th>
24
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
25
- Type
26
- </th>
27
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
28
- Version
29
- </th>
30
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
31
- Dependencies
32
- </th>
33
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
34
- Description
35
- </th>
36
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
37
- Actions
38
- </th>
39
- </tr>
40
- </thead>
41
- <tbody className="bg-white divide-y divide-gray-200">
42
- {packages.map(pkg => (
43
- <tr key={pkg.name} className="hover:bg-gray-50">
44
- <td className="px-6 py-4 whitespace-nowrap">
45
- <div className="flex items-center">
46
- <div className="text-2xl mr-3">{getTypeIcon(pkg.type)}</div>
47
- <div>
48
- <div className="text-sm font-medium text-gray-900">
49
- {pkg.name}
50
- </div>
51
- <div className="text-sm text-gray-500">{pkg.path}</div>
52
- </div>
53
- </div>
54
- </td>
55
- <td className="px-6 py-4 whitespace-nowrap">
56
- <span
57
- className={`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${getStatusColor(pkg.type)}`}
58
- >
59
- {pkg.type}
60
- </span>
61
- </td>
62
- <td className="px-6 py-4 whitespace-nowrap text-sm text-gray-900">
63
- {pkg.version}
64
- </td>
65
- <td className="px-6 py-4 whitespace-nowrap text-sm text-gray-900">
66
- {Object.keys(pkg.dependencies).length +
67
- Object.keys(pkg.devDependencies).length +
68
- Object.keys(pkg.peerDependencies).length}
69
- </td>
70
- <td className="px-6 py-4 text-sm text-gray-900 max-w-xs truncate">
71
- {pkg.description || 'No description'}
72
- </td>
73
- <td className="px-6 py-4 whitespace-nowrap text-sm font-medium">
74
- <Link
75
- to={`/packages/${encodeURIComponent(pkg.name)}`}
76
- className="text-blue-600 hover:text-blue-500"
77
- >
78
- View Details
79
- </Link>
80
- </td>
81
- </tr>
82
- ))}
83
- </tbody>
84
- </table>
85
- </div>
86
- );
87
- }
@@ -1,60 +0,0 @@
1
- import { Link } from 'react-router-dom';
2
- import { ChartBarIcon, HeartIcon } from '../../../icons/heroicons';
3
-
4
- export default function QuickActions() {
5
- return (
6
- <div className="bg-white p-6 rounded-lg shadow border">
7
- <h3 className="text-lg font-semibold text-gray-900 mb-4">
8
- Quick Actions
9
- </h3>
10
- <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
11
- <Link
12
- to="/dependencies"
13
- className="p-4 border border-gray-200 rounded-lg hover:border-blue-300 hover:bg-blue-50 transition-colors"
14
- >
15
- <div className="flex items-center space-x-3">
16
- <div className="p-2 bg-blue-100 rounded-lg">
17
- <ChartBarIcon className="w-6 h-6 text-primary-600" />
18
- </div>
19
- <div>
20
- <h4 className="font-medium text-gray-900">Dependency Graph</h4>
21
- <p className="text-sm text-gray-600">
22
- Visualize package relationships
23
- </p>
24
- </div>
25
- </div>
26
- </Link>
27
-
28
- <Link
29
- to="/health"
30
- className="p-4 border border-gray-200 rounded-lg hover:border-green-300 hover:bg-green-50 transition-colors"
31
- >
32
- <div className="flex items-center space-x-3">
33
- <div className="p-2 bg-green-100 rounded-lg">
34
- <HeartIcon className="w-6 h-6 text-primary-600" />
35
- </div>
36
- <div>
37
- <h4 className="font-medium text-gray-900">Health Check</h4>
38
- <p className="text-sm text-gray-600">Monitor package health</p>
39
- </div>
40
- </div>
41
- </Link>
42
-
43
- <Link
44
- to="/ci"
45
- className="hidden p-4 border border-gray-200 rounded-lg hover:border-purple-300 hover:bg-purple-50 transition-colors"
46
- >
47
- <div className="flex items-center space-x-3">
48
- <div className="p-2 bg-purple-100 rounded-lg">
49
- <span className="text-2xl">🧪</span>
50
- </div>
51
- <div>
52
- <h4 className="font-medium text-gray-900">CI/CD Status</h4>
53
- <p className="text-sm text-gray-600">View build status</p>
54
- </div>
55
- </div>
56
- </Link>
57
- </div>
58
- </div>
59
- );
60
- }
@@ -1,73 +0,0 @@
1
- import {
2
- CubeIcon,
3
- RocketLaunchIcon,
4
- BuildingLibraryIcon,
5
- LinkIcon,
6
- } from '../../../icons/heroicons';
7
-
8
- interface PackageStats {
9
- total: number;
10
- apps: number;
11
- libs: number;
12
- tools: number;
13
- custom: number;
14
- totalDependencies: number;
15
- }
16
-
17
- interface StatsCardsProps {
18
- stats: PackageStats;
19
- }
20
-
21
- export default function StatsCards({ stats }: StatsCardsProps) {
22
- return (
23
- <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
24
- <div className="card p-6 bg-gray-100">
25
- <div className="flex items-center">
26
- <div className="p-2 rounded-lg">
27
- <CubeIcon className="w-6 h-6 text-primary-600" />
28
- </div>
29
- <div className="ml-4">
30
- <p className="text-caption font-medium">Total Packages</p>
31
- <p className="text-heading text-2xl">{stats.total}</p>
32
- </div>
33
- </div>
34
- </div>
35
-
36
- <div className="card p-6 bg-green-100">
37
- <div className="flex items-center">
38
- <div className="p-2 bg-secondary-100 rounded-lg">
39
- <RocketLaunchIcon className="w-6 h-6 text-primary-600" />
40
- </div>
41
- <div className="ml-4">
42
- <p className="text-caption font-medium">Applications</p>
43
- <p className="text-heading text-2xl">{stats.apps}</p>
44
- </div>
45
- </div>
46
- </div>
47
-
48
- <div className="card p-6 bg-yellow-100">
49
- <div className="flex items-center">
50
- <div className="p-2 bg-accent-100 rounded-lg">
51
- <BuildingLibraryIcon className="w-6 h-6 text-primary-600" />
52
- </div>
53
- <div className="ml-4">
54
- <p className="text-caption font-medium">Libraries</p>
55
- <p className="text-heading text-2xl">{stats.libs}</p>
56
- </div>
57
- </div>
58
- </div>
59
-
60
- <div className="card p-6 bg-blue-100">
61
- <div className="flex items-center">
62
- <div className="p-2 rounded-lg">
63
- <LinkIcon className="w-6 h-6 text-primary-600" />
64
- </div>
65
- <div className="ml-4">
66
- <p className="text-caption font-medium">Dependencies</p>
67
- <p className="text-heading text-2xl">{stats.totalDependencies}</p>
68
- </div>
69
- </div>
70
- </div>
71
- </div>
72
- );
73
- }
@@ -1,7 +0,0 @@
1
- // Export all dashboard components for easier imports
2
- export { default as Header } from './Header';
3
- export { default as StatsCards } from './StatsCards';
4
- export { default as PackageDistribution } from './PackageDistribution';
5
- export { default as QuickActions } from './QuickActions';
6
- export { default as PackageSearchFilter } from './PackageSearchFilter';
7
- export { default as PackageTable } from './PackageTable';
@@ -1,33 +0,0 @@
1
- // Shared types for the dashboard components
2
-
3
- export interface Package {
4
- name: string;
5
- version: string;
6
- type: 'app' | 'lib' | 'tool' | 'service';
7
- status: 'healthy' | 'warning' | 'error' | 'building';
8
- description: string;
9
- lastUpdated: string;
10
- dependencies: string[];
11
- tags: string[];
12
- maintainers: string[];
13
- devDependencies: string[];
14
- peerDependencies: string[];
15
- path: string;
16
- }
17
-
18
- export interface PackageStats {
19
- total: number;
20
- apps: number;
21
- libs: number;
22
- tools: number;
23
- custom: number;
24
- totalDependencies: number;
25
- }
26
-
27
- export interface DashboardState {
28
- packages: Package[];
29
- searchTerm: string;
30
- selectedType: string;
31
- showConfig: boolean;
32
- showSetupGuide: boolean;
33
- }
@@ -1,70 +0,0 @@
1
- import { Package, PackageStats } from '../types/dashboard.types';
2
- import { RocketLaunchIcon, BuildingLibraryIcon, CubeIcon } from '../../../icons/heroicons';
3
-
4
- // Calculate package statistics
5
- export const calculatePackageStats = (packages: Package[]): PackageStats => {
6
- return {
7
- total: packages.length,
8
- apps: packages.filter(p => p.type === 'app').length,
9
- libs: packages.filter(p => p.type === 'lib').length,
10
- tools: packages.filter(p => p.type === 'tool').length,
11
- custom: packages.filter(p => !['app', 'Plib', 'tool'].includes(p.type))
12
- .length,
13
- totalDependencies: packages.reduce(
14
- (sum, pkg) =>
15
- sum +
16
- Object.keys(pkg.dependencies).length +
17
- Object.keys(pkg.peerDependencies).length +
18
- Object.keys(pkg.devDependencies).length,
19
- 0
20
- ),
21
- };
22
- };
23
-
24
- // Get unique package types for filtering
25
- export const getUniquePackageTypes = (packages: Package[]): string[] => {
26
- return [...new Set(packages.map(pkg => pkg.type))];
27
- };
28
-
29
- // Filter packages based on search and type
30
- export const filterPackages = (
31
- packages: Package[],
32
- searchTerm: string,
33
- selectedType: string
34
- ): Package[] => {
35
- return packages.filter(pkg => {
36
- const matchesSearch =
37
- pkg.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
38
- pkg.description?.toLowerCase().includes(searchTerm.toLowerCase());
39
- const matchesType = selectedType === 'all' || pkg.type === selectedType;
40
- return matchesSearch && matchesType;
41
- });
42
- };
43
-
44
- // Get status color for package type
45
- export const getStatusColor = (type: string): string => {
46
- switch (type) {
47
- case 'app':
48
- return 'bg-blue-100 text-blue-800';
49
- case 'lib':
50
- return 'bg-green-100 text-green-800';
51
- case 'tool':
52
- return 'bg-purple-100 text-purple-800';
53
- default:
54
- return 'bg-gray-100 text-gray-800';
55
- }
56
- };
57
-
58
- // Get icon for package type
59
- export const getTypeIcon = (type: string): React.ReactNode => {
60
- switch (type) {
61
- case 'app':
62
- return <RocketLaunchIcon className="w-6 h-6 text-primary-600" />;
63
- case 'lib':
64
- return <BuildingLibraryIcon className="w-6 h-6 text-primary-600" />;
65
- case 'tool':
66
- return '🔧';
67
- default:
68
- return <CubeIcon className="w-6 h-6 text-primary-600" />;
69
- }
70
- };