@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,177 +0,0 @@
1
- import { Link } from 'react-router-dom';
2
- import { ArrowUpIcon, ArrowDownIcon } from '../../../../icons/heroicons';
3
- import { CubeIcon } from '../../../../icons/heroicons';
4
- import { DependencyListProps } from '../types/dependency.types';
5
- import {
6
- getStatusColor,
7
- getTypeColor,
8
- getPackageTypeIcon,
9
- } from '../utils/dependency.utils';
10
-
11
- export default function DependencyList({
12
- packages,
13
- selectedPackage,
14
- onPackageSelect,
15
- sortBy,
16
- sortOrder,
17
- onSortChange,
18
- }: DependencyListProps) {
19
- const handleSort = (field: string) => {
20
- const newOrder = sortBy === field && sortOrder === 'asc' ? 'desc' : 'asc';
21
- onSortChange(field, newOrder);
22
- };
23
-
24
- const getSortIcon = (field: string) => {
25
- if (sortBy !== field) return null;
26
- return sortOrder === 'asc' ? (
27
- <ArrowUpIcon className="w-4 h-4" />
28
- ) : (
29
- <ArrowDownIcon className="w-4 h-4" />
30
- );
31
- };
32
-
33
- return (
34
- <div className="bg-white rounded-lg shadow-sm border border-gray-200">
35
- <div className="p-6 border-b border-gray-200">
36
- <h3 className="text-lg font-medium text-gray-900">
37
- Package Dependencies
38
- </h3>
39
- <p className="text-sm text-gray-600 mt-1">
40
- Click on a view details to explore its dependencies, commits,
41
- configuration and health
42
- </p>
43
- </div>
44
-
45
- <div className="overflow-x-auto">
46
- <table className="min-w-full divide-y divide-gray-200">
47
- <thead className="bg-gray-50">
48
- <tr>
49
- <th
50
- className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider cursor-pointer hover:bg-gray-100"
51
- onClick={() => handleSort('name')}
52
- >
53
- <div className="flex items-center space-x-1">
54
- <span>Package</span>
55
- {getSortIcon('name')}
56
- </div>
57
- </th>
58
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
59
- Type
60
- </th>
61
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
62
- Status
63
- </th>
64
- <th
65
- className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider cursor-pointer hover:bg-gray-100"
66
- onClick={() => handleSort('dependencies')}
67
- >
68
- <div className="flex items-center space-x-1">
69
- <span>Dependencies</span>
70
- {getSortIcon('dependencies')}
71
- </div>
72
- </th>
73
- <th
74
- className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider cursor-pointer hover:bg-gray-100"
75
- onClick={() => handleSort('dependents')}
76
- >
77
- <div className="flex items-center space-x-1">
78
- <span>Dependents</span>
79
- {getSortIcon('dependents')}
80
- </div>
81
- </th>
82
- <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
83
- Actions
84
- </th>
85
- </tr>
86
- </thead>
87
- <tbody className="bg-white divide-y divide-gray-200">
88
- {packages.map(pkg => (
89
- <tr
90
- key={pkg.name}
91
- className={`hover:bg-gray-50 cursor-pointer transition-colors ${
92
- selectedPackage === pkg.name ? 'bg-blue-50' : ''
93
- }`}
94
- onClick={() => onPackageSelect(pkg.name)}
95
- >
96
- <td className="px-6 py-4 whitespace-nowrap">
97
- <div className="flex items-center">
98
- <div className="text-2xl mr-3">
99
- {getPackageTypeIcon(pkg.type)}
100
- </div>
101
- <div>
102
- <div className="text-sm font-medium text-gray-900">
103
- {pkg.name}
104
- </div>
105
- <div className="text-sm text-gray-500">
106
- v{pkg.version}
107
- </div>
108
- </div>
109
- </div>
110
- </td>
111
-
112
- <td className="px-6 py-4 whitespace-nowrap">
113
- <span
114
- className={`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${getTypeColor(pkg.type)}`}
115
- >
116
- {pkg.type}
117
- </span>
118
- </td>
119
-
120
- <td className="px-6 py-4 whitespace-nowrap">
121
- <span
122
- className={`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${getStatusColor(pkg.status)}`}
123
- >
124
- {pkg.status}
125
- </span>
126
- </td>
127
-
128
- <td className="px-6 py-4 whitespace-nowrap">
129
- <div className="text-sm text-gray-900">
130
- {Object.keys(pkg.dependencies).length}
131
- {Object.keys(pkg.dependencies).length > 0 && (
132
- <div className="text-xs text-gray-500 mt-1">
133
- {Object.keys(pkg.dependencies).slice(0, 3).join(', ')}
134
- {Object.keys(pkg.dependencies).length > 3 &&
135
- ` +${Object.keys(pkg.dependencies).length - 3} more`}
136
- </div>
137
- )}
138
- </div>
139
- </td>
140
-
141
- <td className="px-6 py-4 whitespace-nowrap">
142
- <div className="text-sm text-gray-900">
143
- {pkg.dependents.length}
144
- {pkg.dependents.length > 0 && (
145
- <div className="text-xs text-gray-500 mt-1">
146
- {pkg.dependents.slice(0, 3).join(', ')}
147
- {pkg.dependents.length > 3 &&
148
- ` +${pkg.dependents.length - 3} more`}
149
- </div>
150
- )}
151
- </div>
152
- </td>
153
-
154
- <td className="px-6 py-4 whitespace-nowrap text-sm">
155
- <Link
156
- to={`/packages/${encodeURIComponent(pkg.name)}`}
157
- className="text-blue-600 hover:text-blue-500"
158
- onClick={e => e.stopPropagation()}
159
- >
160
- View Details
161
- </Link>
162
- </td>
163
- </tr>
164
- ))}
165
- </tbody>
166
- </table>
167
- </div>
168
-
169
- {packages.length === 0 && (
170
- <div className="text-center py-12">
171
- <div className="text-gray-400 text-4xl mb-2 flex justify-center"><CubeIcon className="w-6 h-6 text-primary-600" /></div>
172
- <p className="text-gray-500">No packages found</p>
173
- </div>
174
- )}
175
- </div>
176
- );
177
- }
@@ -1,25 +0,0 @@
1
- import { ExclamationTriangleIcon } from '../../../../icons/heroicons';
2
-
3
- interface ErrorStateProps {
4
- error: string;
5
- onRetry?: () => void;
6
- }
7
-
8
- export default function ErrorState({ error, onRetry }: ErrorStateProps) {
9
- return (
10
- <div className="flex items-center justify-center h-64">
11
- <div className="text-center">
12
- <ExclamationTriangleIcon className="w-12 h-12 text-red-500 mx-auto" />
13
- <p className="mt-4 text-red-600">{error}</p>
14
- {onRetry && (
15
- <button
16
- onClick={onRetry}
17
- className="mt-4 bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition-colors"
18
- >
19
- Retry
20
- </button>
21
- )}
22
- </div>
23
- </div>
24
- );
25
- }
@@ -1,89 +0,0 @@
1
- import type { GraphLegendProps } from '../../../../types';
2
- import { ArrowLongRightIcon } from '../../../../icons'
3
-
4
- export default function GraphLegend({ show }: GraphLegendProps) {
5
- if (!show) return null;
6
-
7
- return (
8
- <div className="bg-white p-4 rounded-lg shadow border">
9
- <h4 className="text-sm font-medium text-gray-900 mb-3">Legend</h4>
10
-
11
- <div className="space-y-4">
12
- {/* Package Types */}
13
- <div>
14
- <h5 className="text-xs font-medium text-gray-700 mb-2">
15
- Package Types
16
- </h5>
17
- <div className="grid grid-cols-3 gap-2 text-xs">
18
- <div className="flex items-center space-x-2">
19
- <div className="w-3 h-2 bg-blue-500 rounded"></div>
20
- <span>App</span>
21
- </div>
22
- <div className="flex items-center space-x-2">
23
- <div className="w-3 h-2 bg-purple-500 rounded"></div>
24
- <span>Library</span>
25
- </div>
26
- <div className="flex items-center space-x-2">
27
- <div className="w-3 h-2 bg-orange-500 rounded"></div>
28
- <span>Tool</span>
29
- </div>
30
- </div>
31
- </div>
32
-
33
- {/* Status Indicators */}
34
- <div>
35
- <h5 className="text-xs font-medium text-gray-700 mb-2">
36
- Health Status
37
- </h5>
38
- <div className="grid grid-cols-3 gap-2 text-xs">
39
- <div className="flex items-center space-x-2">
40
- <div className="w-3 h-3 bg-green-500 rounded-full"></div>
41
- <span>Healthy</span>
42
- </div>
43
- <div className="flex items-center space-x-2">
44
- <div className="w-3 h-3 bg-yellow-500 rounded-full"></div>
45
- <span>Warning</span>
46
- </div>
47
- <div className="flex items-center space-x-2">
48
- <div className="w-3 h-3 bg-red-500 rounded-full"></div>
49
- <span>Error</span>
50
- </div>
51
- </div>
52
- </div>
53
-
54
- {/* Visual Elements */}
55
- <div>
56
- <h5 className="text-xs font-medium text-gray-700 mb-2">
57
- Visual Elements
58
- </h5>
59
- <div className="space-y-1 text-xs">
60
- <div className="flex items-center space-x-2">
61
- <ArrowLongRightIcon></ArrowLongRightIcon>
62
- <span>Dependency</span>
63
- </div>
64
- <div className="flex items-center space-x-2">
65
- <div className="w-6 h-4 border-2 border-blue-500 rounded bg-white"></div>
66
- <span>Selected</span>
67
- </div>
68
- <div className="flex items-center space-x-2">
69
- <div className="w-6 h-4 border-2 border-green-500 rounded bg-white"></div>
70
- <span>Connected</span>
71
- </div>
72
- </div>
73
- </div>
74
-
75
- {/* Interaction Guide */}
76
- <div>
77
- <h5 className="text-xs font-medium text-gray-700 mb-2">
78
- Interactions
79
- </h5>
80
- <div className="space-y-1 text-xs text-gray-600">
81
- <div>• Click a package to select and view details</div>
82
- <div>• Hover to highlight connections</div>
83
- <div>• Use toolbar to change layout and zoom</div>
84
- </div>
85
- </div>
86
- </div>
87
- </div>
88
- );
89
- }
@@ -1,141 +0,0 @@
1
- import {
2
- CubeIcon,
3
- ArrowPathIcon,
4
- ExclamationTriangleIcon,
5
- ChartBarIcon,
6
- LinkIcon,
7
- } from '../../../../icons/heroicons';
8
- import { GraphStatsProps } from '../types/dependency.types';
9
-
10
- export default function GraphStats({ stats, packages }: GraphStatsProps) {
11
- return (
12
- <div className="grid grid-cols-1 md:grid-cols-4 gap-4">
13
- {/* Total Packages */}
14
- <div className="bg-gray-100 p-4 rounded-lg shadow border">
15
- <div className="flex items-center">
16
- <div className="p-2 rounded-lg">
17
- <CubeIcon className="w-6 h-6 text-primary-600" />
18
- </div>
19
- <div className="ml-4">
20
- <p className="text-sm font-medium text-gray-600">Total Packages</p>
21
- <p className="text-2xl font-semibold text-gray-900">
22
- {stats.totalPackages}
23
- </p>
24
- </div>
25
- </div>
26
- </div>
27
-
28
- {/* Total Dependencies */}
29
- <div className="bg-blue-100 p-4 rounded-lg shadow border">
30
- <div className="flex items-center">
31
- <div className="p-2 rounded-lg">
32
- <LinkIcon className="w-6 h-6 text-primary-600" />
33
- </div>
34
- <div className="ml-4">
35
- <p className="text-sm font-medium text-gray-600">Dependencies</p>
36
- <p className="text-2xl font-semibold text-gray-900">
37
- {stats.totalDependencies}
38
- </p>
39
- </div>
40
- </div>
41
- </div>
42
-
43
- {/* Circular Dependencies */}
44
- <div className={`${
45
- stats.circularDependencies > 0
46
- ? 'bg-red-100'
47
- : 'bg-green-100'
48
- } p-4 rounded-lg shadow border`} >
49
- <div className="flex items-center">
50
- <div
51
- className={`p-2 rounded-lg ${
52
- stats.circularDependencies > 0 ? 'bg-red-100' : 'bg-green-100'
53
- }`}
54
- >
55
- <ExclamationTriangleIcon
56
- className={`w-6 h-6 ${
57
- stats.circularDependencies > 0
58
- ? 'text-red-600'
59
- : 'text-primary-600'
60
- }`}
61
- />
62
- </div>
63
- <div className="ml-4">
64
- <p className="text-sm font-medium text-gray-600">Circular Deps</p>
65
- <p
66
- className={`text-2xl font-semibold ${
67
- stats.circularDependencies > 0
68
- ? 'text-red-600'
69
- : 'text-gray-600'
70
- }`}
71
- >
72
- {stats.circularDependencies}
73
- </p>
74
- </div>
75
- </div>
76
- </div>
77
-
78
- {/* Max Depth */}
79
- <div className="bg-purple-100 p-4 rounded-lg shadow border">
80
- <div className="flex items-center">
81
- <div className="p-2 bg-purple-100 rounded-lg">
82
- <ChartBarIcon className="w-6 h-6 text-primary-600" />
83
- </div>
84
- <div className="ml-4">
85
- <p className="text-sm font-medium text-gray-600">Max Depth</p>
86
- <p className="text-2xl font-semibold text-gray-900">
87
- {stats.maxDepth}
88
- </p>
89
- </div>
90
- </div>
91
- </div>
92
-
93
- {/* Detailed Stats */}
94
- <div className="md:col-span-4 bg-white p-4 rounded-lg shadow border">
95
- <h3 className="text-lg font-medium text-gray-900 mb-4">
96
- Dependency Analysis
97
- </h3>
98
- <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
99
- <div className="text-center bg-gray-100 p-2">
100
- <div className="text-2xl font-bold text-blue-600">
101
- {stats.leafPackages}
102
- </div>
103
- <div className="text-sm text-gray-600">Leaf Packages</div>
104
- <div className="text-xs text-gray-500">No dependencies</div>
105
- </div>
106
-
107
- <div className="text-center bg-gray-100 p-2">
108
- <div className="text-2xl font-bold text-green-600">
109
- {stats.rootPackages}
110
- </div>
111
- <div className="text-sm text-gray-600">Root Packages</div>
112
- <div className="text-xs text-gray-500">No dependents</div>
113
- </div>
114
-
115
- <div className="text-center bg-gray-100 p-2">
116
- <div className="text-2xl font-bold text-purple-600">
117
- {stats.avgDependencies}
118
- </div>
119
- <div className="text-sm text-gray-600">Avg Dependencies</div>
120
- <div className="text-xs text-gray-500">Per package</div>
121
- </div>
122
-
123
- <div className="text-center bg-gray-100 p-2">
124
- <div className="text-2xl font-bold text-orange-600">
125
- {packages.filter(p => p.status === 'healthy').length}
126
- </div>
127
- <div className="text-sm text-gray-600">Healthy Packages</div>
128
- <div className="text-xs text-gray-500">
129
- {Math.round(
130
- (packages.filter(p => p.status === 'healthy').length /
131
- packages.length) *
132
- 100
133
- )}
134
- % of total
135
- </div>
136
- </div>
137
- </div>
138
- </div>
139
- </div>
140
- );
141
- }
@@ -1,107 +0,0 @@
1
- import {
2
- Squares2X2Icon,
3
- ListBulletIcon,
4
- InformationCircleIcon,
5
- MagnifyingGlassMinusIcon,
6
- MagnifyingGlassPlusIcon,
7
- } from '../../../../icons/heroicons';
8
- import { GraphToolbarProps } from '../types/dependency.types';
9
-
10
- export default function GraphToolbar({
11
- viewMode,
12
- onViewModeChange,
13
- layout,
14
- onLayoutChange,
15
- showLegend,
16
- onToggleLegend,
17
- zoomLevel,
18
- onZoomChange,
19
- }: GraphToolbarProps) {
20
- return (
21
- <div className="bg-white p-4 rounded-lg shadow border flex items-center justify-between">
22
- {/* View Mode Toggle */}
23
- <div className="flex items-center space-x-2">
24
- <span className="text-sm font-medium text-gray-700">View:</span>
25
- <div className="flex rounded-lg border border-gray-300 overflow-hidden">
26
- <button
27
- onClick={() => onViewModeChange('graph')}
28
- className={`px-3 py-2 text-sm font-medium flex items-center space-x-1 ${
29
- viewMode === 'graph'
30
- ? 'bg-blue-600 text-white'
31
- : 'bg-white text-gray-700 hover:bg-gray-50'
32
- }`}
33
- >
34
- <Squares2X2Icon className="w-4 h-4" />
35
- <span>Graph</span>
36
- </button>
37
- <button
38
- onClick={() => onViewModeChange('list')}
39
- className={`px-3 py-2 text-sm font-medium flex items-center space-x-1 ${
40
- viewMode === 'list'
41
- ? 'bg-blue-600 text-white'
42
- : 'bg-white text-gray-700 hover:bg-gray-50'
43
- }`}
44
- >
45
- <ListBulletIcon className="w-4 h-4" />
46
- <span>List</span>
47
- </button>
48
- </div>
49
- </div>
50
-
51
- {/* Graph Layout Controls (only show in graph view) */}
52
- {viewMode === 'graph' && (
53
- <div className="flex items-center space-x-4">
54
- <div className="flex items-center space-x-2">
55
- <span className="text-sm font-medium text-gray-700">Layout:</span>
56
- <select
57
- value={layout}
58
- onChange={e => onLayoutChange(e.target.value as any)}
59
- className="border border-gray-300 rounded-md px-3 py-1 text-sm focus:ring-2 focus:ring-blue-500 focus:border-transparent"
60
- >
61
- <option value="hierarchical">Hierarchical</option>
62
- <option value="circular">Circular</option>
63
- <option value="force">Force-Directed</option>
64
- </select>
65
- </div>
66
-
67
- {/* Zoom Controls */}
68
- <div className="flex items-center space-x-2">
69
- <span className="text-sm font-medium text-gray-700">Zoom:</span>
70
- <div className="flex items-center space-x-1">
71
- <button
72
- onClick={() => onZoomChange(Math.max(0.5, zoomLevel - 0.1))}
73
- className="p-1 text-gray-600 hover:text-gray-800 disabled:opacity-50"
74
- disabled={zoomLevel <= 0.5}
75
- >
76
- <MagnifyingGlassMinusIcon className="w-4 h-4" />
77
- </button>
78
- <span className="text-sm text-gray-600 min-w-[3rem] text-center">
79
- {Math.round(zoomLevel * 100)}%
80
- </span>
81
- <button
82
- onClick={() => onZoomChange(Math.min(2, zoomLevel + 0.1))}
83
- className="p-1 text-gray-600 hover:text-gray-800 disabled:opacity-50"
84
- disabled={zoomLevel >= 2}
85
- >
86
- <MagnifyingGlassPlusIcon className="w-4 h-4" />
87
- </button>
88
- </div>
89
- </div>
90
- </div>
91
- )}
92
-
93
- {/* Legend Toggle */}
94
- <button
95
- onClick={onToggleLegend}
96
- className={`px-3 py-2 text-sm font-medium rounded-lg flex items-center space-x-1 transition-colors ${
97
- showLegend
98
- ? 'bg-blue-100 text-blue-700'
99
- : 'bg-gray-100 text-gray-700 hover:bg-gray-200'
100
- }`}
101
- >
102
- <InformationCircleIcon className="w-4 h-4" />
103
- <span>Legend</span>
104
- </button>
105
- </div>
106
- );
107
- }