imcp 0.1.3 → 0.1.5

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 (239) hide show
  1. package/README.md +21 -4
  2. package/dist/cli/commands/install.js.map +1 -0
  3. package/dist/cli/commands/list.js.map +1 -0
  4. package/dist/cli/commands/pull.js.map +1 -0
  5. package/dist/cli/commands/serve.js.map +1 -0
  6. package/dist/cli/commands/start.d.ts +2 -0
  7. package/dist/cli/commands/start.js +32 -0
  8. package/dist/cli/commands/start.js.map +1 -0
  9. package/dist/cli/commands/sync.d.ts +2 -0
  10. package/dist/cli/commands/sync.js +17 -0
  11. package/dist/cli/commands/sync.js.map +1 -0
  12. package/dist/cli/commands/uninstall.js.map +1 -0
  13. package/dist/cli/index.js +0 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/core/ConfigurationLoader.d.ts +32 -0
  16. package/{src/core/loaders/ConfigurationLoader.ts → dist/core/ConfigurationLoader.js} +236 -298
  17. package/dist/core/ConfigurationLoader.js.map +1 -0
  18. package/dist/core/ConfigurationProvider.d.ts +35 -0
  19. package/{src/core/loaders/ConfigurationProvider.ts → dist/core/ConfigurationProvider.js} +375 -462
  20. package/dist/core/ConfigurationProvider.js.map +1 -0
  21. package/dist/core/InstallationService.d.ts +50 -0
  22. package/dist/core/InstallationService.js +350 -0
  23. package/dist/core/InstallationService.js.map +1 -0
  24. package/dist/core/MCPManager.d.ts +28 -0
  25. package/dist/core/MCPManager.js +188 -0
  26. package/dist/core/MCPManager.js.map +1 -0
  27. package/dist/core/RequirementService.d.ts +40 -0
  28. package/dist/core/RequirementService.js +110 -0
  29. package/dist/core/RequirementService.js.map +1 -0
  30. package/dist/core/ServerSchemaLoader.d.ts +11 -0
  31. package/dist/core/ServerSchemaLoader.js +43 -0
  32. package/dist/core/ServerSchemaLoader.js.map +1 -0
  33. package/dist/core/ServerSchemaProvider.d.ts +17 -0
  34. package/dist/core/ServerSchemaProvider.js +120 -0
  35. package/dist/core/ServerSchemaProvider.js.map +1 -0
  36. package/dist/core/constants.d.ts +47 -0
  37. package/dist/core/constants.js +94 -0
  38. package/dist/core/constants.js.map +1 -0
  39. package/dist/core/installers/BaseInstaller.d.ts +74 -0
  40. package/dist/core/installers/BaseInstaller.js +253 -0
  41. package/dist/core/installers/BaseInstaller.js.map +1 -0
  42. package/dist/core/installers/ClientInstaller.d.ts +23 -0
  43. package/dist/core/installers/ClientInstaller.js +564 -0
  44. package/dist/core/installers/ClientInstaller.js.map +1 -0
  45. package/dist/core/installers/CommandInstaller.d.ts +37 -0
  46. package/{src/core/installers/requirements/CommandInstaller.ts → dist/core/installers/CommandInstaller.js} +173 -231
  47. package/dist/core/installers/CommandInstaller.js.map +1 -0
  48. package/dist/core/installers/GeneralInstaller.d.ts +33 -0
  49. package/dist/core/installers/GeneralInstaller.js +85 -0
  50. package/dist/core/installers/GeneralInstaller.js.map +1 -0
  51. package/dist/core/installers/InstallerFactory.d.ts +54 -0
  52. package/{src/core/installers/requirements/InstallerFactory.ts → dist/core/installers/InstallerFactory.js} +97 -112
  53. package/dist/core/installers/InstallerFactory.js.map +1 -0
  54. package/dist/core/installers/NpmInstaller.d.ts +26 -0
  55. package/dist/core/installers/NpmInstaller.js +127 -0
  56. package/dist/core/installers/NpmInstaller.js.map +1 -0
  57. package/dist/core/installers/PipInstaller.d.ts +28 -0
  58. package/dist/core/installers/PipInstaller.js +127 -0
  59. package/dist/core/installers/PipInstaller.js.map +1 -0
  60. package/{src/core/installers/requirements/RequirementInstaller.ts → dist/core/installers/RequirementInstaller.d.ts} +33 -42
  61. package/dist/core/installers/RequirementInstaller.js +3 -0
  62. package/dist/core/installers/RequirementInstaller.js.map +1 -0
  63. package/dist/core/installers/clients/BaseClientInstaller.js.map +1 -0
  64. package/dist/core/installers/clients/ClientInstaller.js.map +1 -0
  65. package/dist/core/installers/clients/ClientInstallerFactory.js.map +1 -0
  66. package/dist/core/installers/clients/ClineInstaller.js.map +1 -0
  67. package/dist/core/installers/clients/ExtensionInstaller.js.map +1 -0
  68. package/dist/core/installers/clients/GithubCopilotInstaller.js.map +1 -0
  69. package/dist/core/installers/clients/MSRooCodeInstaller.js.map +1 -0
  70. package/dist/core/installers/index.js.map +1 -0
  71. package/dist/core/installers/requirements/BaseInstaller.js.map +1 -0
  72. package/dist/core/installers/requirements/CommandInstaller.js.map +1 -0
  73. package/dist/core/installers/requirements/GeneralInstaller.js.map +1 -0
  74. package/dist/core/installers/requirements/InstallerFactory.js +2 -0
  75. package/dist/core/installers/requirements/InstallerFactory.js.map +1 -0
  76. package/dist/core/installers/requirements/NpmInstaller.js.map +1 -0
  77. package/dist/core/installers/requirements/NugetInstaller.d.ts +37 -0
  78. package/dist/core/installers/requirements/NugetInstaller.js +189 -0
  79. package/dist/core/installers/requirements/NugetInstaller.js.map +1 -0
  80. package/dist/core/installers/requirements/PipInstaller.js.map +1 -0
  81. package/dist/core/installers/requirements/RequirementInstaller.js.map +1 -0
  82. package/dist/core/loaders/ConfigurationLoader.js.map +1 -0
  83. package/dist/core/loaders/ConfigurationProvider.js.map +1 -0
  84. package/dist/core/loaders/InstallOperationManager.js.map +1 -0
  85. package/dist/core/loaders/ServerSchemaLoader.js.map +1 -0
  86. package/dist/core/loaders/ServerSchemaProvider.js.map +1 -0
  87. package/dist/core/loaders/SystemSettingsManager.js.map +1 -0
  88. package/dist/core/metadatas/constants.js.map +1 -0
  89. package/dist/core/metadatas/recordingConstants.d.ts +2 -0
  90. package/dist/core/metadatas/recordingConstants.js +2 -0
  91. package/dist/core/metadatas/recordingConstants.js.map +1 -0
  92. package/dist/core/metadatas/types.d.ts +1 -1
  93. package/dist/core/metadatas/types.js.map +1 -0
  94. package/dist/core/onboard/FeedOnboardService.js +1 -22
  95. package/dist/core/onboard/FeedOnboardService.js.map +1 -0
  96. package/dist/core/onboard/OnboardProcessor.js.map +1 -0
  97. package/dist/core/onboard/OnboardStatus.js.map +1 -0
  98. package/dist/core/onboard/OnboardStatusManager.js.map +1 -0
  99. package/dist/core/types.d.ts +166 -0
  100. package/dist/core/types.js +16 -0
  101. package/dist/core/types.js.map +1 -0
  102. package/dist/core/validators/FeedValidator.js.map +1 -0
  103. package/dist/core/validators/IServerValidator.js.map +1 -0
  104. package/dist/core/validators/SSEServerValidator.js.map +1 -0
  105. package/dist/core/validators/ServerValidatorFactory.js.map +1 -0
  106. package/dist/core/validators/StdioServerValidator.js +5 -5
  107. package/dist/core/validators/StdioServerValidator.js.map +1 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/services/InstallRequestValidator.d.ts +21 -0
  110. package/dist/services/InstallRequestValidator.js +99 -0
  111. package/dist/services/InstallRequestValidator.js.map +1 -0
  112. package/dist/services/InstallationService.js.map +1 -0
  113. package/dist/services/MCPManager.js.map +1 -0
  114. package/dist/services/RequirementService.js.map +1 -0
  115. package/dist/services/ServerService.js.map +1 -0
  116. package/dist/services/TelemetryService.js.map +1 -0
  117. package/dist/utils/UpdateCheckTracker.js.map +1 -0
  118. package/dist/utils/adoUtils.js.map +1 -0
  119. package/dist/utils/clientUtils.js.map +1 -0
  120. package/dist/utils/feedUtils.js.map +1 -0
  121. package/dist/utils/githubAuth.js.map +1 -0
  122. package/dist/utils/githubUtils.js.map +1 -0
  123. package/dist/utils/logger.js.map +1 -0
  124. package/dist/utils/macroExpressionUtils.js.map +1 -0
  125. package/dist/utils/osUtils.d.ts +11 -0
  126. package/dist/utils/osUtils.js +100 -0
  127. package/dist/utils/osUtils.js.map +1 -0
  128. package/dist/utils/versionUtils.js.map +1 -0
  129. package/dist/web/contract/serverContract.js.map +1 -0
  130. package/dist/web/public/index.html +1 -1
  131. package/dist/web/public/js/modal/installHandler.js +227 -0
  132. package/dist/web/public/js/modal/loadingUI.js +74 -0
  133. package/dist/web/public/js/modal/messageQueue.js +101 -45
  134. package/dist/web/public/js/modal/modalUI.js +214 -0
  135. package/{src/web/public/js/modal/versionUtils.js → dist/web/public/js/modal/version.js} +1 -1
  136. package/dist/web/public/js/onboard/templates.js +1 -0
  137. package/dist/web/public/js/serverCategoryList.js +3 -3
  138. package/dist/web/public/onboard.html +4 -4
  139. package/dist/web/server.js.map +1 -0
  140. package/package.json +5 -1
  141. package/.github/ISSUE_TEMPLATE/JitAccess.yml +0 -28
  142. package/.github/acl/access.yml +0 -20
  143. package/.github/compliance/inventory.yml +0 -5
  144. package/.github/policies/jit.yml +0 -19
  145. package/.roo/rules-code/rules.md +0 -88
  146. package/dist/core/onboard/InstallOperationManager.d.ts +0 -23
  147. package/dist/core/onboard/InstallOperationManager.js +0 -144
  148. package/docs/ONBOARDING_PAGE_DESIGN.md +0 -260
  149. package/docs/Telemetry.md +0 -136
  150. package/memory-bank/activeContext.md +0 -26
  151. package/memory-bank/decisionLog.md +0 -91
  152. package/memory-bank/productContext.md +0 -41
  153. package/memory-bank/progress.md +0 -35
  154. package/memory-bank/systemPatterns.md +0 -10
  155. package/src/cli/commands/install.ts +0 -139
  156. package/src/cli/commands/list.ts +0 -113
  157. package/src/cli/commands/pull.ts +0 -16
  158. package/src/cli/commands/serve.ts +0 -39
  159. package/src/cli/commands/uninstall.ts +0 -64
  160. package/src/cli/index.ts +0 -82
  161. package/src/core/installers/clients/BaseClientInstaller.ts +0 -341
  162. package/src/core/installers/clients/ClientInstaller.ts +0 -222
  163. package/src/core/installers/clients/ClientInstallerFactory.ts +0 -43
  164. package/src/core/installers/clients/ClineInstaller.ts +0 -35
  165. package/src/core/installers/clients/ExtensionInstaller.ts +0 -165
  166. package/src/core/installers/clients/GithubCopilotInstaller.ts +0 -79
  167. package/src/core/installers/clients/MSRooCodeInstaller.ts +0 -32
  168. package/src/core/installers/index.ts +0 -11
  169. package/src/core/installers/requirements/BaseInstaller.ts +0 -85
  170. package/src/core/installers/requirements/GeneralInstaller.ts +0 -133
  171. package/src/core/installers/requirements/NpmInstaller.ts +0 -271
  172. package/src/core/installers/requirements/PipInstaller.ts +0 -207
  173. package/src/core/loaders/InstallOperationManager.ts +0 -367
  174. package/src/core/loaders/ServerSchemaLoader.ts +0 -117
  175. package/src/core/loaders/ServerSchemaProvider.ts +0 -99
  176. package/src/core/loaders/SystemSettingsManager.ts +0 -278
  177. package/src/core/metadatas/constants.ts +0 -122
  178. package/src/core/metadatas/recordingConstants.ts +0 -62
  179. package/src/core/metadatas/types.ts +0 -202
  180. package/src/core/onboard/FeedOnboardService.ts +0 -524
  181. package/src/core/onboard/OnboardProcessor.ts +0 -356
  182. package/src/core/onboard/OnboardStatus.ts +0 -60
  183. package/src/core/onboard/OnboardStatusManager.ts +0 -416
  184. package/src/core/validators/FeedValidator.ts +0 -135
  185. package/src/core/validators/IServerValidator.ts +0 -21
  186. package/src/core/validators/SSEServerValidator.ts +0 -43
  187. package/src/core/validators/ServerValidatorFactory.ts +0 -51
  188. package/src/core/validators/StdioServerValidator.ts +0 -312
  189. package/src/index.ts +0 -44
  190. package/src/services/InstallationService.ts +0 -102
  191. package/src/services/MCPManager.ts +0 -249
  192. package/src/services/RequirementService.ts +0 -627
  193. package/src/services/ServerService.ts +0 -161
  194. package/src/services/TelemetryService.ts +0 -59
  195. package/src/utils/UpdateCheckTracker.ts +0 -86
  196. package/src/utils/adoUtils.ts +0 -293
  197. package/src/utils/clientUtils.ts +0 -72
  198. package/src/utils/feedUtils.ts +0 -31
  199. package/src/utils/githubAuth.ts +0 -212
  200. package/src/utils/githubUtils.ts +0 -164
  201. package/src/utils/logger.ts +0 -195
  202. package/src/utils/macroExpressionUtils.ts +0 -104
  203. package/src/utils/osUtils.ts +0 -597
  204. package/src/utils/versionUtils.ts +0 -114
  205. package/src/web/contract/serverContract.ts +0 -74
  206. package/src/web/public/css/detailsWidget.css +0 -235
  207. package/src/web/public/css/modal.css +0 -757
  208. package/src/web/public/css/notifications.css +0 -101
  209. package/src/web/public/css/onboard.css +0 -107
  210. package/src/web/public/css/serverCategoryList.css +0 -120
  211. package/src/web/public/css/serverDetails.css +0 -139
  212. package/src/web/public/index.html +0 -359
  213. package/src/web/public/js/api.js +0 -132
  214. package/src/web/public/js/detailsWidget.js +0 -264
  215. package/src/web/public/js/flights/flights.js +0 -127
  216. package/src/web/public/js/modal/index.js +0 -52
  217. package/src/web/public/js/modal/installModal.js +0 -162
  218. package/src/web/public/js/modal/installation.js +0 -266
  219. package/src/web/public/js/modal/loadingModal.js +0 -182
  220. package/src/web/public/js/modal/modalSetup.js +0 -595
  221. package/src/web/public/js/modal/modalUtils.js +0 -37
  222. package/src/web/public/js/modal.js +0 -42
  223. package/src/web/public/js/notifications.js +0 -137
  224. package/src/web/public/js/onboard/formProcessor.js +0 -1037
  225. package/src/web/public/js/onboard/index.js +0 -374
  226. package/src/web/public/js/onboard/publishHandler.js +0 -172
  227. package/src/web/public/js/onboard/state.js +0 -76
  228. package/src/web/public/js/onboard/templates.js +0 -341
  229. package/src/web/public/js/onboard/uiHandlers.js +0 -1076
  230. package/src/web/public/js/onboard/validationHandlers.js +0 -493
  231. package/src/web/public/js/serverCategoryDetails.js +0 -364
  232. package/src/web/public/js/serverCategoryList.js +0 -241
  233. package/src/web/public/js/settings.js +0 -314
  234. package/src/web/public/modal.html +0 -84
  235. package/src/web/public/onboard.html +0 -296
  236. package/src/web/public/settings.html +0 -135
  237. package/src/web/public/styles.css +0 -277
  238. package/src/web/server.ts +0 -478
  239. package/tsconfig.json +0 -18
@@ -1,114 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
- import axios from 'axios';
5
- import { Logger } from './logger.js'; // Assuming logger.js is in the same directory
6
-
7
- // ANSI color codes
8
- const COLORS = {
9
- reset: '\x1b[0m',
10
- yellow: '\x1b[33m'
11
- };
12
-
13
- const PACKAGE_NAME = 'imcp'; // Default package name
14
-
15
- export function getPackageVersion(): { packageName: string, packageVersion: string } {
16
- try {
17
- // First try npm environment variable (available during npm scripts)
18
- if (process.env.npm_package_version) {
19
- return { packageName: PACKAGE_NAME, packageVersion: process.env.npm_package_version };
20
- }
21
-
22
- // Fall back to reading package.json
23
- // Get directory name of current module
24
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
25
-
26
- // Traverse up to find package.json (max 3 levels up)
27
- let currentDir = __dirname;
28
- for (let i = 0; i < 3; i++) {
29
- const packagePath = path.join(currentDir, 'package.json');
30
- if (fs.existsSync(packagePath)) {
31
- const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
32
- return { packageName: PACKAGE_NAME, packageVersion: packageJson.version };
33
- }
34
- currentDir = path.join(currentDir, '..');
35
- }
36
-
37
- return { packageName: PACKAGE_NAME, packageVersion: 'unknown' };
38
- } catch (error) {
39
- console.error('Failed to get package version:', error);
40
- return { packageName: PACKAGE_NAME, packageVersion: 'unknown' };
41
- }
42
- }
43
-
44
- /**
45
- * Utility functions for version comparison and management
46
- */
47
-
48
- /**
49
- * Compare two semantic version strings
50
- * @param v1 First version
51
- * @param v2 Second version
52
- * @returns -1 if v1 < v2, 0 if v1 = v2, 1 if v1 > v2
53
- * (or more specifically, a negative number if v1 < v2,
54
- * a positive number if v1 > v2, 0 if equal)
55
- */
56
- export function compareVersions(v1: string, v2: string): number {
57
- const v1Parts = v1.split('.').map(Number);
58
- const v2Parts = v2.split('.').map(Number);
59
-
60
- for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
61
- const v1Part = i < v1Parts.length ? v1Parts[i] : 0;
62
- const v2Part = i < v2Parts.length ? v2Parts[i] : 0;
63
-
64
- if (v1Part !== v2Part) {
65
- // This returns the actual difference, which is:
66
- // negative if v1Part < v2Part, positive if v1Part > v2Part
67
- return v1Part - v2Part;
68
- }
69
- }
70
-
71
- return 0;
72
- }
73
-
74
- /**
75
- * Check if there's a newer version of the package available
76
- */
77
- export async function checkForUpdates(): Promise<void> {
78
- Logger.debug(`Checking for updates...`);
79
- try {
80
- const version = await getAppVersion();
81
- if (version.availableUpdate) {
82
- console.log(`${COLORS.yellow}Update available for ${version.name}: ${version.version} → ${version.availableUpdate.latestVersion}${COLORS.reset}`);
83
- console.log(`${COLORS.yellow}Relaunch with \`npx -y ${version.name}@latest serve\` or update package with \`npm install -g ${version.name}@latest\`${COLORS.reset}`);
84
- }
85
-
86
- } catch (error) {
87
- // Log the npm error
88
- Logger.debug(`Failed to check npm registry: ${error instanceof Error ? error.message : String(error)}`);
89
- }
90
- }
91
-
92
- /**
93
- * Retrieves the application version and information about available updates.
94
- * @returns A promise that resolves to an object containing the current packageVersion and any availableUpdates.
95
- */
96
- export async function getAppVersion(): Promise<{ name: string, version: string; availableUpdate?: { latestVersion: string; message: string} }> {
97
- let availableUpdate: { latestVersion: string; message: string } | undefined = undefined;
98
-
99
- const { packageName, packageVersion } = getPackageVersion();
100
- // Check for updates from npm registry
101
- try {
102
- const npmResponse = await axios.get(`https://registry.npmjs.org/${packageName}`);
103
- if (npmResponse.data && npmResponse.data['dist-tags'] && npmResponse.data['dist-tags'].latest) {
104
- const latestVersion = npmResponse.data['dist-tags'].latest;
105
- if (compareVersions(latestVersion, packageVersion) > 0) {
106
- availableUpdate = { latestVersion, message: `New version (${latestVersion}) is available. Relaunch with \`npx -y ${packageName}@latest serve\`` };
107
- }
108
- }
109
- } catch (npmError) {
110
- Logger.debug(`Failed to fetch latest version from npm for ${packageName}: ${npmError instanceof Error ? npmError.message : String(npmError)}`);
111
- }
112
-
113
- return { name: packageName, version: packageVersion, availableUpdate };
114
- }
@@ -1,74 +0,0 @@
1
- import { DependencyConfig, RegistryConfig, ServerInstallOptions, EnvVariableConfig } from '../../core/metadatas/types.js';
2
- import { ServerSchema } from '../../core/loaders/ServerSchemaProvider.js';
3
-
4
- export interface OnboardServerConfig {
5
- name: string;
6
- description: string;
7
- mode: 'stdio' | 'sse';
8
- schemas?: string;
9
- dependencies?: DependencyConfig;
10
- repository?: string;
11
- installation: {
12
- command: string;
13
- args?: string[];
14
- env?: Record<string, {
15
- name: string;
16
- default?: string;
17
- required: boolean;
18
- description?: string;
19
- }>;
20
- };
21
- }
22
-
23
- export type RequirementType = 'npm' | 'pip' | 'command' | 'extension' | 'other';
24
-
25
- export interface OnboardRequirementConfig {
26
- type: RequirementType;
27
- name: string;
28
- version: string;
29
- alias?: string;
30
- registry?: RegistryConfig;
31
- }
32
-
33
- export interface OnboardRequestBody {
34
- categoryData: {
35
- name: string;
36
- displayName: string;
37
- description?: string;
38
- repository?: string;
39
- requirements?: OnboardRequirementConfig[];
40
- mcpServers?: OnboardServerConfig[];
41
- };
42
- isUpdate: boolean;
43
- forExistingCategory?: boolean;
44
- serverName?: string; // Optional server name for server-specific operations
45
- }
46
-
47
- export interface ListQueryParams {
48
- local?: string;
49
- }
50
-
51
- export interface UpdateRequirementsRequestBody {
52
- requirements: {
53
- name: string;
54
- updateVersion: string;
55
- }[];
56
- }
57
-
58
- export interface InstallServersRequestBody {
59
- serverList: Record<string, ServerInstallOptions>;
60
- }
61
-
62
- export interface UninstallServersRequestBody {
63
- serverList: Record<string, { removeData?: boolean }>;
64
- options: {
65
- targets: string[];
66
- removeData?: boolean;
67
- };
68
- }
69
-
70
- export interface ApiResponse<T> {
71
- success: boolean;
72
- data?: T;
73
- error?: string;
74
- }
@@ -1,235 +0,0 @@
1
- .details-widget {
2
- transition: all 0.3s ease-in-out;
3
- width: 100%;
4
- max-width: 100%;
5
- box-sizing: border-box;
6
- margin: 0;
7
- padding: 0;
8
- display: block;
9
- overflow: hidden;
10
- }
11
-
12
- .tools-list {
13
- width: 100%;
14
- max-width: 100%;
15
- margin: 0;
16
- padding: 0.1rem;
17
- box-sizing: border-box;
18
- overflow: hidden;
19
- }
20
-
21
- .tool-card {
22
- width: 100%;
23
- margin-bottom: -1px;
24
- border-radius: 0;
25
- box-sizing: border-box;
26
- }
27
-
28
- .tool-card:first-child {
29
- border-top-left-radius: 6px;
30
- border-top-right-radius: 6px;
31
- }
32
-
33
- .tool-card:last-child {
34
- border-bottom-left-radius: 6px;
35
- border-bottom-right-radius: 6px;
36
- margin-bottom: 0;
37
- }
38
-
39
- .tool-card {
40
- transition: all 0.3s ease-out;
41
- border: 1px solid #e5e7eb;
42
- padding: 0.5rem;
43
- background-color: white;
44
- position: relative;
45
- z-index: 1;
46
- font-size: 0.9rem;
47
- width: 100%;
48
- box-sizing: border-box;
49
- }
50
-
51
- .tool-card .text-gray-600 {
52
- font-size: 0.75rem;
53
- line-height: 1.3;
54
- }
55
-
56
- .tool-card.active {
57
- box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);
58
- border-color: transparent;
59
- background-color: #f8fafc;
60
- }
61
-
62
- .tool-card:hover {
63
- transform: translateY(-1px);
64
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
65
- }
66
-
67
- .tool-card-header {
68
- position: relative;
69
- padding-right: 2rem;
70
- width: 100%;
71
- box-sizing: border-box;
72
- cursor: pointer;
73
- }
74
-
75
- .tool-card-header::after {
76
- content: '';
77
- position: absolute;
78
- right: 1rem;
79
- top: 50%;
80
- transform: translateY(-50%);
81
- width: 12px;
82
- height: 12px;
83
- border-right: 2px solid #64748b;
84
- border-bottom: 2px solid #64748b;
85
- transform-origin: 75% 75%;
86
- transition: transform 0.3s ease;
87
- }
88
-
89
- .tool-card.active .tool-card-header::after {
90
- transform: translateY(-50%) rotate(45deg);
91
- }
92
-
93
- .tool-details {
94
- max-height: 0;
95
- opacity: 0;
96
- overflow: hidden;
97
- transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
98
- background-color: #f9fafb;
99
- border-radius: 6px;
100
- width: 100%;
101
- max-width: 100%;
102
- box-sizing: border-box;
103
- }
104
-
105
- .tool-details.visible {
106
- max-height: 2000px;
107
- opacity: 1;
108
- padding: 0.1rem;
109
- margin-top: 0.5rem;
110
- border-top: 1px solid #e5e7eb;
111
- width: 100%;
112
- max-width: 100%;
113
- box-sizing: border-box;
114
- }
115
-
116
- .property-item {
117
- margin-bottom: 0.15rem;
118
- padding: 0.5rem;
119
- border-left: 2px solid #e5e7eb;
120
- transition: all 0.2s ease;
121
- font-size: 0.8rem;
122
- background-color: white;
123
- border-radius: 4px;
124
- }
125
-
126
- .property-item:hover {
127
- border-left-color: #3b82f6;
128
- }
129
-
130
- .property-header {
131
- margin-bottom: 0.25rem;
132
- }
133
-
134
- .property-title {
135
- display: flex;
136
- align-items: center;
137
- gap: 0.5rem;
138
- flex-wrap: wrap;
139
- }
140
-
141
- .property-name {
142
- font-weight: 600;
143
- color: #1e293b;
144
- font-size: 0.85rem;
145
- background-color: #f8fafc;
146
- padding: 0.2rem 0.4rem;
147
- border-radius: 4px;
148
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
149
- display: inline-block;
150
- }
151
-
152
- .property-type {
153
- color: #64748b;
154
- font-size: 0.65rem;
155
- padding: 0.1rem 0.3rem;
156
- background: #f1f5f9;
157
- border-radius: 3px;
158
- font-family: 'Courier New', monospace;
159
- margin-left: 0.3rem;
160
- }
161
-
162
- .property-desc {
163
- color: #6b7280;
164
- font-size: 0.7rem;
165
- margin-left: 0.5rem;
166
- display: inline-block;
167
- font-style: italic;
168
- }
169
-
170
- .property-default {
171
- font-size: 0.75rem;
172
- color: #6b7280;
173
- margin-top: 0.15rem;
174
- }
175
-
176
- .property-default code {
177
- background: #f1f5f9;
178
- padding: 0.2rem 0.4rem;
179
- border-radius: 4px;
180
- font-family: 'Courier New', monospace;
181
- font-size: 0.85rem;
182
- }
183
-
184
- .required-fields {
185
- border-left: 2px solid #64748b;
186
- padding: 0.25rem 0.5rem;
187
- margin-bottom: 0.5rem;
188
- font-size: 0.8rem;
189
- border-radius: 2px;
190
- color: #64748b;
191
- }
192
- .required-star {
193
- color: #dc2626;
194
- margin-left: 2px;
195
- font-weight: bold;
196
- }
197
-
198
-
199
- /* Ensure proper container behavior for the widget */
200
- .details-widget-container {
201
- width: 100%;
202
- max-width: 100%;
203
- box-sizing: border-box;
204
- position: relative;
205
- margin: 0;
206
- padding: 0;
207
- overflow: hidden;
208
- }
209
-
210
- .nested-properties {
211
- margin: 0.25rem 0 0.25rem 0.5rem;
212
- padding-left: 0.5rem;
213
- border-left: 1px solid #e5e7eb;
214
- font-size: 0.8rem;
215
- }
216
-
217
- .nested-property-item {
218
- margin-bottom: 0.5rem;
219
- padding: 0.25rem 0.5rem;
220
- }
221
-
222
- .nested-property-item .property-name {
223
- font-size: 0.85rem;
224
- }
225
-
226
- .nested-property-item .property-type {
227
- font-size: 0.8rem;
228
- padding: 0.1rem 0.3rem;
229
- }
230
-
231
- .nested-property-item .property-desc {
232
- font-size: 0.8rem;
233
- margin-top: 0.25rem;
234
- color: #64748b;
235
- }