@softtechai/quickmcp 1.0.14 → 1.1.0

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 (417) hide show
  1. package/dist/auth/auth-utils.d.ts +130 -0
  2. package/dist/auth/auth-utils.d.ts.map +1 -0
  3. package/dist/auth/auth-utils.js +600 -0
  4. package/dist/auth/auth-utils.js.map +1 -0
  5. package/dist/auth/jwks-provider.d.ts +9 -0
  6. package/dist/auth/jwks-provider.d.ts.map +1 -0
  7. package/dist/auth/jwks-provider.js +56 -0
  8. package/dist/auth/jwks-provider.js.map +1 -0
  9. package/dist/auth/token-utils.d.ts +40 -0
  10. package/dist/auth/token-utils.d.ts.map +1 -0
  11. package/dist/auth/token-utils.js +162 -0
  12. package/dist/auth/token-utils.js.map +1 -0
  13. package/dist/client/MCPClient.js +5 -4
  14. package/dist/client/MCPClient.js.map +1 -1
  15. package/dist/config/auth-config.d.ts +16 -0
  16. package/dist/config/auth-config.d.ts.map +1 -0
  17. package/dist/config/auth-config.js +107 -0
  18. package/dist/config/auth-config.js.map +1 -0
  19. package/dist/constant/constant.d.ts +20 -0
  20. package/dist/constant/constant.d.ts.map +1 -0
  21. package/dist/constant/constant.js +24 -0
  22. package/dist/constant/constant.js.map +1 -0
  23. package/dist/database/async-datastore.d.ts +6 -0
  24. package/dist/database/async-datastore.d.ts.map +1 -0
  25. package/dist/database/async-datastore.js +15 -0
  26. package/dist/database/async-datastore.js.map +1 -0
  27. package/dist/database/database-utils.d.ts +6 -0
  28. package/dist/database/database-utils.d.ts.map +1 -0
  29. package/dist/database/database-utils.js +29 -0
  30. package/dist/database/database-utils.js.map +1 -0
  31. package/dist/database/datastore.d.ts +164 -0
  32. package/dist/database/datastore.d.ts.map +1 -0
  33. package/dist/{parsers/types/index.js → database/datastore.js} +1 -0
  34. package/dist/database/datastore.js.map +1 -0
  35. package/dist/database/factory.d.ts +4 -0
  36. package/dist/database/factory.d.ts.map +1 -0
  37. package/dist/database/factory.js +32 -0
  38. package/dist/database/factory.js.map +1 -0
  39. package/dist/database/jdbc-manager.d.ts +49 -0
  40. package/dist/database/jdbc-manager.d.ts.map +1 -0
  41. package/dist/database/jdbc-manager.js +50 -0
  42. package/dist/database/jdbc-manager.js.map +1 -0
  43. package/dist/database/sqlite-manager.d.ts +46 -44
  44. package/dist/database/sqlite-manager.d.ts.map +1 -1
  45. package/dist/database/sqlite-manager.js +492 -42
  46. package/dist/database/sqlite-manager.js.map +1 -1
  47. package/dist/database/supabase-manager.d.ts +58 -0
  48. package/dist/database/supabase-manager.d.ts.map +1 -0
  49. package/dist/database/supabase-manager.js +432 -0
  50. package/dist/database/supabase-manager.js.map +1 -0
  51. package/dist/generators/MCPServerGenerator.d.ts +103 -20
  52. package/dist/generators/MCPServerGenerator.d.ts.map +1 -1
  53. package/dist/generators/MCPServerGenerator.js +6930 -128
  54. package/dist/generators/MCPServerGenerator.js.map +1 -1
  55. package/dist/index.d.ts +0 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +8 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/integrated-mcp-server-new.d.ts +14 -2
  60. package/dist/integrated-mcp-server-new.d.ts.map +1 -1
  61. package/dist/integrated-mcp-server-new.js +270 -180
  62. package/dist/integrated-mcp-server-new.js.map +1 -1
  63. package/dist/mcp-core/McpCoreService.d.ts +63 -0
  64. package/dist/mcp-core/McpCoreService.d.ts.map +1 -0
  65. package/dist/mcp-core/McpCoreService.js +492 -0
  66. package/dist/mcp-core/McpCoreService.js.map +1 -0
  67. package/dist/parsers/CsvParser.d.ts +1 -1
  68. package/dist/parsers/CsvParser.d.ts.map +1 -1
  69. package/dist/parsers/CsvParser.js +3 -2
  70. package/dist/parsers/CsvParser.js.map +1 -1
  71. package/dist/parsers/DatabaseParser.d.ts.map +1 -1
  72. package/dist/parsers/DatabaseParser.js +9 -8
  73. package/dist/parsers/DatabaseParser.js.map +1 -1
  74. package/dist/parsers/ExcelParser.d.ts +15 -0
  75. package/dist/parsers/ExcelParser.d.ts.map +1 -1
  76. package/dist/parsers/ExcelParser.js +287 -21
  77. package/dist/parsers/ExcelParser.js.map +1 -1
  78. package/dist/parsers/WebPageParser.d.ts +5 -0
  79. package/dist/parsers/WebPageParser.d.ts.map +1 -0
  80. package/dist/parsers/WebPageParser.js +35 -0
  81. package/dist/parsers/WebPageParser.js.map +1 -0
  82. package/dist/parsers/index.d.ts +3 -2
  83. package/dist/parsers/index.d.ts.map +1 -1
  84. package/dist/parsers/index.js +19 -16
  85. package/dist/parsers/index.js.map +1 -1
  86. package/dist/server/api/askApi.d.ts +41 -0
  87. package/dist/server/api/askApi.d.ts.map +1 -0
  88. package/dist/server/api/askApi.js +479 -0
  89. package/dist/server/api/askApi.js.map +1 -0
  90. package/dist/server/api/authApi.d.ts +101 -0
  91. package/dist/server/api/authApi.d.ts.map +1 -0
  92. package/dist/server/api/authApi.js +1472 -0
  93. package/dist/server/api/authApi.js.map +1 -0
  94. package/dist/server/api/authProperty.d.ts +18 -0
  95. package/dist/server/api/authProperty.d.ts.map +1 -0
  96. package/dist/server/api/authProperty.js +41 -0
  97. package/dist/server/api/authProperty.js.map +1 -0
  98. package/dist/server/api/configApi.d.ts +15 -0
  99. package/dist/server/api/configApi.d.ts.map +1 -0
  100. package/dist/server/api/configApi.js +42 -0
  101. package/dist/server/api/configApi.js.map +1 -0
  102. package/dist/server/api/databaseApi.d.ts +14 -0
  103. package/dist/server/api/databaseApi.d.ts.map +1 -0
  104. package/dist/server/api/databaseApi.js +111 -0
  105. package/dist/server/api/databaseApi.js.map +1 -0
  106. package/dist/server/api/directoryApi.d.ts +9 -0
  107. package/dist/server/api/directoryApi.d.ts.map +1 -0
  108. package/dist/server/api/directoryApi.js +103 -0
  109. package/dist/server/api/directoryApi.js.map +1 -0
  110. package/dist/server/api/generateApi.d.ts +24 -0
  111. package/dist/server/api/generateApi.d.ts.map +1 -0
  112. package/dist/server/api/generateApi.js +457 -0
  113. package/dist/server/api/generateApi.js.map +1 -0
  114. package/dist/server/api/healthApi.d.ts +9 -0
  115. package/dist/server/api/healthApi.d.ts.map +1 -0
  116. package/dist/server/api/healthApi.js +15 -0
  117. package/dist/server/api/healthApi.js.map +1 -0
  118. package/dist/server/api/indexApi.d.ts +21 -0
  119. package/dist/server/api/indexApi.d.ts.map +1 -0
  120. package/dist/server/api/indexApi.js +61 -0
  121. package/dist/server/api/indexApi.js.map +1 -0
  122. package/dist/server/api/logsApi.d.ts +12 -0
  123. package/dist/server/api/logsApi.d.ts.map +1 -0
  124. package/dist/server/api/logsApi.js +37 -0
  125. package/dist/server/api/logsApi.js.map +1 -0
  126. package/dist/server/api/mcpApi.d.ts +20 -0
  127. package/dist/server/api/mcpApi.d.ts.map +1 -0
  128. package/dist/server/api/mcpApi.js +120 -0
  129. package/dist/server/api/mcpApi.js.map +1 -0
  130. package/dist/server/api/nameApi.d.ts +21 -0
  131. package/dist/server/api/nameApi.d.ts.map +1 -0
  132. package/dist/server/api/nameApi.js +42 -0
  133. package/dist/server/api/nameApi.js.map +1 -0
  134. package/dist/server/api/parseApi.d.ts +9 -0
  135. package/dist/server/api/parseApi.d.ts.map +1 -0
  136. package/dist/server/api/parseApi.js +3245 -0
  137. package/dist/server/api/parseApi.js.map +1 -0
  138. package/dist/server/api/serverApi.d.ts +44 -0
  139. package/dist/server/api/serverApi.d.ts.map +1 -0
  140. package/dist/server/api/serverApi.js +417 -0
  141. package/dist/server/api/serverApi.js.map +1 -0
  142. package/dist/{dynamic-mcp-executor.d.ts → server/dynamic-mcp-executor.d.ts} +4 -5
  143. package/dist/server/dynamic-mcp-executor.d.ts.map +1 -0
  144. package/dist/server/dynamic-mcp-executor.js +62 -0
  145. package/dist/server/dynamic-mcp-executor.js.map +1 -0
  146. package/dist/server/port-utils.d.ts +14 -0
  147. package/dist/server/port-utils.d.ts.map +1 -0
  148. package/dist/server/port-utils.js +31 -0
  149. package/dist/server/port-utils.js.map +1 -0
  150. package/dist/server/server-utils.d.ts +13 -0
  151. package/dist/server/server-utils.d.ts.map +1 -0
  152. package/dist/server/server-utils.js +72 -0
  153. package/dist/server/server-utils.js.map +1 -0
  154. package/dist/{web → server}/server.d.ts +1 -0
  155. package/dist/server/server.d.ts.map +1 -0
  156. package/dist/server/server.js +535 -0
  157. package/dist/server/server.js.map +1 -0
  158. package/dist/server/tool-executer.d.ts +101 -0
  159. package/dist/server/tool-executer.d.ts.map +1 -0
  160. package/dist/server/tool-executer.js +6198 -0
  161. package/dist/server/tool-executer.js.map +1 -0
  162. package/dist/types/index.d.ts +1197 -4
  163. package/dist/types/index.d.ts.map +1 -1
  164. package/dist/types/index.js +1028 -0
  165. package/dist/types/index.js.map +1 -1
  166. package/dist/upload/upload-utils.d.ts +4 -0
  167. package/dist/upload/upload-utils.d.ts.map +1 -0
  168. package/dist/upload/upload-utils.js +29 -0
  169. package/dist/upload/upload-utils.js.map +1 -0
  170. package/dist/utils/deployment-util.d.ts +14 -0
  171. package/dist/utils/deployment-util.d.ts.map +1 -0
  172. package/dist/utils/deployment-util.js +46 -0
  173. package/dist/utils/deployment-util.js.map +1 -0
  174. package/dist/utils/logger.d.ts +15 -0
  175. package/dist/utils/logger.d.ts.map +1 -0
  176. package/dist/utils/logger.js +56 -0
  177. package/dist/utils/logger.js.map +1 -0
  178. package/package.json +18 -6
  179. package/quickmcp-direct-stdio.js +245 -163
  180. package/src/web/public/app.js +15370 -1471
  181. package/src/web/public/authorization.html +868 -0
  182. package/src/web/public/database-tables.html +283 -547
  183. package/src/web/public/how-to-use.html +446 -462
  184. package/src/web/public/how-to-use.js +4 -4
  185. package/src/web/public/images/app/activepieces.png +0 -0
  186. package/src/web/public/images/app/airtable.png +0 -0
  187. package/src/web/public/images/app/androidstudio.png +0 -0
  188. package/src/web/public/images/app/antigravity.png +0 -0
  189. package/src/web/public/images/app/applenotes.png +0 -0
  190. package/src/web/public/images/app/applereminders.png +0 -0
  191. package/src/web/public/images/app/asana.png +0 -0
  192. package/src/web/public/images/app/azureai.png +0 -0
  193. package/src/web/public/images/app/bash.png +0 -0
  194. package/src/web/public/images/app/bearnotes.png +0 -0
  195. package/src/web/public/images/app/bitbucket.png +0 -0
  196. package/src/web/public/images/app/claude.png +0 -0
  197. package/src/web/public/images/app/cli.png +0 -0
  198. package/src/web/public/images/app/clickup.png +0 -0
  199. package/src/web/public/images/app/cohere.png +0 -0
  200. package/src/web/public/images/app/confluence.png +0 -0
  201. package/src/web/public/images/app/confluence2.png +0 -0
  202. package/src/web/public/images/app/curl.png +0 -0
  203. package/src/web/public/images/app/curl_mini.png +0 -0
  204. package/src/web/public/images/app/cursor.png +0 -0
  205. package/src/web/public/images/app/db2.png +0 -0
  206. package/src/web/public/images/app/deepseek.png +0 -0
  207. package/src/web/public/images/app/discord.png +0 -0
  208. package/src/web/public/images/app/docker.png +0 -0
  209. package/src/web/public/images/app/dockerhub.png +0 -0
  210. package/src/web/public/images/app/dropbox.png +0 -0
  211. package/src/web/public/images/app/elasticsearch.png +0 -0
  212. package/src/web/public/images/app/facebook.png +0 -0
  213. package/src/web/public/images/app/falai.png +0 -0
  214. package/src/web/public/images/app/fireworks.png +0 -0
  215. package/src/web/public/images/app/gdrive.png +0 -0
  216. package/src/web/public/images/app/gemini.png +0 -0
  217. package/src/web/public/images/app/github.png +0 -0
  218. package/src/web/public/images/app/githubcopilot.png +0 -0
  219. package/src/web/public/images/app/gitlab.png +0 -0
  220. package/src/web/public/images/app/gmail.png +0 -0
  221. package/src/web/public/images/app/googlecalender.png +0 -0
  222. package/src/web/public/images/app/googledocs.png +0 -0
  223. package/src/web/public/images/app/googlesheets.png +0 -0
  224. package/src/web/public/images/app/gradle.png +0 -0
  225. package/src/web/public/images/app/grafana.png +0 -0
  226. package/src/web/public/images/app/graphql.png +0 -0
  227. package/src/web/public/images/app/grok.png +0 -0
  228. package/src/web/public/images/app/groq.png +0 -0
  229. package/src/web/public/images/app/hazelcast.png +0 -0
  230. package/src/web/public/images/app/huggingface.png +0 -0
  231. package/src/web/public/images/app/imessage.png +0 -0
  232. package/src/web/public/images/app/instagram.png +0 -0
  233. package/src/web/public/images/app/intellij.png +0 -0
  234. package/src/web/public/images/app/jenkins.png +0 -0
  235. package/src/web/public/images/app/jira.png +0 -0
  236. package/src/web/public/images/app/kafka.png +0 -0
  237. package/src/web/public/images/app/kubernetes.png +0 -0
  238. package/src/web/public/images/app/linear.png +0 -0
  239. package/src/web/public/images/app/linkedin.png +0 -0
  240. package/src/web/public/images/app/llama.png +0 -0
  241. package/src/web/public/images/app/make.png +0 -0
  242. package/src/web/public/images/app/maven.png +0 -0
  243. package/src/web/public/images/app/mcp.png +0 -0
  244. package/src/web/public/images/app/microsoftteams.png +0 -0
  245. package/src/web/public/images/app/mistral.png +0 -0
  246. package/src/web/public/images/app/monday.png +0 -0
  247. package/src/web/public/images/app/mongodb.png +0 -0
  248. package/src/web/public/images/app/mssql.png +0 -0
  249. package/src/web/public/images/app/mysql.png +0 -0
  250. package/src/web/public/images/app/n8n.png +0 -0
  251. package/src/web/public/images/app/notion.png +0 -0
  252. package/src/web/public/images/app/npm.png +0 -0
  253. package/src/web/public/images/app/nuget.png +0 -0
  254. package/src/web/public/images/app/obsidian.png +0 -0
  255. package/src/web/public/images/app/openai.png +0 -0
  256. package/src/web/public/images/app/openrouter.png +0 -0
  257. package/src/web/public/images/app/opensearch.png +0 -0
  258. package/src/web/public/images/app/openshift.png +0 -0
  259. package/src/web/public/images/app/oracle.png +0 -0
  260. package/src/web/public/images/app/perplexity.png +0 -0
  261. package/src/web/public/images/app/pipedream.png +0 -0
  262. package/src/web/public/images/app/postgresql.png +0 -0
  263. package/src/web/public/images/app/powershell.png +0 -0
  264. package/src/web/public/images/app/prometheus.png +0 -0
  265. package/src/web/public/images/app/reddit.png +0 -0
  266. package/src/web/public/images/app/redis.png +0 -0
  267. package/src/web/public/images/app/rss.png +0 -0
  268. package/src/web/public/images/app/signal.png +0 -0
  269. package/src/web/public/images/app/slack.png +0 -0
  270. package/src/web/public/images/app/soap.png +0 -0
  271. package/src/web/public/images/app/sqlite.png +0 -0
  272. package/src/web/public/images/app/supabase.png +0 -0
  273. package/src/web/public/images/app/telegram.png +0 -0
  274. package/src/web/public/images/app/things3.png +0 -0
  275. package/src/web/public/images/app/threads.png +0 -0
  276. package/src/web/public/images/app/tiktok.png +0 -0
  277. package/src/web/public/images/app/together.png +0 -0
  278. package/src/web/public/images/app/trello.png +0 -0
  279. package/src/web/public/images/app/vscode.png +0 -0
  280. package/src/web/public/images/app/webhook.png +0 -0
  281. package/src/web/public/images/app/webpage.png +0 -0
  282. package/src/web/public/images/app/whatsappbusiness.png +0 -0
  283. package/src/web/public/images/app/windsorf.png +0 -0
  284. package/src/web/public/images/app/x.png +0 -0
  285. package/src/web/public/images/app/youtube.png +0 -0
  286. package/src/web/public/images/app/zapier.png +0 -0
  287. package/src/web/public/images/app/zededitor.png +0 -0
  288. package/src/web/public/images/app/zoom.png +0 -0
  289. package/src/web/public/images/avatar-anon.svg +4 -0
  290. package/src/web/public/images/favicon.png +0 -0
  291. package/src/web/public/images/install/chatgpt-web/step0.png +0 -0
  292. package/src/web/public/images/install/chatgpt-web/step1.png +0 -0
  293. package/src/web/public/images/install/chatgpt-web/step2.png +0 -0
  294. package/src/web/public/images/install/chatgpt-web/step3.png +0 -0
  295. package/src/web/public/images/install/chatgpt-web/step4.png +0 -0
  296. package/src/web/public/images/install/chatgpt-web/step5.png +0 -0
  297. package/src/web/public/images/readme/1-generate-servers.png +0 -0
  298. package/src/web/public/images/readme/2-database-connection.png +0 -0
  299. package/src/web/public/images/readme/2-file-upload.png +0 -0
  300. package/src/web/public/images/readme/3-data-preview.png +0 -0
  301. package/src/web/public/images/readme/4-data-preview2.png +0 -0
  302. package/src/web/public/images/readme/5-server-configuration.png +0 -0
  303. package/src/web/public/images/readme/6-server-generated-modal.png +0 -0
  304. package/src/web/public/images/readme/7-generated-servers.png +0 -0
  305. package/src/web/public/images/readme/8-generated-servers-view-details.png +0 -0
  306. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.23.51.png +0 -0
  307. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.24.59.png +0 -0
  308. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.05.png +0 -0
  309. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.14.png +0 -0
  310. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.21.png +0 -0
  311. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.36.png +0 -0
  312. package/src/web/public/index.html +4685 -488
  313. package/src/web/public/landing.html +1638 -0
  314. package/src/web/public/logger.js +31 -0
  315. package/src/web/public/login.html +372 -0
  316. package/src/web/public/manage-servers.html +121 -188
  317. package/src/web/public/pricing.html +537 -0
  318. package/src/web/public/quick-ask.html +133 -0
  319. package/src/web/public/quickmcp-styles.css +708 -0
  320. package/src/web/public/roles.html +177 -0
  321. package/src/web/public/shared.js +736 -3
  322. package/src/web/public/sidebar.js +414 -0
  323. package/src/web/public/test-servers.html +605 -221
  324. package/src/web/public/users.html +191 -0
  325. package/dist/client/MCPClientUnified.d.ts +0 -31
  326. package/dist/client/MCPClientUnified.d.ts.map +0 -1
  327. package/dist/client/MCPClientUnified.js +0 -275
  328. package/dist/client/MCPClientUnified.js.map +0 -1
  329. package/dist/client/MCPTestRunnerUnified.d.ts +0 -48
  330. package/dist/client/MCPTestRunnerUnified.d.ts.map +0 -1
  331. package/dist/client/MCPTestRunnerUnified.js +0 -183
  332. package/dist/client/MCPTestRunnerUnified.js.map +0 -1
  333. package/dist/database/json-manager.d.ts +0 -55
  334. package/dist/database/json-manager.d.ts.map +0 -1
  335. package/dist/database/json-manager.js +0 -128
  336. package/dist/database/json-manager.js.map +0 -1
  337. package/dist/dynamic-mcp-executor.d.ts.map +0 -1
  338. package/dist/dynamic-mcp-executor.js +0 -274
  339. package/dist/dynamic-mcp-executor.js.map +0 -1
  340. package/dist/generators/MCPServerGenerator-new.d.ts +0 -37
  341. package/dist/generators/MCPServerGenerator-new.d.ts.map +0 -1
  342. package/dist/generators/MCPServerGenerator-new.js +0 -287
  343. package/dist/generators/MCPServerGenerator-new.js.map +0 -1
  344. package/dist/generators/database/sqlite-manager.d.ts +0 -52
  345. package/dist/generators/database/sqlite-manager.js +0 -143
  346. package/dist/generators/generators/MCPServerGenerator.d.ts +0 -37
  347. package/dist/generators/generators/MCPServerGenerator.js +0 -396
  348. package/dist/integrated-mcp-server.d.ts +0 -25
  349. package/dist/integrated-mcp-server.d.ts.map +0 -1
  350. package/dist/integrated-mcp-server.js +0 -541
  351. package/dist/integrated-mcp-server.js.map +0 -1
  352. package/dist/mcp-inspector-server.d.ts +0 -3
  353. package/dist/mcp-inspector-server.d.ts.map +0 -1
  354. package/dist/mcp-inspector-server.js +0 -119
  355. package/dist/mcp-inspector-server.js.map +0 -1
  356. package/dist/mcp-sdk-server.d.ts +0 -3
  357. package/dist/mcp-sdk-server.d.ts.map +0 -1
  358. package/dist/mcp-sdk-server.js +0 -90
  359. package/dist/mcp-sdk-server.js.map +0 -1
  360. package/dist/mcp-server.d.ts +0 -3
  361. package/dist/mcp-server.d.ts.map +0 -1
  362. package/dist/mcp-server.js +0 -300
  363. package/dist/mcp-server.js.map +0 -1
  364. package/dist/parsers/parsers/ExcelParser.js +0 -118
  365. package/dist/quickmcp-unified-bridge.d.ts +0 -13
  366. package/dist/quickmcp-unified-bridge.d.ts.map +0 -1
  367. package/dist/quickmcp-unified-bridge.js +0 -176
  368. package/dist/quickmcp-unified-bridge.js.map +0 -1
  369. package/dist/sqlite-manager.js +0 -145
  370. package/dist/test-app.d.ts +0 -2
  371. package/dist/test-app.d.ts.map +0 -1
  372. package/dist/test-app.js +0 -119
  373. package/dist/test-app.js.map +0 -1
  374. package/dist/transport/base-transport.d.ts +0 -21
  375. package/dist/transport/base-transport.d.ts.map +0 -1
  376. package/dist/transport/base-transport.js +0 -16
  377. package/dist/transport/base-transport.js.map +0 -1
  378. package/dist/transport/index.d.ts +0 -10
  379. package/dist/transport/index.d.ts.map +0 -1
  380. package/dist/transport/index.js +0 -12
  381. package/dist/transport/index.js.map +0 -1
  382. package/dist/transport/sse-transport.d.ts +0 -13
  383. package/dist/transport/sse-transport.d.ts.map +0 -1
  384. package/dist/transport/sse-transport.js +0 -106
  385. package/dist/transport/sse-transport.js.map +0 -1
  386. package/dist/transport/stdio-transport.d.ts +0 -8
  387. package/dist/transport/stdio-transport.d.ts.map +0 -1
  388. package/dist/transport/stdio-transport.js +0 -53
  389. package/dist/transport/stdio-transport.js.map +0 -1
  390. package/dist/transport/streamable-http-transport.d.ts +0 -15
  391. package/dist/transport/streamable-http-transport.d.ts.map +0 -1
  392. package/dist/transport/streamable-http-transport.js +0 -151
  393. package/dist/transport/streamable-http-transport.js.map +0 -1
  394. package/dist/web/client/MCPClient.js +0 -348
  395. package/dist/web/client/MCPTestRunner.js +0 -317
  396. package/dist/web/database/json-manager.js +0 -124
  397. package/dist/web/database/sqlite-manager.js +0 -146
  398. package/dist/web/dynamic-mcp-executor.js +0 -443
  399. package/dist/web/generators/MCPServerGenerator-new.js +0 -284
  400. package/dist/web/generators/MCPServerGenerator.js +0 -566
  401. package/dist/web/integrated-mcp-server-new.js +0 -394
  402. package/dist/web/parsers/CsvParser.js +0 -144
  403. package/dist/web/parsers/DatabaseParser.js +0 -637
  404. package/dist/web/parsers/ExcelParser.js +0 -180
  405. package/dist/web/parsers/index.js +0 -152
  406. package/dist/web/server.d.ts.map +0 -1
  407. package/dist/web/server.js +0 -790
  408. package/dist/web/server.js.map +0 -1
  409. package/dist/web/types/index.js +0 -2
  410. package/dist/web/web/server.js +0 -860
  411. package/src/web/public/modern-styles.css +0 -946
  412. package/src/web/public/shared-styles.css +0 -2091
  413. /package/src/web/public/images/{1-claude-quickmcp-stdio.png → readme/1-claude-quickmcp-stdio.png} +0 -0
  414. /package/src/web/public/images/{2-claude-tools.png → readme/2-claude-tools.png} +0 -0
  415. /package/src/web/public/images/{3-claude-developer-settings.png → readme/3-claude-developer-settings.png} +0 -0
  416. /package/src/web/public/images/{4-claude-config.png → readme/4-claude-config.png} +0 -0
  417. /package/src/web/public/images/{5-claude-config-edit.png → readme/5-claude-config-edit.png} +0 -0
@@ -1,946 +0,0 @@
1
- /* Modern QuickMCP UI System */
2
-
3
- /* CSS Variables for Design System */
4
- :root {
5
- /* Colors */
6
- --primary-50: #f0f9ff;
7
- --primary-100: #e0f2fe;
8
- --primary-500: #0ea5e9;
9
- --primary-600: #0284c7;
10
- --primary-700: #0369a1;
11
- --primary-900: #0c4a6e;
12
-
13
- --secondary-50: #f8fafc;
14
- --secondary-100: #f1f5f9;
15
- --secondary-200: #e2e8f0;
16
- --secondary-300: #cbd5e1;
17
- --secondary-400: #94a3b8;
18
- --secondary-500: #64748b;
19
- --secondary-600: #475569;
20
- --secondary-700: #334155;
21
- --secondary-800: #1e293b;
22
- --secondary-900: #0f172a;
23
-
24
- --success-50: #f0fdf4;
25
- --success-500: #22c55e;
26
- --success-600: #16a34a;
27
-
28
- --warning-50: #fffbeb;
29
- --warning-500: #f59e0b;
30
- --warning-600: #d97706;
31
-
32
- --error-50: #fef2f2;
33
- --error-500: #ef4444;
34
- --error-600: #dc2626;
35
-
36
- /* Spacing */
37
- --space-1: 0.25rem;
38
- --space-2: 0.5rem;
39
- --space-3: 0.75rem;
40
- --space-4: 1rem;
41
- --space-5: 1.25rem;
42
- --space-6: 1.5rem;
43
- --space-8: 2rem;
44
- --space-10: 2.5rem;
45
- --space-12: 3rem;
46
- --space-16: 4rem;
47
- --space-20: 5rem;
48
-
49
- /* Border Radius */
50
- --radius-sm: 0.375rem;
51
- --radius-md: 0.5rem;
52
- --radius-lg: 0.75rem;
53
- --radius-xl: 1rem;
54
- --radius-2xl: 1.5rem;
55
- --radius-full: 9999px;
56
-
57
- /* Typography */
58
- --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
59
- --font-mono: 'JetBrains Mono', 'Fira Code', monospace;
60
-
61
- /* Shadows */
62
- --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
63
- --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
64
- --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
65
- --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
66
-
67
- /* Transitions */
68
- --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
69
- --transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1);
70
- --transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);
71
- }
72
-
73
- /* Reset and Base Styles */
74
- *, *::before, *::after {
75
- box-sizing: border-box;
76
- margin: 0;
77
- padding: 0;
78
- }
79
-
80
- html {
81
- font-family: var(--font-sans);
82
- line-height: 1.5;
83
- -webkit-font-smoothing: antialiased;
84
- -moz-osx-font-smoothing: grayscale;
85
- }
86
-
87
- body {
88
- background: linear-gradient(135deg, var(--primary-50) 0%, var(--secondary-50) 100%);
89
- color: var(--secondary-900);
90
- min-height: 100vh;
91
- overflow-x: hidden;
92
- }
93
-
94
- /* Layout Components */
95
- .app {
96
- display: flex;
97
- min-height: 100vh;
98
- }
99
-
100
- /* Modern Sidebar */
101
- .sidebar {
102
- width: 280px;
103
- background: rgba(255, 255, 255, 0.95);
104
- backdrop-filter: blur(20px);
105
- border-right: 1px solid var(--secondary-200);
106
- display: flex;
107
- flex-direction: column;
108
- position: fixed;
109
- height: 100vh;
110
- z-index: 1000;
111
- transform: translateX(0);
112
- transition: transform var(--transition-normal);
113
- }
114
-
115
- .sidebar.open {
116
- transform: translateX(0);
117
- }
118
-
119
- .sidebar-header {
120
- padding: var(--space-6);
121
- border-bottom: 1px solid var(--secondary-200);
122
- display: flex;
123
- align-items: center;
124
- gap: var(--space-3);
125
- }
126
-
127
- .sidebar-logo {
128
- width: 48px;
129
- height: 48px;
130
- background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);
131
- border-radius: var(--radius-xl);
132
- display: flex;
133
- align-items: center;
134
- justify-content: center;
135
- color: white;
136
- font-weight: 700;
137
- font-size: 1.25rem;
138
- box-shadow: var(--shadow-md);
139
- }
140
-
141
- .sidebar-title {
142
- font-size: 1.25rem;
143
- font-weight: 700;
144
- color: var(--secondary-900);
145
- }
146
-
147
- .sidebar-nav {
148
- flex: 1;
149
- padding: var(--space-4);
150
- display: flex;
151
- flex-direction: column;
152
- gap: var(--space-2);
153
- }
154
-
155
- .nav-item {
156
- display: flex;
157
- align-items: center;
158
- gap: var(--space-3);
159
- padding: var(--space-3) var(--space-4);
160
- border-radius: var(--radius-lg);
161
- color: var(--secondary-600);
162
- text-decoration: none;
163
- font-weight: 500;
164
- transition: all var(--transition-fast);
165
- cursor: pointer;
166
- border: none;
167
- background: none;
168
- width: 100%;
169
- text-align: left;
170
- }
171
-
172
- .nav-item:hover {
173
- background: var(--secondary-100);
174
- color: var(--secondary-900);
175
- }
176
-
177
- .nav-item.active {
178
- background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-600) 100%);
179
- color: white;
180
- box-shadow: var(--shadow-md);
181
- }
182
-
183
- .nav-item-icon {
184
- width: 20px;
185
- height: 20px;
186
- display: flex;
187
- align-items: center;
188
- justify-content: center;
189
- font-size: 1.125rem;
190
- }
191
-
192
- /* Main Content */
193
- .main-content {
194
- flex: 1;
195
- margin-left: 280px;
196
- transition: margin-left var(--transition-normal);
197
- }
198
-
199
- .main-content.with-sidebar {
200
- margin-left: 280px;
201
- }
202
-
203
- /* Top Bar */
204
- .top-bar {
205
- height: 72px;
206
- background: rgba(255, 255, 255, 0.95);
207
- backdrop-filter: blur(20px);
208
- border-bottom: 1px solid var(--secondary-200);
209
- display: flex;
210
- align-items: center;
211
- justify-content: space-between;
212
- padding: 0 var(--space-6);
213
- position: sticky;
214
- top: 0;
215
- z-index: 100;
216
- }
217
-
218
- .hamburger {
219
- display: none;
220
- flex-direction: column;
221
- gap: 4px;
222
- background: none;
223
- border: none;
224
- cursor: pointer;
225
- padding: var(--space-2);
226
- border-radius: var(--radius-md);
227
- transition: background var(--transition-fast);
228
- }
229
-
230
- .hamburger:hover {
231
- background: var(--secondary-100);
232
- }
233
-
234
- .hamburger span {
235
- width: 24px;
236
- height: 3px;
237
- background: var(--secondary-700);
238
- border-radius: var(--radius-full);
239
- transition: all var(--transition-fast);
240
- }
241
-
242
- .hamburger.active span:nth-child(1) {
243
- transform: rotate(45deg) translate(6px, 6px);
244
- }
245
-
246
- .hamburger.active span:nth-child(2) {
247
- opacity: 0;
248
- }
249
-
250
- .hamburger.active span:nth-child(3) {
251
- transform: rotate(-45deg) translate(6px, -6px);
252
- }
253
-
254
- .page-title {
255
- font-size: 1.875rem;
256
- font-weight: 700;
257
- color: var(--secondary-900);
258
- }
259
-
260
- /* Container */
261
- .container {
262
- max-width: 1200px;
263
- margin: 0 auto;
264
- padding: var(--space-6);
265
- }
266
-
267
- /* Modern Cards */
268
- .card {
269
- background: rgba(255, 255, 255, 0.8);
270
- backdrop-filter: blur(20px);
271
- border: 1px solid var(--secondary-200);
272
- border-radius: var(--radius-2xl);
273
- box-shadow: var(--shadow-lg);
274
- overflow: hidden;
275
- transition: all var(--transition-normal);
276
- }
277
-
278
- .card:hover {
279
- transform: translateY(-4px);
280
- box-shadow: var(--shadow-xl);
281
- border-color: var(--primary-200);
282
- }
283
-
284
- .card-header {
285
- padding: var(--space-6);
286
- border-bottom: 1px solid var(--secondary-200);
287
- background: linear-gradient(135deg, var(--secondary-50) 0%, rgba(255, 255, 255, 0.8) 100%);
288
- }
289
-
290
- .card-title {
291
- font-size: 1.5rem;
292
- font-weight: 700;
293
- color: var(--secondary-900);
294
- margin-bottom: var(--space-2);
295
- }
296
-
297
- .card-description {
298
- color: var(--secondary-600);
299
- font-size: 1rem;
300
- }
301
-
302
- .card-content {
303
- padding: var(--space-6);
304
- }
305
-
306
- .card-actions {
307
- padding: var(--space-6);
308
- background: var(--secondary-50);
309
- border-top: 1px solid var(--secondary-200);
310
- display: flex;
311
- gap: var(--space-3);
312
- flex-wrap: wrap;
313
- }
314
-
315
- /* Modern Grid System */
316
- .grid {
317
- display: grid;
318
- gap: var(--space-6);
319
- }
320
-
321
- .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
322
- .grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
323
- .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
324
- .grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
325
-
326
- .grid-auto {
327
- grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
328
- }
329
-
330
- /* Modern Buttons */
331
- .btn {
332
- display: inline-flex;
333
- align-items: center;
334
- justify-content: center;
335
- gap: var(--space-2);
336
- padding: var(--space-3) var(--space-6);
337
- border: 2px solid transparent;
338
- border-radius: var(--radius-xl);
339
- font-size: 0.875rem;
340
- font-weight: 600;
341
- text-decoration: none;
342
- cursor: pointer;
343
- transition: all var(--transition-fast);
344
- position: relative;
345
- overflow: hidden;
346
- }
347
-
348
- .btn::before {
349
- content: '';
350
- position: absolute;
351
- top: 50%;
352
- left: 50%;
353
- width: 0;
354
- height: 0;
355
- background: rgba(255, 255, 255, 0.2);
356
- border-radius: 50%;
357
- transition: all var(--transition-normal);
358
- transform: translate(-50%, -50%);
359
- }
360
-
361
- .btn:hover::before {
362
- width: 300px;
363
- height: 300px;
364
- }
365
-
366
- .btn-primary {
367
- background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-600) 100%);
368
- color: white;
369
- box-shadow: var(--shadow-md);
370
- }
371
-
372
- .btn-primary:hover {
373
- transform: translateY(-2px);
374
- box-shadow: var(--shadow-lg);
375
- }
376
-
377
- .btn-secondary {
378
- background: white;
379
- color: var(--secondary-700);
380
- border-color: var(--secondary-300);
381
- }
382
-
383
- .btn-secondary:hover {
384
- background: var(--secondary-50);
385
- border-color: var(--secondary-400);
386
- }
387
-
388
- .btn-success {
389
- background: linear-gradient(135deg, var(--success-500) 0%, var(--success-600) 100%);
390
- color: white;
391
- box-shadow: var(--shadow-md);
392
- }
393
-
394
- .btn-warning {
395
- background: linear-gradient(135deg, var(--warning-500) 0%, var(--warning-600) 100%);
396
- color: white;
397
- box-shadow: var(--shadow-md);
398
- }
399
-
400
- .btn-danger {
401
- background: linear-gradient(135deg, var(--error-500) 0%, var(--error-600) 100%);
402
- color: white;
403
- box-shadow: var(--shadow-md);
404
- }
405
-
406
- .btn-sm {
407
- padding: var(--space-2) var(--space-4);
408
- font-size: 0.75rem;
409
- }
410
-
411
- .btn-lg {
412
- padding: var(--space-4) var(--space-8);
413
- font-size: 1rem;
414
- }
415
-
416
- /* Modern Forms */
417
- .form-group {
418
- margin-bottom: var(--space-6);
419
- }
420
-
421
- .form-label {
422
- display: block;
423
- margin-bottom: var(--space-2);
424
- font-weight: 600;
425
- color: var(--secondary-800);
426
- font-size: 0.875rem;
427
- }
428
-
429
- .form-input, .form-select, .form-textarea {
430
- width: 100%;
431
- padding: var(--space-4);
432
- border: 2px solid var(--secondary-300);
433
- border-radius: var(--radius-lg);
434
- font-size: 1rem;
435
- background: white;
436
- transition: all var(--transition-fast);
437
- font-family: var(--font-sans);
438
- }
439
-
440
- .form-input:focus, .form-select:focus, .form-textarea:focus {
441
- outline: none;
442
- border-color: var(--primary-500);
443
- box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.1);
444
- }
445
-
446
- .form-textarea {
447
- resize: vertical;
448
- min-height: 120px;
449
- }
450
-
451
- /* File Upload */
452
- .file-upload-area {
453
- border: 3px dashed var(--secondary-300);
454
- border-radius: var(--radius-2xl);
455
- padding: var(--space-16);
456
- text-align: center;
457
- cursor: pointer;
458
- transition: all var(--transition-normal);
459
- background: linear-gradient(135deg, var(--secondary-50) 0%, white 100%);
460
- position: relative;
461
- overflow: hidden;
462
- }
463
-
464
- .file-upload-area::before {
465
- content: '';
466
- position: absolute;
467
- top: 0;
468
- left: 0;
469
- right: 0;
470
- bottom: 0;
471
- background: linear-gradient(135deg, var(--primary-50) 0%, var(--primary-100) 100%);
472
- opacity: 0;
473
- transition: opacity var(--transition-normal);
474
- }
475
-
476
- .file-upload-area:hover::before,
477
- .file-upload-area.dragover::before {
478
- opacity: 1;
479
- }
480
-
481
- .file-upload-area:hover,
482
- .file-upload-area.dragover {
483
- border-color: var(--primary-500);
484
- transform: scale(1.02);
485
- }
486
-
487
- .file-upload-content {
488
- position: relative;
489
- z-index: 1;
490
- }
491
-
492
- .file-upload-icon {
493
- font-size: 4rem;
494
- margin-bottom: var(--space-4);
495
- color: var(--secondary-400);
496
- transition: color var(--transition-fast);
497
- }
498
-
499
- .file-upload-area:hover .file-upload-icon {
500
- color: var(--primary-500);
501
- }
502
-
503
- .file-upload-text {
504
- font-size: 1.25rem;
505
- font-weight: 600;
506
- color: var(--secondary-800);
507
- margin-bottom: var(--space-2);
508
- }
509
-
510
- .file-upload-hint {
511
- color: var(--secondary-500);
512
- font-size: 1rem;
513
- }
514
-
515
- /* Status Badges */
516
- .badge {
517
- display: inline-flex;
518
- align-items: center;
519
- gap: var(--space-1);
520
- padding: var(--space-1) var(--space-3);
521
- border-radius: var(--radius-full);
522
- font-size: 0.75rem;
523
- font-weight: 600;
524
- text-transform: uppercase;
525
- letter-spacing: 0.025em;
526
- }
527
-
528
- .badge-primary {
529
- background: var(--primary-100);
530
- color: var(--primary-700);
531
- }
532
-
533
- .badge-success {
534
- background: var(--success-50);
535
- color: var(--success-600);
536
- }
537
-
538
- .badge-warning {
539
- background: var(--warning-50);
540
- color: var(--warning-600);
541
- }
542
-
543
- .badge-secondary {
544
- background: var(--secondary-100);
545
- color: var(--secondary-600);
546
- }
547
-
548
- /* Server Cards */
549
- .server-card {
550
- background: rgba(255, 255, 255, 0.9);
551
- backdrop-filter: blur(20px);
552
- border: 1px solid var(--secondary-200);
553
- border-radius: var(--radius-2xl);
554
- overflow: hidden;
555
- transition: all var(--transition-normal);
556
- position: relative;
557
- }
558
-
559
- .server-card::before {
560
- content: '';
561
- position: absolute;
562
- top: 0;
563
- left: 0;
564
- right: 0;
565
- height: 4px;
566
- background: linear-gradient(90deg, var(--primary-500) 0%, var(--primary-600) 100%);
567
- }
568
-
569
- .server-card:hover {
570
- transform: translateY(-8px);
571
- box-shadow: var(--shadow-xl);
572
- border-color: var(--primary-300);
573
- }
574
-
575
- .server-card-header {
576
- padding: var(--space-6);
577
- background: linear-gradient(135deg, var(--secondary-50) 0%, white 100%);
578
- }
579
-
580
- .server-card-title {
581
- font-size: 1.25rem;
582
- font-weight: 700;
583
- color: var(--secondary-900);
584
- margin-bottom: var(--space-2);
585
- }
586
-
587
- .server-card-description {
588
- color: var(--secondary-600);
589
- line-height: 1.6;
590
- }
591
-
592
- .server-card-content {
593
- padding: var(--space-6);
594
- }
595
-
596
- .server-stats {
597
- display: grid;
598
- grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
599
- gap: var(--space-4);
600
- margin-bottom: var(--space-6);
601
- }
602
-
603
- .stat-item {
604
- text-align: center;
605
- padding: var(--space-4);
606
- background: var(--secondary-50);
607
- border-radius: var(--radius-lg);
608
- }
609
-
610
- .stat-value {
611
- display: block;
612
- font-size: 1.5rem;
613
- font-weight: 700;
614
- color: var(--secondary-900);
615
- margin-bottom: var(--space-1);
616
- }
617
-
618
- .stat-label {
619
- font-size: 0.75rem;
620
- color: var(--secondary-500);
621
- text-transform: uppercase;
622
- letter-spacing: 0.05em;
623
- font-weight: 600;
624
- }
625
-
626
- /* Empty States */
627
- .empty-state {
628
- text-align: center;
629
- padding: var(--space-20);
630
- color: var(--secondary-500);
631
- }
632
-
633
- .empty-state-icon {
634
- font-size: 5rem;
635
- margin-bottom: var(--space-6);
636
- opacity: 0.8;
637
- }
638
-
639
- .empty-state-title {
640
- font-size: 1.5rem;
641
- font-weight: 700;
642
- color: var(--secondary-800);
643
- margin-bottom: var(--space-3);
644
- }
645
-
646
- .empty-state-description {
647
- font-size: 1rem;
648
- color: var(--secondary-600);
649
- margin-bottom: var(--space-8);
650
- max-width: 480px;
651
- margin-left: auto;
652
- margin-right: auto;
653
- line-height: 1.6;
654
- }
655
-
656
- /* Loading States */
657
- .loading {
658
- display: none;
659
- text-align: center;
660
- padding: var(--space-8);
661
- }
662
-
663
- .loading.show {
664
- display: flex;
665
- flex-direction: column;
666
- align-items: center;
667
- gap: var(--space-4);
668
- }
669
-
670
- .spinner {
671
- width: 32px;
672
- height: 32px;
673
- border: 3px solid var(--secondary-200);
674
- border-top: 3px solid var(--primary-500);
675
- border-radius: 50%;
676
- animation: spin 1s linear infinite;
677
- }
678
-
679
- @keyframes spin {
680
- 0% { transform: rotate(0deg); }
681
- 100% { transform: rotate(360deg); }
682
- }
683
-
684
- /* Alerts */
685
- .alert {
686
- padding: var(--space-4) var(--space-6);
687
- border-radius: var(--radius-lg);
688
- margin-bottom: var(--space-6);
689
- border-left: 4px solid;
690
- display: none;
691
- }
692
-
693
- .alert.show {
694
- display: block;
695
- }
696
-
697
- .alert-success {
698
- background: var(--success-50);
699
- color: var(--success-600);
700
- border-color: var(--success-500);
701
- }
702
-
703
- .alert-error {
704
- background: var(--error-50);
705
- color: var(--error-600);
706
- border-color: var(--error-500);
707
- }
708
-
709
- .alert-warning {
710
- background: var(--warning-50);
711
- color: var(--warning-600);
712
- border-color: var(--warning-500);
713
- }
714
-
715
- /* Modals */
716
- .modal-overlay {
717
- position: fixed;
718
- top: 0;
719
- left: 0;
720
- right: 0;
721
- bottom: 0;
722
- background: rgba(0, 0, 0, 0.6);
723
- backdrop-filter: blur(8px);
724
- display: flex;
725
- align-items: center;
726
- justify-content: center;
727
- z-index: 2000;
728
- padding: var(--space-6);
729
- opacity: 0;
730
- visibility: hidden;
731
- transition: all var(--transition-normal);
732
- }
733
-
734
- .modal-overlay.show {
735
- opacity: 1;
736
- visibility: visible;
737
- }
738
-
739
- .modal {
740
- background: white;
741
- border-radius: var(--radius-2xl);
742
- box-shadow: var(--shadow-xl);
743
- max-width: 600px;
744
- width: 100%;
745
- max-height: 90vh;
746
- overflow: hidden;
747
- transform: scale(0.9);
748
- transition: transform var(--transition-normal);
749
- }
750
-
751
- .modal-overlay.show .modal {
752
- transform: scale(1);
753
- }
754
-
755
- .modal-header {
756
- padding: var(--space-6);
757
- border-bottom: 1px solid var(--secondary-200);
758
- display: flex;
759
- align-items: center;
760
- justify-content: space-between;
761
- }
762
-
763
- .modal-title {
764
- font-size: 1.5rem;
765
- font-weight: 700;
766
- color: var(--secondary-900);
767
- }
768
-
769
- .modal-close {
770
- background: none;
771
- border: none;
772
- font-size: 1.5rem;
773
- color: var(--secondary-500);
774
- cursor: pointer;
775
- padding: var(--space-2);
776
- border-radius: var(--radius-md);
777
- transition: all var(--transition-fast);
778
- }
779
-
780
- .modal-close:hover {
781
- background: var(--secondary-100);
782
- color: var(--secondary-700);
783
- }
784
-
785
- .modal-body {
786
- padding: var(--space-6);
787
- overflow-y: auto;
788
- max-height: calc(90vh - 200px);
789
- }
790
-
791
- /* Tabs */
792
- .tabs {
793
- border-bottom: 1px solid var(--secondary-200);
794
- margin-bottom: var(--space-6);
795
- }
796
-
797
- .tab-list {
798
- display: flex;
799
- gap: var(--space-2);
800
- padding: 0 var(--space-6);
801
- }
802
-
803
- .tab-button {
804
- padding: var(--space-4) var(--space-6);
805
- border: none;
806
- background: none;
807
- color: var(--secondary-600);
808
- font-weight: 500;
809
- border-bottom: 3px solid transparent;
810
- cursor: pointer;
811
- transition: all var(--transition-fast);
812
- }
813
-
814
- .tab-button:hover {
815
- color: var(--secondary-900);
816
- }
817
-
818
- .tab-button.active {
819
- color: var(--primary-600);
820
- border-bottom-color: var(--primary-500);
821
- }
822
-
823
- .tab-content {
824
- display: none;
825
- }
826
-
827
- .tab-content.active {
828
- display: block;
829
- }
830
-
831
- /* Responsive Design */
832
- @media (max-width: 1024px) {
833
- .grid-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
834
- .grid-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
835
- }
836
-
837
- @media (max-width: 768px) {
838
- .hamburger {
839
- display: flex;
840
- }
841
-
842
- .sidebar {
843
- transform: translateX(-100%);
844
- }
845
-
846
- .main-content {
847
- margin-left: 0;
848
- }
849
-
850
- .grid-cols-4,
851
- .grid-cols-3,
852
- .grid-cols-2 {
853
- grid-template-columns: 1fr;
854
- }
855
-
856
- .grid-auto {
857
- grid-template-columns: 1fr;
858
- }
859
-
860
- .container {
861
- padding: var(--space-4);
862
- }
863
-
864
- .card-actions {
865
- flex-direction: column;
866
- }
867
-
868
- .server-stats {
869
- grid-template-columns: repeat(2, 1fr);
870
- }
871
-
872
- .modal {
873
- margin: var(--space-4);
874
- max-width: none;
875
- }
876
- }
877
-
878
- @media (max-width: 480px) {
879
- .page-title {
880
- font-size: 1.5rem;
881
- }
882
-
883
- .server-stats {
884
- grid-template-columns: 1fr;
885
- }
886
-
887
- .stat-item {
888
- text-align: left;
889
- }
890
-
891
- .file-upload-area {
892
- padding: var(--space-8);
893
- }
894
-
895
- .file-upload-icon {
896
- font-size: 3rem;
897
- }
898
- }
899
-
900
- /* Sidebar overlay for mobile */
901
- .sidebar-overlay {
902
- position: fixed;
903
- top: 0;
904
- left: 0;
905
- right: 0;
906
- bottom: 0;
907
- background: rgba(0, 0, 0, 0.5);
908
- z-index: 999;
909
- opacity: 0;
910
- visibility: hidden;
911
- transition: all var(--transition-normal);
912
- }
913
-
914
- .sidebar-overlay.show {
915
- opacity: 1;
916
- visibility: visible;
917
- }
918
-
919
- /* Utilities */
920
- .hidden { display: none !important; }
921
- .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
922
-
923
- /* Dark mode support */
924
- @media (prefers-color-scheme: dark) {
925
- :root {
926
- --secondary-50: #0f172a;
927
- --secondary-100: #1e293b;
928
- --secondary-200: #334155;
929
- --secondary-300: #475569;
930
- --secondary-400: #64748b;
931
- --secondary-500: #94a3b8;
932
- --secondary-600: #cbd5e1;
933
- --secondary-700: #e2e8f0;
934
- --secondary-800: #f1f5f9;
935
- --secondary-900: #f8fafc;
936
- }
937
-
938
- body {
939
- background: linear-gradient(135deg, var(--secondary-900) 0%, var(--secondary-800) 100%);
940
- }
941
-
942
- .card, .server-card {
943
- background: rgba(30, 41, 59, 0.8);
944
- border-color: var(--secondary-700);
945
- }
946
- }