@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,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
- }