@manojkmfsi/monodog 1.1.37 → 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 (200) hide show
  1. package/CHANGELOG.md +12 -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/monodog-dashboard/package.json +0 -3
  7. package/package.json +2 -2
  8. package/monodog-dashboard/THEME_SYSTEM.md +0 -309
  9. package/monodog-dashboard/__tests__/AuthCallbackPage.test.ts +0 -138
  10. package/monodog-dashboard/__tests__/ConfigInspector.test.ts +0 -33
  11. package/monodog-dashboard/__tests__/DependencyGraph.test.ts +0 -72
  12. package/monodog-dashboard/__tests__/HealthStatus.test.ts +0 -69
  13. package/monodog-dashboard/__tests__/LoginPage.test.ts +0 -79
  14. package/monodog-dashboard/__tests__/PackageDetail.test.ts +0 -22
  15. package/monodog-dashboard/__tests__/ReleaseManager.test.tsx +0 -510
  16. package/monodog-dashboard/__tests__/api-client.test.ts +0 -475
  17. package/monodog-dashboard/__tests__/components.test.ts +0 -117
  18. package/monodog-dashboard/__tests__/dashboard.utils.test.ts +0 -144
  19. package/monodog-dashboard/__tests__/dependency.utils.test.ts +0 -125
  20. package/monodog-dashboard/__tests__/monorepoService.unit.test.ts +0 -103
  21. package/monodog-dashboard/__tests__/packages.utils.test.ts +0 -37
  22. package/monodog-dashboard/__tests__/pages.test.ts +0 -103
  23. package/monodog-dashboard/package-lock.json +0 -4587
  24. package/monodog-dashboard/postcss.config.js +0 -6
  25. package/monodog-dashboard/src/components/App.tsx +0 -36
  26. package/monodog-dashboard/src/components/LoadingState.tsx +0 -18
  27. package/monodog-dashboard/src/components/PermissionGuard.tsx +0 -92
  28. package/monodog-dashboard/src/components/ProtectedRoute.tsx +0 -24
  29. package/monodog-dashboard/src/components/configuration/Configuration.tsx +0 -91
  30. package/monodog-dashboard/src/components/configuration/components/BrandingSettings.tsx +0 -128
  31. package/monodog-dashboard/src/components/configuration/components/ConfigurationHeader.tsx +0 -34
  32. package/monodog-dashboard/src/components/configuration/components/ConfigurationModal.tsx +0 -20
  33. package/monodog-dashboard/src/components/configuration/components/ConfigurationTabs.tsx +0 -30
  34. package/monodog-dashboard/src/components/configuration/components/FeatureToggles.tsx +0 -66
  35. package/monodog-dashboard/src/components/configuration/components/GeneralSettings.tsx +0 -77
  36. package/monodog-dashboard/src/components/configuration/components/MonorepoSettings.tsx +0 -179
  37. package/monodog-dashboard/src/components/configuration/components/index.ts +0 -8
  38. package/monodog-dashboard/src/components/configuration/types/config.types.ts +0 -52
  39. package/monodog-dashboard/src/components/configuration/utils/config.utils.tsx +0 -115
  40. package/monodog-dashboard/src/components/main-dashboard/Dashboard.tsx +0 -242
  41. package/monodog-dashboard/src/components/main-dashboard/Layout.tsx +0 -112
  42. package/monodog-dashboard/src/components/main-dashboard/components/Header.tsx +0 -47
  43. package/monodog-dashboard/src/components/main-dashboard/components/PackageDistribution.tsx +0 -35
  44. package/monodog-dashboard/src/components/main-dashboard/components/PackageSearchFilter.tsx +0 -47
  45. package/monodog-dashboard/src/components/main-dashboard/components/PackageTable.tsx +0 -87
  46. package/monodog-dashboard/src/components/main-dashboard/components/QuickActions.tsx +0 -60
  47. package/monodog-dashboard/src/components/main-dashboard/components/StatsCards.tsx +0 -73
  48. package/monodog-dashboard/src/components/main-dashboard/components/index.ts +0 -7
  49. package/monodog-dashboard/src/components/main-dashboard/types/dashboard.types.ts +0 -33
  50. package/monodog-dashboard/src/components/main-dashboard/utils/dashboard.utils.tsx +0 -70
  51. package/monodog-dashboard/src/components/modules/ci-integration/CIIntegration.tsx +0 -277
  52. package/monodog-dashboard/src/components/modules/ci-integration/components/BuildDetails.tsx +0 -228
  53. package/monodog-dashboard/src/components/modules/ci-integration/components/BuildList.tsx +0 -212
  54. package/monodog-dashboard/src/components/modules/ci-integration/components/BuildOverview.tsx +0 -158
  55. package/monodog-dashboard/src/components/modules/ci-integration/components/CIIntegrationHeader.tsx +0 -38
  56. package/monodog-dashboard/src/components/modules/ci-integration/components/ErrorState.tsx +0 -25
  57. package/monodog-dashboard/src/components/modules/ci-integration/components/LoadingState.tsx +0 -16
  58. package/monodog-dashboard/src/components/modules/ci-integration/components/PipelineStatus.tsx +0 -223
  59. package/monodog-dashboard/src/components/modules/ci-integration/components/index.ts +0 -8
  60. package/monodog-dashboard/src/components/modules/ci-integration/types/ci.types.ts +0 -97
  61. package/monodog-dashboard/src/components/modules/ci-integration/utils/ci.utils.tsx +0 -264
  62. package/monodog-dashboard/src/components/modules/config-inspector/ConfigInspector.tsx +0 -324
  63. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigEditor.tsx +0 -93
  64. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigInspectorHeader.tsx +0 -36
  65. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigPreview.tsx +0 -89
  66. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigSidebar.tsx +0 -141
  67. package/monodog-dashboard/src/components/modules/config-inspector/components/ConfigToolbar.tsx +0 -184
  68. package/monodog-dashboard/src/components/modules/config-inspector/components/ErrorState.tsx +0 -25
  69. package/monodog-dashboard/src/components/modules/config-inspector/components/LoadingState.tsx +0 -16
  70. package/monodog-dashboard/src/components/modules/config-inspector/components/ValidationPanel.tsx +0 -155
  71. package/monodog-dashboard/src/components/modules/config-inspector/components/index.ts +0 -9
  72. package/monodog-dashboard/src/components/modules/config-inspector/types/config.types.ts +0 -100
  73. package/monodog-dashboard/src/components/modules/config-inspector/utils/config.utils.tsx +0 -704
  74. package/monodog-dashboard/src/components/modules/dependency-graph/DependencyGraph.tsx +0 -224
  75. package/monodog-dashboard/src/components/modules/dependency-graph/components/CircularDependencies.tsx +0 -177
  76. package/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyDetails.tsx +0 -192
  77. package/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyGraphHeader.tsx +0 -30
  78. package/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyList.tsx +0 -177
  79. package/monodog-dashboard/src/components/modules/dependency-graph/components/ErrorState.tsx +0 -25
  80. package/monodog-dashboard/src/components/modules/dependency-graph/components/GraphLegend.tsx +0 -89
  81. package/monodog-dashboard/src/components/modules/dependency-graph/components/GraphStats.tsx +0 -141
  82. package/monodog-dashboard/src/components/modules/dependency-graph/components/GraphToolbar.tsx +0 -107
  83. package/monodog-dashboard/src/components/modules/dependency-graph/components/GraphVisualization.tsx +0 -179
  84. package/monodog-dashboard/src/components/modules/dependency-graph/components/LoadingState.tsx +0 -16
  85. package/monodog-dashboard/src/components/modules/dependency-graph/components/index.ts +0 -11
  86. package/monodog-dashboard/src/components/modules/dependency-graph/types/dependency.types.ts +0 -105
  87. package/monodog-dashboard/src/components/modules/dependency-graph/utils/dependency.utils.tsx +0 -433
  88. package/monodog-dashboard/src/components/modules/health-status/HealthStatus.tsx +0 -739
  89. package/monodog-dashboard/src/components/modules/health-status/components/ErrorState.tsx +0 -25
  90. package/monodog-dashboard/src/components/modules/health-status/components/HealthActions.tsx +0 -122
  91. package/monodog-dashboard/src/components/modules/health-status/components/HealthAlerts.tsx +0 -151
  92. package/monodog-dashboard/src/components/modules/health-status/components/HealthMetrics.tsx +0 -132
  93. package/monodog-dashboard/src/components/modules/health-status/components/HealthStatusHeader.tsx +0 -30
  94. package/monodog-dashboard/src/components/modules/health-status/components/LoadingState.tsx +0 -16
  95. package/monodog-dashboard/src/components/modules/health-status/components/OverallHealthScore.tsx +0 -122
  96. package/monodog-dashboard/src/components/modules/health-status/components/PackageHealthList.tsx +0 -195
  97. package/monodog-dashboard/src/components/modules/health-status/types/health.types.ts +0 -80
  98. package/monodog-dashboard/src/components/modules/health-status/utils/health.utils.tsx +0 -220
  99. package/monodog-dashboard/src/components/modules/packages/PackageDetail.tsx +0 -255
  100. package/monodog-dashboard/src/components/modules/packages/PackagesOverview.tsx +0 -166
  101. package/monodog-dashboard/src/components/modules/packages/components/ConfigurationTab.tsx +0 -311
  102. package/monodog-dashboard/src/components/modules/packages/components/DependenciesTab.tsx +0 -154
  103. package/monodog-dashboard/src/components/modules/packages/components/ErrorState.tsx +0 -21
  104. package/monodog-dashboard/src/components/modules/packages/components/HealthMetricsTab.tsx +0 -275
  105. package/monodog-dashboard/src/components/modules/packages/components/LoadingState.tsx +0 -14
  106. package/monodog-dashboard/src/components/modules/packages/components/PackageDetailHeader.tsx +0 -167
  107. package/monodog-dashboard/src/components/modules/packages/components/PackageDetailTabs.tsx +0 -49
  108. package/monodog-dashboard/src/components/modules/packages/components/PackageStats.tsx +0 -70
  109. package/monodog-dashboard/src/components/modules/packages/components/PackagesTable.tsx +0 -163
  110. package/monodog-dashboard/src/components/modules/packages/components/RecentCommitsTab.tsx +0 -90
  111. package/monodog-dashboard/src/components/modules/packages/components/SearchAndFilter.tsx +0 -66
  112. package/monodog-dashboard/src/components/modules/packages/components/index.ts +0 -12
  113. package/monodog-dashboard/src/components/modules/packages/types/packages.types.ts +0 -101
  114. package/monodog-dashboard/src/components/modules/packages/utils/packages.utils.tsx +0 -178
  115. package/monodog-dashboard/src/components/pipeline/JobsList.tsx +0 -83
  116. package/monodog-dashboard/src/components/pipeline/LogViewer.tsx +0 -392
  117. package/monodog-dashboard/src/components/pipeline/PipelineManager.tsx +0 -562
  118. package/monodog-dashboard/src/components/pipeline/WorkflowRunsList.tsx +0 -272
  119. package/monodog-dashboard/src/components/pipeline/WorkflowTrigger.tsx +0 -182
  120. package/monodog-dashboard/src/components/pipeline/utils/pipeline.utils.tsx +0 -11
  121. package/monodog-dashboard/src/components/publish-control/PublishControl.tsx +0 -229
  122. package/monodog-dashboard/src/components/publish-control/components/ChangelogViewer.tsx +0 -103
  123. package/monodog-dashboard/src/components/publish-control/components/ErrorState.tsx +0 -23
  124. package/monodog-dashboard/src/components/publish-control/components/LoadingState.tsx +0 -10
  125. package/monodog-dashboard/src/components/publish-control/components/PackageReleaseTable.tsx +0 -140
  126. package/monodog-dashboard/src/components/publish-control/components/PublishHeader.tsx +0 -30
  127. package/monodog-dashboard/src/components/publish-control/components/QuickActionCards.tsx +0 -56
  128. package/monodog-dashboard/src/components/publish-control/components/ReleaseSchedule.tsx +0 -104
  129. package/monodog-dashboard/src/components/publish-control/components/index.ts +0 -8
  130. package/monodog-dashboard/src/components/publish-control/types/publish.types.ts +0 -39
  131. package/monodog-dashboard/src/components/publish-control/utils/publish.utils.ts +0 -59
  132. package/monodog-dashboard/src/components/release-manager/ReleaseManager.tsx +0 -342
  133. package/monodog-dashboard/src/components/release-manager/components/ChangesetPreview.tsx +0 -123
  134. package/monodog-dashboard/src/components/release-manager/components/ErrorState.tsx +0 -38
  135. package/monodog-dashboard/src/components/release-manager/components/LoadingState.tsx +0 -18
  136. package/monodog-dashboard/src/components/release-manager/components/PackageSelector.tsx +0 -137
  137. package/monodog-dashboard/src/components/release-manager/components/PublishConfirmation.tsx +0 -150
  138. package/monodog-dashboard/src/components/release-manager/components/ReleaseValidation.tsx +0 -138
  139. package/monodog-dashboard/src/components/release-manager/components/VersionBumpSelector.tsx +0 -142
  140. package/monodog-dashboard/src/components/release-manager/types/index.ts +0 -9
  141. package/monodog-dashboard/src/components/release-manager/types/release-manager.types.ts +0 -29
  142. package/monodog-dashboard/src/components/setup-guide/SetupGuide.tsx +0 -96
  143. package/monodog-dashboard/src/components/setup-guide/components/SetupHeader.tsx +0 -24
  144. package/monodog-dashboard/src/components/setup-guide/components/SetupModal.tsx +0 -24
  145. package/monodog-dashboard/src/components/setup-guide/components/SetupProgress.tsx +0 -29
  146. package/monodog-dashboard/src/components/setup-guide/components/StepContent.tsx +0 -272
  147. package/monodog-dashboard/src/components/setup-guide/components/StepNavigation.tsx +0 -62
  148. package/monodog-dashboard/src/components/setup-guide/components/index.ts +0 -6
  149. package/monodog-dashboard/src/components/setup-guide/types/setup.types.ts +0 -38
  150. package/monodog-dashboard/src/components/setup-guide/utils/setup.utils.ts +0 -79
  151. package/monodog-dashboard/src/constants/api-config.ts +0 -81
  152. package/monodog-dashboard/src/constants/index.ts +0 -9
  153. package/monodog-dashboard/src/constants/messages.ts +0 -40
  154. package/monodog-dashboard/src/icons/heroicons.ts +0 -65
  155. package/monodog-dashboard/src/icons/index.tsx +0 -1788
  156. package/monodog-dashboard/src/index.css +0 -175
  157. package/monodog-dashboard/src/main.tsx +0 -9
  158. package/monodog-dashboard/src/pages/AuthCallbackPage.tsx +0 -103
  159. package/monodog-dashboard/src/pages/CIPage.tsx +0 -6
  160. package/monodog-dashboard/src/pages/ConfigPage.tsx +0 -6
  161. package/monodog-dashboard/src/pages/DashboardPage.tsx +0 -6
  162. package/monodog-dashboard/src/pages/DependenciesPage.tsx +0 -6
  163. package/monodog-dashboard/src/pages/HealthPage.tsx +0 -6
  164. package/monodog-dashboard/src/pages/LoginPage.tsx +0 -77
  165. package/monodog-dashboard/src/pages/PackageDetailPage.tsx +0 -6
  166. package/monodog-dashboard/src/pages/PackagesPage.tsx +0 -6
  167. package/monodog-dashboard/src/pages/PipelinePage.tsx +0 -22
  168. package/monodog-dashboard/src/pages/PublishPage.tsx +0 -6
  169. package/monodog-dashboard/src/pages/ReleaseManagerPage.tsx +0 -9
  170. package/monodog-dashboard/src/pages/index.ts +0 -28
  171. package/monodog-dashboard/src/routes/AppRouter.tsx +0 -89
  172. package/monodog-dashboard/src/routes/AppRouterPages.tsx +0 -56
  173. package/monodog-dashboard/src/routes/index.ts +0 -10
  174. package/monodog-dashboard/src/routes/routes.config.ts +0 -94
  175. package/monodog-dashboard/src/services/api/api-client.ts +0 -189
  176. package/monodog-dashboard/src/services/api/index.ts +0 -30
  177. package/monodog-dashboard/src/services/api/types/api.types.ts +0 -63
  178. package/monodog-dashboard/src/services/auth-context.tsx +0 -344
  179. package/monodog-dashboard/src/services/monorepoService.ts +0 -733
  180. package/monodog-dashboard/src/services/permission-context.tsx +0 -193
  181. package/monodog-dashboard/src/theme/COMPONENT_UPDATES.md +0 -273
  182. package/monodog-dashboard/src/theme/INTEGRATION.md +0 -381
  183. package/monodog-dashboard/src/theme/README.md +0 -239
  184. package/monodog-dashboard/src/theme/examples.tsx +0 -386
  185. package/monodog-dashboard/src/theme/index.ts +0 -402
  186. package/monodog-dashboard/src/theme/migration-guide.md +0 -335
  187. package/monodog-dashboard/src/types/auth-context.types.ts +0 -51
  188. package/monodog-dashboard/src/types/component.types.ts +0 -96
  189. package/monodog-dashboard/src/types/icons.types.ts +0 -13
  190. package/monodog-dashboard/src/types/index.ts +0 -68
  191. package/monodog-dashboard/src/types/monorepo-service.types.ts +0 -53
  192. package/monodog-dashboard/src/types/permission-context.types.ts +0 -49
  193. package/monodog-dashboard/src/types/pipeline.types.ts +0 -89
  194. package/monodog-dashboard/src/types/routes.types.ts +0 -12
  195. package/monodog-dashboard/src/utils/cookies.ts +0 -47
  196. package/monodog-dashboard/tailwind.config.js +0 -68
  197. package/monodog-dashboard/tsconfig.app.json +0 -14
  198. package/monodog-dashboard/tsconfig.json +0 -17
  199. package/monodog-dashboard/tsconfig.node.json +0 -10
  200. 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
- };