@brainfish-ai/devdoc 0.1.41 → 0.1.43

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 (400) hide show
  1. package/ai-agents/.claude/skills/bootstrap-docs/SKILL.md +710 -79
  2. package/ai-agents/.claude/skills/check-docs/SKILL.md +83 -8
  3. package/ai-agents/.claude/skills/create-doc/SKILL.md +267 -55
  4. package/ai-agents/.claude/skills/update-doc/SKILL.md +162 -63
  5. package/ai-agents/.cursor/rules/devdoc-bootstrap.mdc +145 -15
  6. package/ai-agents/.cursor/rules/devdoc-create.mdc +108 -57
  7. package/ai-agents/.cursor/rules/devdoc-update.mdc +93 -70
  8. package/ai-agents/.cursor/rules/devdoc.mdc +21 -0
  9. package/ai-agents/schemas/docs.schema.json +332 -0
  10. package/ai-agents/schemas/theme.schema.json +243 -0
  11. package/dist/cli/commands/create.js +4 -9
  12. package/dist/cli/commands/deploy.js +50 -25
  13. package/dist/cli/commands/dev.js +19 -10
  14. package/package.json +3 -2
  15. package/renderer/app/api/assets/[...path]/route.js +108 -0
  16. package/renderer/app/api/assets/route.js +114 -0
  17. package/renderer/app/api/assets/upload/route.js +163 -0
  18. package/renderer/app/api/auth-schemes/route.js +58 -0
  19. package/renderer/app/api/chat/route.js +759 -0
  20. package/renderer/app/api/codegen/route.js +52 -0
  21. package/renderer/app/api/collections/route.js +675 -0
  22. package/renderer/app/api/debug/route.js +47 -0
  23. package/renderer/app/api/deploy/route.js +199 -0
  24. package/renderer/app/api/device/route.js +36 -0
  25. package/renderer/app/api/docs/route.js +205 -0
  26. package/renderer/app/api/domains/add/route.js +121 -0
  27. package/renderer/app/api/domains/lookup/route.js +43 -0
  28. package/renderer/app/api/domains/remove/route.js +89 -0
  29. package/renderer/app/api/domains/status/route.js +140 -0
  30. package/renderer/app/api/domains/verify/route.js +168 -0
  31. package/renderer/app/api/keys/regenerate/route.js +71 -0
  32. package/renderer/app/api/local-assets/[...path]/route.js +108 -0
  33. package/renderer/app/api/openapi-spec/route.js +73 -0
  34. package/renderer/app/api/projects/[slug]/route.js +129 -0
  35. package/renderer/app/api/projects/[slug]/stats/route.js +80 -0
  36. package/renderer/app/api/projects/register/route.js +176 -0
  37. package/renderer/app/api/proxy/route.js +139 -0
  38. package/renderer/app/api/proxy-stream/route.js +156 -0
  39. package/renderer/app/api/redirects/route.js +35 -0
  40. package/renderer/app/api/schema/route.js +85 -0
  41. package/renderer/app/api/subdomains/check/route.js +158 -0
  42. package/renderer/app/api/suggestions/route.js +175 -0
  43. package/renderer/app/layout.js +47 -0
  44. package/renderer/app/llms-full.txt/route.js +257 -0
  45. package/renderer/app/llms.txt/route.js +219 -0
  46. package/renderer/app/page.js +12 -0
  47. package/renderer/app/robots.txt/route.js +66 -0
  48. package/renderer/app/sitemap.xml/route.js +145 -0
  49. package/renderer/components/docs/index.js +8 -0
  50. package/renderer/components/docs/mdx/accordion.js +113 -0
  51. package/renderer/components/docs/mdx/badge.js +72 -0
  52. package/renderer/components/docs/mdx/callouts.js +137 -0
  53. package/renderer/components/docs/mdx/cards.js +175 -0
  54. package/renderer/components/docs/mdx/changelog.js +100 -0
  55. package/renderer/components/docs/mdx/code-block.js +147 -0
  56. package/renderer/components/docs/mdx/code-group.js +287 -0
  57. package/renderer/components/docs/mdx/file-embeds.js +82 -0
  58. package/renderer/components/docs/mdx/frame.js +59 -0
  59. package/renderer/components/docs/mdx/highlight.js +90 -0
  60. package/renderer/components/docs/mdx/iframe.js +69 -0
  61. package/renderer/components/docs/mdx/image.js +135 -0
  62. package/renderer/components/docs/mdx/index.js +134 -0
  63. package/renderer/components/docs/mdx/landing.js +315 -0
  64. package/renderer/components/docs/mdx/mermaid.js +212 -0
  65. package/renderer/components/docs/mdx/param-field.js +112 -0
  66. package/renderer/components/docs/mdx/steps.js +74 -0
  67. package/renderer/components/docs/mdx/tabs.js +50 -0
  68. package/renderer/components/docs/mdx-renderer.js +77 -0
  69. package/renderer/components/docs/navigation/breadcrumbs.js +64 -0
  70. package/renderer/components/docs/navigation/index.js +6 -0
  71. package/renderer/components/docs/navigation/page-nav.js +57 -0
  72. package/renderer/components/docs/navigation/sidebar.js +375 -0
  73. package/renderer/components/docs/navigation/toc.js +89 -0
  74. package/renderer/components/docs/notice.js +77 -0
  75. package/renderer/components/docs-header.js +202 -0
  76. package/renderer/components/docs-viewer/agent/agent-chat.js +1930 -0
  77. package/renderer/components/docs-viewer/agent/cards/debug-context-card.js +107 -0
  78. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.js +57 -0
  79. package/renderer/components/docs-viewer/agent/cards/index.js +45 -0
  80. package/renderer/components/docs-viewer/agent/cards/response-options-card.js +154 -0
  81. package/renderer/components/docs-viewer/agent/cards/types.js +22 -0
  82. package/renderer/components/docs-viewer/agent/chat-message.js +2 -0
  83. package/renderer/components/docs-viewer/agent/index.js +4 -0
  84. package/renderer/components/docs-viewer/agent/messages/assistant-message.js +108 -0
  85. package/renderer/components/docs-viewer/agent/messages/chat-message.js +34 -0
  86. package/renderer/components/docs-viewer/agent/messages/index.js +6 -0
  87. package/renderer/components/docs-viewer/agent/messages/tool-call-display.js +1065 -0
  88. package/renderer/components/docs-viewer/agent/messages/types.js +2 -0
  89. package/renderer/components/docs-viewer/agent/messages/typing-indicator.js +26 -0
  90. package/renderer/components/docs-viewer/agent/messages/user-message.js +37 -0
  91. package/renderer/components/docs-viewer/code-editor/{index.tsx → index.js} +1 -1
  92. package/renderer/components/docs-viewer/code-editor/notes-mode.js +1338 -0
  93. package/renderer/components/docs-viewer/content/changelog-page.js +297 -0
  94. package/renderer/components/docs-viewer/content/doc-page.js +264 -0
  95. package/renderer/components/docs-viewer/content/documentation-viewer.js +14 -0
  96. package/renderer/components/docs-viewer/content/index.js +29 -0
  97. package/renderer/components/docs-viewer/content/not-found-page.js +300 -0
  98. package/renderer/components/docs-viewer/content/request-details.js +528 -0
  99. package/renderer/components/docs-viewer/content/sections/auth.js +108 -0
  100. package/renderer/components/docs-viewer/content/sections/body.js +80 -0
  101. package/renderer/components/docs-viewer/content/sections/headers.js +64 -0
  102. package/renderer/components/docs-viewer/content/sections/overview.js +56 -0
  103. package/renderer/components/docs-viewer/content/sections/parameters.js +64 -0
  104. package/renderer/components/docs-viewer/content/sections/responses.js +91 -0
  105. package/renderer/components/docs-viewer/global-auth-modal.js +427 -0
  106. package/renderer/components/docs-viewer/index.js +1552 -0
  107. package/renderer/components/docs-viewer/playground/auth-editor.js +418 -0
  108. package/renderer/components/docs-viewer/playground/body-editor.js +240 -0
  109. package/renderer/components/docs-viewer/playground/code-editor.js +135 -0
  110. package/renderer/components/docs-viewer/playground/code-snippet.js +393 -0
  111. package/renderer/components/docs-viewer/playground/graphql-playground.js +734 -0
  112. package/renderer/components/docs-viewer/playground/index.js +682 -0
  113. package/renderer/components/docs-viewer/playground/key-value-editor.js +317 -0
  114. package/renderer/components/docs-viewer/playground/method-selector.js +65 -0
  115. package/renderer/components/docs-viewer/playground/request-builder.js +181 -0
  116. package/renderer/components/docs-viewer/playground/request-tabs.js +240 -0
  117. package/renderer/components/docs-viewer/playground/response-cards/idle-card.js +42 -0
  118. package/renderer/components/docs-viewer/playground/response-cards/index.js +72 -0
  119. package/renderer/components/docs-viewer/playground/response-cards/loading-card.js +24 -0
  120. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.js +28 -0
  121. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.js +308 -0
  122. package/renderer/components/docs-viewer/playground/response-cards/types.js +9 -0
  123. package/renderer/components/docs-viewer/playground/response-viewer.js +18 -0
  124. package/renderer/components/docs-viewer/search/index.js +2 -0
  125. package/renderer/components/docs-viewer/search/search-dialog.js +367 -0
  126. package/renderer/components/docs-viewer/search/use-search.js +89 -0
  127. package/renderer/components/docs-viewer/shared/markdown-renderer.js +423 -0
  128. package/renderer/components/docs-viewer/shared/method-badge.js +23 -0
  129. package/renderer/components/docs-viewer/shared/schema-viewer.js +321 -0
  130. package/renderer/components/docs-viewer/sidebar/collection-tree.js +222 -0
  131. package/renderer/components/docs-viewer/sidebar/endpoint-options.js +512 -0
  132. package/renderer/components/docs-viewer/sidebar/index.js +196 -0
  133. package/renderer/components/docs-viewer/sidebar/right-sidebar.js +163 -0
  134. package/renderer/components/docs-viewer/sidebar/sidebar-group.js +87 -0
  135. package/renderer/components/docs-viewer/sidebar/sidebar-item.js +172 -0
  136. package/renderer/components/docs-viewer/sidebar/sidebar-section.js +31 -0
  137. package/renderer/components/theme-provider.js +10 -0
  138. package/renderer/components/theme-toggle.js +106 -0
  139. package/renderer/components/ui/badge.js +29 -0
  140. package/renderer/components/ui/button.js +40 -0
  141. package/renderer/components/ui/dialog.js +50 -0
  142. package/renderer/components/ui/dropdown-menu.js +143 -0
  143. package/renderer/components/ui/input.js +12 -0
  144. package/renderer/components/ui/label.js +13 -0
  145. package/renderer/components/ui/navigation-menu.js +83 -0
  146. package/renderer/components/ui/select.js +116 -0
  147. package/renderer/components/ui/spinner.js +92 -0
  148. package/renderer/components/ui/tabs.js +34 -0
  149. package/renderer/components/ui/tooltip.js +43 -0
  150. package/renderer/hooks/use-code-copy.js +76 -0
  151. package/renderer/hooks/use-openapi-title.js +33 -0
  152. package/renderer/lib/api-docs/agent/index.js +4 -0
  153. package/renderer/lib/api-docs/agent/indexer.js +254 -0
  154. package/renderer/lib/api-docs/agent/spec-summary.js +227 -0
  155. package/renderer/lib/api-docs/agent/types.js +5 -0
  156. package/renderer/lib/api-docs/auth/auth-context.js +157 -0
  157. package/renderer/lib/api-docs/auth/auth-storage.js +66 -0
  158. package/renderer/lib/api-docs/auth/crypto.js +64 -0
  159. package/renderer/lib/api-docs/auth/index.js +3 -0
  160. package/renderer/lib/api-docs/code-editor/db.js +145 -0
  161. package/renderer/lib/api-docs/code-editor/hooks.js +254 -0
  162. package/renderer/lib/api-docs/code-editor/{index.ts → index.js} +3 -4
  163. package/renderer/lib/api-docs/code-editor/mode-context.js +154 -0
  164. package/renderer/lib/api-docs/code-editor/types.js +53 -0
  165. package/renderer/lib/api-docs/codegen/definitions.js +258 -0
  166. package/renderer/lib/api-docs/codegen/har.js +171 -0
  167. package/renderer/lib/api-docs/codegen/index.js +118 -0
  168. package/renderer/lib/api-docs/factories.js +136 -0
  169. package/renderer/lib/api-docs/{index.ts → index.js} +5 -10
  170. package/renderer/lib/api-docs/mobile-context.js +79 -0
  171. package/renderer/lib/api-docs/navigation-context.js +62 -0
  172. package/renderer/lib/api-docs/parsers/graphql/index.js +50 -0
  173. package/renderer/lib/api-docs/parsers/graphql/parser.js +350 -0
  174. package/renderer/lib/api-docs/parsers/graphql/transformer.js +215 -0
  175. package/renderer/lib/api-docs/parsers/graphql/types.js +46 -0
  176. package/renderer/lib/api-docs/parsers/openapi/dereferencer.js +43 -0
  177. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.js +486 -0
  178. package/renderer/lib/api-docs/parsers/openapi/extractors/body.js +295 -0
  179. package/renderer/lib/api-docs/parsers/openapi/extractors/index.js +132 -0
  180. package/renderer/lib/api-docs/parsers/openapi/index.js +127 -0
  181. package/renderer/lib/api-docs/parsers/openapi/transformer.js +192 -0
  182. package/renderer/lib/api-docs/parsers/openapi/validator.js +24 -0
  183. package/renderer/lib/api-docs/playground/context.js +65 -0
  184. package/renderer/lib/api-docs/playground/navigation-context.js +74 -0
  185. package/renderer/lib/api-docs/playground/request-builder.js +163 -0
  186. package/renderer/lib/api-docs/playground/request-runner.js +224 -0
  187. package/renderer/lib/api-docs/playground/types.js +5 -0
  188. package/renderer/lib/api-docs/types.js +23 -0
  189. package/renderer/lib/api-docs/utils.js +212 -0
  190. package/renderer/lib/cache.js +157 -0
  191. package/renderer/lib/docs/config/domain-schema.js +161 -0
  192. package/renderer/lib/docs/config/index.js +5 -0
  193. package/renderer/lib/docs/config/loader.js +113 -0
  194. package/renderer/lib/docs/config/schema.js +269 -0
  195. package/renderer/lib/docs/index.js +8 -0
  196. package/renderer/lib/docs/mdx/compiler.js +128 -0
  197. package/renderer/lib/docs/mdx/frontmatter.js +73 -0
  198. package/renderer/lib/docs/mdx/index.js +8 -0
  199. package/renderer/lib/docs/navigation/generator.js +269 -0
  200. package/renderer/lib/docs/navigation/index.js +4 -0
  201. package/renderer/lib/docs/navigation/types.js +9 -0
  202. package/renderer/lib/docs-navigation-context.js +40 -0
  203. package/renderer/lib/multi-tenant/context.js +80 -0
  204. package/renderer/lib/storage/blob.js +767 -0
  205. package/renderer/lib/utils/icons.js +30 -0
  206. package/renderer/lib/utils.js +5 -0
  207. package/renderer/next.config.js +62 -0
  208. package/renderer/tsconfig.json +23 -5
  209. package/renderer/app/api/assets/[...path]/route.ts +0 -123
  210. package/renderer/app/api/assets/route.ts +0 -124
  211. package/renderer/app/api/assets/upload/route.ts +0 -177
  212. package/renderer/app/api/auth-schemes/route.ts +0 -77
  213. package/renderer/app/api/chat/route.ts +0 -858
  214. package/renderer/app/api/codegen/route.ts +0 -72
  215. package/renderer/app/api/collections/route.ts +0 -1002
  216. package/renderer/app/api/debug/route.ts +0 -53
  217. package/renderer/app/api/deploy/route.ts +0 -234
  218. package/renderer/app/api/device/route.ts +0 -42
  219. package/renderer/app/api/docs/route.ts +0 -201
  220. package/renderer/app/api/domains/add/route.ts +0 -132
  221. package/renderer/app/api/domains/lookup/route.ts +0 -43
  222. package/renderer/app/api/domains/remove/route.ts +0 -100
  223. package/renderer/app/api/domains/status/route.ts +0 -158
  224. package/renderer/app/api/domains/verify/route.ts +0 -181
  225. package/renderer/app/api/keys/regenerate/route.ts +0 -80
  226. package/renderer/app/api/local-assets/[...path]/route.ts +0 -122
  227. package/renderer/app/api/openapi-spec/route.ts +0 -151
  228. package/renderer/app/api/projects/[slug]/route.ts +0 -153
  229. package/renderer/app/api/projects/[slug]/stats/route.ts +0 -96
  230. package/renderer/app/api/projects/register/route.ts +0 -152
  231. package/renderer/app/api/proxy/route.ts +0 -149
  232. package/renderer/app/api/proxy-stream/route.ts +0 -168
  233. package/renderer/app/api/redirects/route.ts +0 -47
  234. package/renderer/app/api/schema/route.ts +0 -73
  235. package/renderer/app/api/subdomains/check/route.ts +0 -172
  236. package/renderer/app/api/suggestions/route.ts +0 -144
  237. package/renderer/app/layout.tsx +0 -54
  238. package/renderer/app/llms-full.txt/route.ts +0 -346
  239. package/renderer/app/llms.txt/route.ts +0 -279
  240. package/renderer/app/page.tsx +0 -14
  241. package/renderer/app/robots.txt/route.ts +0 -84
  242. package/renderer/app/sitemap.xml/route.ts +0 -199
  243. package/renderer/components/docs/index.ts +0 -12
  244. package/renderer/components/docs/mdx/accordion.tsx +0 -169
  245. package/renderer/components/docs/mdx/badge.tsx +0 -132
  246. package/renderer/components/docs/mdx/callouts.tsx +0 -154
  247. package/renderer/components/docs/mdx/cards.tsx +0 -241
  248. package/renderer/components/docs/mdx/changelog.tsx +0 -120
  249. package/renderer/components/docs/mdx/code-block.tsx +0 -186
  250. package/renderer/components/docs/mdx/code-group.tsx +0 -421
  251. package/renderer/components/docs/mdx/file-embeds.tsx +0 -105
  252. package/renderer/components/docs/mdx/frame.tsx +0 -112
  253. package/renderer/components/docs/mdx/highlight.tsx +0 -151
  254. package/renderer/components/docs/mdx/iframe.tsx +0 -134
  255. package/renderer/components/docs/mdx/image.tsx +0 -235
  256. package/renderer/components/docs/mdx/index.ts +0 -237
  257. package/renderer/components/docs/mdx/landing.tsx +0 -684
  258. package/renderer/components/docs/mdx/mermaid.tsx +0 -240
  259. package/renderer/components/docs/mdx/param-field.tsx +0 -200
  260. package/renderer/components/docs/mdx/steps.tsx +0 -113
  261. package/renderer/components/docs/mdx/tabs.tsx +0 -86
  262. package/renderer/components/docs/mdx-renderer.tsx +0 -100
  263. package/renderer/components/docs/navigation/breadcrumbs.tsx +0 -76
  264. package/renderer/components/docs/navigation/index.ts +0 -8
  265. package/renderer/components/docs/navigation/page-nav.tsx +0 -64
  266. package/renderer/components/docs/navigation/sidebar.tsx +0 -515
  267. package/renderer/components/docs/navigation/toc.tsx +0 -113
  268. package/renderer/components/docs/notice.tsx +0 -105
  269. package/renderer/components/docs-header.tsx +0 -278
  270. package/renderer/components/docs-viewer/agent/agent-chat.tsx +0 -2076
  271. package/renderer/components/docs-viewer/agent/cards/debug-context-card.tsx +0 -90
  272. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.tsx +0 -49
  273. package/renderer/components/docs-viewer/agent/cards/index.tsx +0 -50
  274. package/renderer/components/docs-viewer/agent/cards/response-options-card.tsx +0 -212
  275. package/renderer/components/docs-viewer/agent/cards/types.ts +0 -84
  276. package/renderer/components/docs-viewer/agent/chat-message.tsx +0 -17
  277. package/renderer/components/docs-viewer/agent/index.tsx +0 -6
  278. package/renderer/components/docs-viewer/agent/messages/assistant-message.tsx +0 -119
  279. package/renderer/components/docs-viewer/agent/messages/chat-message.tsx +0 -46
  280. package/renderer/components/docs-viewer/agent/messages/index.ts +0 -17
  281. package/renderer/components/docs-viewer/agent/messages/tool-call-display.tsx +0 -721
  282. package/renderer/components/docs-viewer/agent/messages/types.ts +0 -61
  283. package/renderer/components/docs-viewer/agent/messages/typing-indicator.tsx +0 -24
  284. package/renderer/components/docs-viewer/agent/messages/user-message.tsx +0 -51
  285. package/renderer/components/docs-viewer/code-editor/notes-mode.tsx +0 -1283
  286. package/renderer/components/docs-viewer/content/changelog-page.tsx +0 -331
  287. package/renderer/components/docs-viewer/content/doc-page.tsx +0 -367
  288. package/renderer/components/docs-viewer/content/documentation-viewer.tsx +0 -17
  289. package/renderer/components/docs-viewer/content/index.tsx +0 -29
  290. package/renderer/components/docs-viewer/content/not-found-page.tsx +0 -330
  291. package/renderer/components/docs-viewer/content/request-details.tsx +0 -330
  292. package/renderer/components/docs-viewer/content/sections/auth.tsx +0 -69
  293. package/renderer/components/docs-viewer/content/sections/body.tsx +0 -66
  294. package/renderer/components/docs-viewer/content/sections/headers.tsx +0 -43
  295. package/renderer/components/docs-viewer/content/sections/overview.tsx +0 -40
  296. package/renderer/components/docs-viewer/content/sections/parameters.tsx +0 -43
  297. package/renderer/components/docs-viewer/content/sections/responses.tsx +0 -87
  298. package/renderer/components/docs-viewer/global-auth-modal.tsx +0 -352
  299. package/renderer/components/docs-viewer/index.tsx +0 -1662
  300. package/renderer/components/docs-viewer/playground/auth-editor.tsx +0 -280
  301. package/renderer/components/docs-viewer/playground/body-editor.tsx +0 -221
  302. package/renderer/components/docs-viewer/playground/code-editor.tsx +0 -224
  303. package/renderer/components/docs-viewer/playground/code-snippet.tsx +0 -387
  304. package/renderer/components/docs-viewer/playground/graphql-playground.tsx +0 -745
  305. package/renderer/components/docs-viewer/playground/index.tsx +0 -671
  306. package/renderer/components/docs-viewer/playground/key-value-editor.tsx +0 -261
  307. package/renderer/components/docs-viewer/playground/method-selector.tsx +0 -60
  308. package/renderer/components/docs-viewer/playground/request-builder.tsx +0 -179
  309. package/renderer/components/docs-viewer/playground/request-tabs.tsx +0 -237
  310. package/renderer/components/docs-viewer/playground/response-cards/idle-card.tsx +0 -21
  311. package/renderer/components/docs-viewer/playground/response-cards/index.tsx +0 -93
  312. package/renderer/components/docs-viewer/playground/response-cards/loading-card.tsx +0 -16
  313. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.tsx +0 -23
  314. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.tsx +0 -268
  315. package/renderer/components/docs-viewer/playground/response-cards/types.ts +0 -82
  316. package/renderer/components/docs-viewer/playground/response-viewer.tsx +0 -43
  317. package/renderer/components/docs-viewer/search/index.ts +0 -2
  318. package/renderer/components/docs-viewer/search/search-dialog.tsx +0 -331
  319. package/renderer/components/docs-viewer/search/use-search.ts +0 -117
  320. package/renderer/components/docs-viewer/shared/markdown-renderer.tsx +0 -431
  321. package/renderer/components/docs-viewer/shared/method-badge.tsx +0 -41
  322. package/renderer/components/docs-viewer/shared/schema-viewer.tsx +0 -349
  323. package/renderer/components/docs-viewer/sidebar/collection-tree.tsx +0 -259
  324. package/renderer/components/docs-viewer/sidebar/endpoint-options.tsx +0 -316
  325. package/renderer/components/docs-viewer/sidebar/index.tsx +0 -282
  326. package/renderer/components/docs-viewer/sidebar/right-sidebar.tsx +0 -202
  327. package/renderer/components/docs-viewer/sidebar/sidebar-group.tsx +0 -118
  328. package/renderer/components/docs-viewer/sidebar/sidebar-item.tsx +0 -212
  329. package/renderer/components/docs-viewer/sidebar/sidebar-section.tsx +0 -38
  330. package/renderer/components/theme-provider.tsx +0 -11
  331. package/renderer/components/theme-toggle.tsx +0 -76
  332. package/renderer/components/ui/badge.tsx +0 -46
  333. package/renderer/components/ui/button.tsx +0 -59
  334. package/renderer/components/ui/dialog.tsx +0 -118
  335. package/renderer/components/ui/dropdown-menu.tsx +0 -257
  336. package/renderer/components/ui/input.tsx +0 -21
  337. package/renderer/components/ui/label.tsx +0 -24
  338. package/renderer/components/ui/navigation-menu.tsx +0 -168
  339. package/renderer/components/ui/select.tsx +0 -190
  340. package/renderer/components/ui/spinner.tsx +0 -114
  341. package/renderer/components/ui/tabs.tsx +0 -66
  342. package/renderer/components/ui/tooltip.tsx +0 -61
  343. package/renderer/hooks/use-code-copy.ts +0 -88
  344. package/renderer/hooks/use-openapi-title.ts +0 -44
  345. package/renderer/lib/api-docs/agent/index.ts +0 -6
  346. package/renderer/lib/api-docs/agent/indexer.ts +0 -323
  347. package/renderer/lib/api-docs/agent/spec-summary.ts +0 -335
  348. package/renderer/lib/api-docs/agent/types.ts +0 -116
  349. package/renderer/lib/api-docs/auth/auth-context.tsx +0 -225
  350. package/renderer/lib/api-docs/auth/auth-storage.ts +0 -87
  351. package/renderer/lib/api-docs/auth/crypto.ts +0 -89
  352. package/renderer/lib/api-docs/auth/index.ts +0 -4
  353. package/renderer/lib/api-docs/code-editor/db.ts +0 -164
  354. package/renderer/lib/api-docs/code-editor/hooks.ts +0 -266
  355. package/renderer/lib/api-docs/code-editor/mode-context.tsx +0 -207
  356. package/renderer/lib/api-docs/code-editor/types.ts +0 -105
  357. package/renderer/lib/api-docs/codegen/definitions.ts +0 -297
  358. package/renderer/lib/api-docs/codegen/har.ts +0 -251
  359. package/renderer/lib/api-docs/codegen/index.ts +0 -159
  360. package/renderer/lib/api-docs/factories.ts +0 -170
  361. package/renderer/lib/api-docs/mobile-context.tsx +0 -112
  362. package/renderer/lib/api-docs/navigation-context.tsx +0 -88
  363. package/renderer/lib/api-docs/parsers/graphql/README.md +0 -129
  364. package/renderer/lib/api-docs/parsers/graphql/index.ts +0 -91
  365. package/renderer/lib/api-docs/parsers/graphql/parser.ts +0 -491
  366. package/renderer/lib/api-docs/parsers/graphql/transformer.ts +0 -246
  367. package/renderer/lib/api-docs/parsers/graphql/types.ts +0 -283
  368. package/renderer/lib/api-docs/parsers/openapi/README.md +0 -32
  369. package/renderer/lib/api-docs/parsers/openapi/dereferencer.ts +0 -60
  370. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.ts +0 -574
  371. package/renderer/lib/api-docs/parsers/openapi/extractors/body.ts +0 -403
  372. package/renderer/lib/api-docs/parsers/openapi/extractors/index.ts +0 -232
  373. package/renderer/lib/api-docs/parsers/openapi/index.ts +0 -171
  374. package/renderer/lib/api-docs/parsers/openapi/transformer.ts +0 -278
  375. package/renderer/lib/api-docs/parsers/openapi/validator.ts +0 -31
  376. package/renderer/lib/api-docs/playground/context.tsx +0 -107
  377. package/renderer/lib/api-docs/playground/navigation-context.tsx +0 -124
  378. package/renderer/lib/api-docs/playground/request-builder.ts +0 -223
  379. package/renderer/lib/api-docs/playground/request-runner.ts +0 -282
  380. package/renderer/lib/api-docs/playground/types.ts +0 -35
  381. package/renderer/lib/api-docs/types.ts +0 -269
  382. package/renderer/lib/api-docs/utils.ts +0 -311
  383. package/renderer/lib/cache.ts +0 -193
  384. package/renderer/lib/docs/config/domain-schema.ts +0 -260
  385. package/renderer/lib/docs/config/index.ts +0 -43
  386. package/renderer/lib/docs/config/loader.ts +0 -142
  387. package/renderer/lib/docs/config/schema.ts +0 -308
  388. package/renderer/lib/docs/index.ts +0 -12
  389. package/renderer/lib/docs/mdx/compiler.ts +0 -176
  390. package/renderer/lib/docs/mdx/frontmatter.ts +0 -91
  391. package/renderer/lib/docs/mdx/index.ts +0 -26
  392. package/renderer/lib/docs/navigation/generator.ts +0 -348
  393. package/renderer/lib/docs/navigation/index.ts +0 -12
  394. package/renderer/lib/docs/navigation/types.ts +0 -123
  395. package/renderer/lib/docs-navigation-context.tsx +0 -80
  396. package/renderer/lib/multi-tenant/context.ts +0 -105
  397. package/renderer/lib/storage/blob.ts +0 -1083
  398. package/renderer/lib/utils/icons.ts +0 -48
  399. package/renderer/lib/utils.ts +0 -6
  400. package/renderer/next.config.ts +0 -76
@@ -0,0 +1,317 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useCallback, useMemo } from 'react';
4
+ import { CheckCircle, Circle, Trash, Plus, WarningCircle } from '@phosphor-icons/react';
5
+ import { Input } from '@/components/ui/input';
6
+ import { Button } from '@/components/ui/button';
7
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
8
+ import { cn } from '@/lib/utils';
9
+ let idCounter = 0;
10
+ const generateId = ()=>`kv_${Date.now()}_${idCounter++}`;
11
+ export function KeyValueEditor({ items, onChange, title = 'Parameters', keyLabel = 'Name', valueLabel = 'Value', showDescription = false, readOnly = false, showError = false }) {
12
+ // Ensure there's always an empty row at the end for new entries
13
+ const workingItems = useMemo(()=>{
14
+ if (items.length === 0 || items[items.length - 1].key !== '') {
15
+ return [
16
+ ...items,
17
+ {
18
+ id: generateId(),
19
+ key: '',
20
+ value: '',
21
+ active: true,
22
+ description: ''
23
+ }
24
+ ];
25
+ }
26
+ return items;
27
+ }, [
28
+ items
29
+ ]);
30
+ const updateItem = useCallback((index, updates)=>{
31
+ const newItems = workingItems.map((item, i)=>i === index ? {
32
+ ...item,
33
+ ...updates
34
+ } : item);
35
+ const filtered = newItems.filter((item, i)=>i === newItems.length - 1 || item.key !== '' || item.value !== '');
36
+ onChange(filtered.filter((item)=>item.key !== '' || item.value !== ''));
37
+ }, [
38
+ workingItems,
39
+ onChange
40
+ ]);
41
+ const deleteItem = useCallback((index)=>{
42
+ const newItems = workingItems.filter((_, i)=>i !== index);
43
+ onChange(newItems.filter((item)=>item.key !== ''));
44
+ }, [
45
+ workingItems,
46
+ onChange
47
+ ]);
48
+ const addItem = useCallback(()=>{
49
+ onChange([
50
+ ...items,
51
+ {
52
+ id: generateId(),
53
+ key: '',
54
+ value: '',
55
+ active: true,
56
+ description: ''
57
+ }
58
+ ]);
59
+ }, [
60
+ items,
61
+ onChange
62
+ ]);
63
+ const clearAll = useCallback(()=>{
64
+ onChange([]);
65
+ }, [
66
+ onChange
67
+ ]);
68
+ const toggleActive = useCallback((index)=>{
69
+ const item = workingItems[index];
70
+ if (item) {
71
+ updateItem(index, {
72
+ active: !item.active
73
+ });
74
+ }
75
+ }, [
76
+ workingItems,
77
+ updateItem
78
+ ]);
79
+ const activeCount = useMemo(()=>{
80
+ return items.filter((item)=>item.active && item.key).length;
81
+ }, [
82
+ items
83
+ ]);
84
+ const hasItems = items.some((item)=>item.key !== '');
85
+ return /*#__PURE__*/ _jsx(TooltipProvider, {
86
+ children: /*#__PURE__*/ _jsxs("div", {
87
+ className: "flex flex-1 flex-col h-full",
88
+ children: [
89
+ /*#__PURE__*/ _jsxs("div", {
90
+ className: cn("sticky top-0 z-10 flex items-center justify-between border-b bg-muted/30 px-4 py-2", showError ? "border-red-500 bg-red-500/5" : "border-border"),
91
+ children: [
92
+ /*#__PURE__*/ _jsxs("div", {
93
+ className: "flex items-center gap-2",
94
+ children: [
95
+ showError && /*#__PURE__*/ _jsx(WarningCircle, {
96
+ className: "h-4 w-4 text-red-500 animate-pulse",
97
+ weight: "fill"
98
+ }),
99
+ /*#__PURE__*/ _jsx("label", {
100
+ className: cn("truncate font-semibold text-sm", showError ? "text-red-500" : "text-foreground"),
101
+ children: title
102
+ }),
103
+ activeCount > 0 && /*#__PURE__*/ _jsx("span", {
104
+ className: "text-xs text-muted-foreground bg-muted px-2 py-0.5 rounded-full",
105
+ children: activeCount
106
+ })
107
+ ]
108
+ }),
109
+ /*#__PURE__*/ _jsxs("div", {
110
+ className: "flex items-center gap-1",
111
+ children: [
112
+ hasItems && /*#__PURE__*/ _jsxs(Tooltip, {
113
+ children: [
114
+ /*#__PURE__*/ _jsx(TooltipTrigger, {
115
+ asChild: true,
116
+ children: /*#__PURE__*/ _jsx(Button, {
117
+ variant: "ghost",
118
+ size: "icon",
119
+ className: "h-7 w-7 text-muted-foreground hover:text-destructive",
120
+ onClick: clearAll,
121
+ disabled: readOnly,
122
+ children: /*#__PURE__*/ _jsx(Trash, {
123
+ className: "h-3.5 w-3.5"
124
+ })
125
+ })
126
+ }),
127
+ /*#__PURE__*/ _jsx(TooltipContent, {
128
+ children: "Clear all"
129
+ })
130
+ ]
131
+ }),
132
+ /*#__PURE__*/ _jsxs(Tooltip, {
133
+ children: [
134
+ /*#__PURE__*/ _jsx(TooltipTrigger, {
135
+ asChild: true,
136
+ children: /*#__PURE__*/ _jsx(Button, {
137
+ variant: "ghost",
138
+ size: "icon",
139
+ className: "h-7 w-7 text-muted-foreground hover:text-foreground",
140
+ onClick: addItem,
141
+ disabled: readOnly,
142
+ children: /*#__PURE__*/ _jsx(Plus, {
143
+ className: "h-3.5 w-3.5"
144
+ })
145
+ })
146
+ }),
147
+ /*#__PURE__*/ _jsx(TooltipContent, {
148
+ children: "Add new"
149
+ })
150
+ ]
151
+ })
152
+ ]
153
+ })
154
+ ]
155
+ }),
156
+ /*#__PURE__*/ _jsxs("div", {
157
+ className: "flex-1 overflow-auto",
158
+ children: [
159
+ workingItems.length > 0 && /*#__PURE__*/ _jsxs("table", {
160
+ className: "w-full text-sm",
161
+ children: [
162
+ /*#__PURE__*/ _jsx("thead", {
163
+ className: "text-xs text-muted-foreground sticky top-0 z-10",
164
+ children: /*#__PURE__*/ _jsxs("tr", {
165
+ className: "bg-background border-b border-border/40 shadow-sm",
166
+ children: [
167
+ /*#__PURE__*/ _jsx("th", {
168
+ className: "text-left font-medium px-3 py-2.5 w-[45%] bg-background",
169
+ children: keyLabel
170
+ }),
171
+ /*#__PURE__*/ _jsx("th", {
172
+ className: "text-left font-medium px-3 py-2.5 w-[45%] bg-background",
173
+ children: valueLabel
174
+ }),
175
+ showDescription && /*#__PURE__*/ _jsx("th", {
176
+ className: "text-left font-medium px-3 py-2.5 bg-background",
177
+ children: "Description"
178
+ }),
179
+ /*#__PURE__*/ _jsx("th", {
180
+ className: "w-16 bg-background"
181
+ })
182
+ ]
183
+ })
184
+ }),
185
+ /*#__PURE__*/ _jsx("tbody", {
186
+ children: workingItems.map((item, index)=>{
187
+ const isLastEmpty = index === workingItems.length - 1 && !item.key;
188
+ return /*#__PURE__*/ _jsxs("tr", {
189
+ className: `border-b border-border/50 hover:bg-muted/20 group ${!item.active ? 'opacity-50' : ''}`,
190
+ children: [
191
+ /*#__PURE__*/ _jsx("td", {
192
+ className: "px-2 py-1.5",
193
+ children: /*#__PURE__*/ _jsx(Input, {
194
+ type: "text",
195
+ value: item.key,
196
+ onChange: (e)=>updateItem(index, {
197
+ key: e.target.value
198
+ }),
199
+ placeholder: isLastEmpty ? `Add ${keyLabel.toLowerCase()}...` : '',
200
+ className: "h-9 bg-background border border-border/60 focus-visible:ring-1 focus-visible:ring-primary/30 focus-visible:border-primary/50 placeholder:text-muted-foreground/50",
201
+ disabled: readOnly
202
+ })
203
+ }),
204
+ /*#__PURE__*/ _jsx("td", {
205
+ className: "px-2 py-1.5",
206
+ children: /*#__PURE__*/ _jsx(Input, {
207
+ type: "text",
208
+ value: item.value,
209
+ onChange: (e)=>updateItem(index, {
210
+ value: e.target.value
211
+ }),
212
+ placeholder: isLastEmpty ? `Add ${valueLabel.toLowerCase()}...` : '',
213
+ className: "h-9 bg-background border border-border/60 focus-visible:ring-1 focus-visible:ring-primary/30 focus-visible:border-primary/50 placeholder:text-muted-foreground/50",
214
+ disabled: readOnly
215
+ })
216
+ }),
217
+ showDescription && /*#__PURE__*/ _jsx("td", {
218
+ className: "px-2 py-1.5",
219
+ children: /*#__PURE__*/ _jsx(Input, {
220
+ type: "text",
221
+ value: item.description || '',
222
+ onChange: (e)=>updateItem(index, {
223
+ description: e.target.value
224
+ }),
225
+ placeholder: "",
226
+ className: "h-9 bg-background border border-border/60 focus-visible:ring-1 focus-visible:ring-primary/30 focus-visible:border-primary/50 text-muted-foreground",
227
+ disabled: readOnly
228
+ })
229
+ }),
230
+ /*#__PURE__*/ _jsx("td", {
231
+ className: "px-2 py-1.5",
232
+ children: /*#__PURE__*/ _jsx("div", {
233
+ className: "flex items-center justify-end gap-0.5",
234
+ children: !isLastEmpty && /*#__PURE__*/ _jsxs(_Fragment, {
235
+ children: [
236
+ /*#__PURE__*/ _jsxs(Tooltip, {
237
+ children: [
238
+ /*#__PURE__*/ _jsx(TooltipTrigger, {
239
+ asChild: true,
240
+ children: /*#__PURE__*/ _jsx(Button, {
241
+ variant: "ghost",
242
+ size: "icon",
243
+ className: "h-7 w-7",
244
+ onClick: ()=>toggleActive(index),
245
+ disabled: readOnly,
246
+ children: item.active ? /*#__PURE__*/ _jsx(CheckCircle, {
247
+ className: "h-4 w-4 text-green-500",
248
+ weight: "fill"
249
+ }) : /*#__PURE__*/ _jsx(Circle, {
250
+ className: "h-4 w-4 text-muted-foreground"
251
+ })
252
+ })
253
+ }),
254
+ /*#__PURE__*/ _jsx(TooltipContent, {
255
+ children: item.active ? 'Disable' : 'Enable'
256
+ })
257
+ ]
258
+ }),
259
+ /*#__PURE__*/ _jsxs(Tooltip, {
260
+ children: [
261
+ /*#__PURE__*/ _jsx(TooltipTrigger, {
262
+ asChild: true,
263
+ children: /*#__PURE__*/ _jsx(Button, {
264
+ variant: "ghost",
265
+ size: "icon",
266
+ className: "h-7 w-7 text-muted-foreground hover:text-destructive",
267
+ onClick: ()=>deleteItem(index),
268
+ disabled: readOnly,
269
+ children: /*#__PURE__*/ _jsx(Trash, {
270
+ className: "h-3.5 w-3.5"
271
+ })
272
+ })
273
+ }),
274
+ /*#__PURE__*/ _jsx(TooltipContent, {
275
+ children: "Remove"
276
+ })
277
+ ]
278
+ })
279
+ ]
280
+ })
281
+ })
282
+ })
283
+ ]
284
+ }, item.id);
285
+ })
286
+ })
287
+ ]
288
+ }),
289
+ !hasItems && workingItems.length <= 1 && /*#__PURE__*/ _jsxs("div", {
290
+ className: "flex flex-col items-center justify-center py-8 text-center",
291
+ children: [
292
+ /*#__PURE__*/ _jsxs("p", {
293
+ className: "text-xs text-muted-foreground",
294
+ children: [
295
+ "No ",
296
+ title.toLowerCase(),
297
+ " added yet"
298
+ ]
299
+ }),
300
+ /*#__PURE__*/ _jsxs("p", {
301
+ className: "text-xs text-muted-foreground mt-1",
302
+ children: [
303
+ "Click ",
304
+ /*#__PURE__*/ _jsx(Plus, {
305
+ className: "h-3 w-3 inline"
306
+ }),
307
+ " to add one"
308
+ ]
309
+ })
310
+ ]
311
+ })
312
+ ]
313
+ })
314
+ ]
315
+ })
316
+ });
317
+ }
@@ -0,0 +1,65 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { CaretDown, Check } from '@phosphor-icons/react';
4
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';
5
+ import { Button } from '@/components/ui/button';
6
+ const METHODS = [
7
+ 'GET',
8
+ 'POST',
9
+ 'PUT',
10
+ 'PATCH',
11
+ 'DELETE',
12
+ 'HEAD',
13
+ 'OPTIONS'
14
+ ];
15
+ const METHOD_COLORS = {
16
+ GET: 'text-green-500',
17
+ POST: 'text-blue-500',
18
+ PUT: 'text-orange-500',
19
+ PATCH: 'text-purple-500',
20
+ DELETE: 'text-red-500',
21
+ HEAD: 'text-gray-500',
22
+ OPTIONS: 'text-gray-500'
23
+ };
24
+ export function MethodSelector({ value, onChange, disabled = false }) {
25
+ return /*#__PURE__*/ _jsxs(DropdownMenu, {
26
+ children: [
27
+ /*#__PURE__*/ _jsx(DropdownMenuTrigger, {
28
+ asChild: true,
29
+ children: /*#__PURE__*/ _jsxs(Button, {
30
+ variant: "ghost",
31
+ className: `flex items-center gap-1 px-4 py-2 h-auto bg-muted/50 hover:bg-muted rounded-l-md rounded-r-none border-r border-border font-semibold text-sm ${METHOD_COLORS[value]}`,
32
+ disabled: disabled,
33
+ children: [
34
+ /*#__PURE__*/ _jsx("span", {
35
+ className: "w-16 text-left",
36
+ children: value
37
+ }),
38
+ /*#__PURE__*/ _jsx(CaretDown, {
39
+ className: "h-4 w-4",
40
+ weight: "bold"
41
+ })
42
+ ]
43
+ })
44
+ }),
45
+ /*#__PURE__*/ _jsx(DropdownMenuContent, {
46
+ align: "start",
47
+ className: "min-w-[120px]",
48
+ children: METHODS.map((method)=>/*#__PURE__*/ _jsxs(DropdownMenuItem, {
49
+ onClick: ()=>onChange(method),
50
+ className: `font-semibold ${METHOD_COLORS[method]}`,
51
+ children: [
52
+ /*#__PURE__*/ _jsx("span", {
53
+ className: "flex-1",
54
+ children: method
55
+ }),
56
+ value === method && /*#__PURE__*/ _jsx(Check, {
57
+ className: "h-4 w-4 ml-2",
58
+ weight: "bold"
59
+ })
60
+ ]
61
+ }, method))
62
+ })
63
+ ]
64
+ });
65
+ }
@@ -0,0 +1,181 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ export function RequestBuilder({ request, params, headers, body, variables, onParamsChange, onHeadersChange, onBodyChange, onVariablesChange }) {
4
+ return /*#__PURE__*/ _jsxs("div", {
5
+ className: "p-6 space-y-6",
6
+ children: [
7
+ /*#__PURE__*/ _jsxs("div", {
8
+ children: [
9
+ /*#__PURE__*/ _jsx("label", {
10
+ className: "block text-sm font-medium mb-2",
11
+ children: "Endpoint"
12
+ }),
13
+ /*#__PURE__*/ _jsx("input", {
14
+ type: "text",
15
+ value: request.endpoint,
16
+ disabled: true,
17
+ className: "w-full px-3 py-2 border rounded bg-muted text-sm font-mono"
18
+ })
19
+ ]
20
+ }),
21
+ variables.length > 0 && /*#__PURE__*/ _jsxs("div", {
22
+ children: [
23
+ /*#__PURE__*/ _jsx("h3", {
24
+ className: "text-sm font-semibold mb-2",
25
+ children: "Path Variables"
26
+ }),
27
+ /*#__PURE__*/ _jsx("div", {
28
+ className: "space-y-2",
29
+ children: variables.map((variable, index)=>/*#__PURE__*/ _jsxs("div", {
30
+ className: "flex gap-2",
31
+ children: [
32
+ /*#__PURE__*/ _jsx("input", {
33
+ type: "text",
34
+ value: variable.key,
35
+ disabled: true,
36
+ className: "flex-1 px-3 py-2 border rounded bg-muted text-sm font-mono"
37
+ }),
38
+ /*#__PURE__*/ _jsx("input", {
39
+ type: "text",
40
+ value: variable.value,
41
+ onChange: (e)=>{
42
+ const newVars = [
43
+ ...variables
44
+ ];
45
+ newVars[index].value = e.target.value;
46
+ onVariablesChange(newVars);
47
+ },
48
+ placeholder: "value",
49
+ className: "flex-1 px-3 py-2 border rounded text-sm"
50
+ })
51
+ ]
52
+ }, index))
53
+ })
54
+ ]
55
+ }),
56
+ params.length > 0 && /*#__PURE__*/ _jsxs("div", {
57
+ children: [
58
+ /*#__PURE__*/ _jsx("h3", {
59
+ className: "text-sm font-semibold mb-2",
60
+ children: "Query Parameters"
61
+ }),
62
+ /*#__PURE__*/ _jsx("div", {
63
+ className: "space-y-2",
64
+ children: params.map((param, index)=>/*#__PURE__*/ _jsxs("div", {
65
+ className: "flex gap-2 items-center",
66
+ children: [
67
+ /*#__PURE__*/ _jsx("input", {
68
+ type: "checkbox",
69
+ checked: param.active,
70
+ onChange: (e)=>{
71
+ const newParams = [
72
+ ...params
73
+ ];
74
+ newParams[index].active = e.target.checked;
75
+ onParamsChange(newParams);
76
+ },
77
+ className: "w-4 h-4"
78
+ }),
79
+ /*#__PURE__*/ _jsx("input", {
80
+ type: "text",
81
+ value: param.key,
82
+ disabled: true,
83
+ className: "flex-1 px-3 py-2 border rounded bg-muted text-sm font-mono"
84
+ }),
85
+ /*#__PURE__*/ _jsx("input", {
86
+ type: "text",
87
+ value: param.value,
88
+ onChange: (e)=>{
89
+ const newParams = [
90
+ ...params
91
+ ];
92
+ newParams[index].value = e.target.value;
93
+ onParamsChange(newParams);
94
+ },
95
+ placeholder: "value",
96
+ className: "flex-1 px-3 py-2 border rounded text-sm"
97
+ })
98
+ ]
99
+ }, index))
100
+ })
101
+ ]
102
+ }),
103
+ headers.length > 0 && /*#__PURE__*/ _jsxs("div", {
104
+ children: [
105
+ /*#__PURE__*/ _jsx("h3", {
106
+ className: "text-sm font-semibold mb-2",
107
+ children: "Headers"
108
+ }),
109
+ /*#__PURE__*/ _jsx("div", {
110
+ className: "space-y-2",
111
+ children: headers.map((header, index)=>/*#__PURE__*/ _jsxs("div", {
112
+ className: "flex gap-2 items-center",
113
+ children: [
114
+ /*#__PURE__*/ _jsx("input", {
115
+ type: "checkbox",
116
+ checked: header.active,
117
+ onChange: (e)=>{
118
+ const newHeaders = [
119
+ ...headers
120
+ ];
121
+ newHeaders[index].active = e.target.checked;
122
+ onHeadersChange(newHeaders);
123
+ },
124
+ className: "w-4 h-4"
125
+ }),
126
+ /*#__PURE__*/ _jsx("input", {
127
+ type: "text",
128
+ value: header.key,
129
+ disabled: true,
130
+ className: "flex-1 px-3 py-2 border rounded bg-muted text-sm font-mono"
131
+ }),
132
+ /*#__PURE__*/ _jsx("input", {
133
+ type: "text",
134
+ value: header.value,
135
+ onChange: (e)=>{
136
+ const newHeaders = [
137
+ ...headers
138
+ ];
139
+ newHeaders[index].value = e.target.value;
140
+ onHeadersChange(newHeaders);
141
+ },
142
+ placeholder: "value",
143
+ className: "flex-1 px-3 py-2 border rounded text-sm"
144
+ })
145
+ ]
146
+ }, index))
147
+ })
148
+ ]
149
+ }),
150
+ request.body.body !== null && request.body.contentType && /*#__PURE__*/ _jsxs("div", {
151
+ children: [
152
+ /*#__PURE__*/ _jsx("h3", {
153
+ className: "text-sm font-semibold mb-2",
154
+ children: "Request Body"
155
+ }),
156
+ /*#__PURE__*/ _jsx("div", {
157
+ className: "mb-2",
158
+ children: /*#__PURE__*/ _jsxs("span", {
159
+ className: "text-xs text-muted-foreground",
160
+ children: [
161
+ "Content-Type: ",
162
+ request.body.contentType
163
+ ]
164
+ })
165
+ }),
166
+ request.body.contentType === 'application/x-www-form-urlencoded' ? /*#__PURE__*/ _jsx("textarea", {
167
+ value: body || '',
168
+ onChange: (e)=>onBodyChange(e.target.value),
169
+ className: "w-full h-64 px-3 py-2 border rounded font-mono text-sm",
170
+ placeholder: "key1: value1 key2: value2"
171
+ }) : /*#__PURE__*/ _jsx("textarea", {
172
+ value: body || '',
173
+ onChange: (e)=>onBodyChange(e.target.value),
174
+ className: "w-full h-64 px-3 py-2 border rounded font-mono text-sm",
175
+ placeholder: "Enter request body..."
176
+ })
177
+ ]
178
+ })
179
+ ]
180
+ });
181
+ }