@whxway/loom 1.0.2 → 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 (353) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build/56416d4ae4ce586f.js +6 -0
  3. package/.next/build/56416d4ae4ce586f.js.map +5 -0
  4. package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js +206 -0
  5. package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js.map +8 -0
  6. package/.next/build/chunks/[root-of-the-server]__1f933tp._.js +500 -0
  7. package/.next/build/chunks/[root-of-the-server]__1f933tp._.js.map +11 -0
  8. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js +13 -0
  9. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js.map +5 -0
  10. package/.next/build/chunks/[turbopack]_runtime.js +890 -0
  11. package/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
  12. package/.next/build/chunks/node_modules_20v-8wl._.js +6824 -0
  13. package/.next/build/chunks/node_modules_20v-8wl._.js.map +47 -0
  14. package/.next/build/package.json +1 -0
  15. package/.next/build-manifest.json +3 -3
  16. package/.next/cache/.previewinfo +1 -0
  17. package/.next/cache/.rscinfo +1 -0
  18. package/.next/cache/.tsbuildinfo +1 -0
  19. package/.next/diagnostics/build-diagnostics.json +6 -0
  20. package/.next/diagnostics/framework.json +1 -0
  21. package/.next/diagnostics/route-bundle-stats.json +488 -0
  22. package/.next/fallback-build-manifest.json +3 -3
  23. package/.next/prerender-manifest.json +3 -3
  24. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(dashboard)/mcp/page.js.nft.json +1 -1
  27. package/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/(dashboard)/mcp/presets/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(dashboard)/models/[name]/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(dashboard)/playground/audio/speech/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/(dashboard)/playground/audio/transcription/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(dashboard)/playground/chat/page.js.nft.json +1 -1
  34. package/.next/server/app/(dashboard)/playground/chat/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/(dashboard)/playground/embedding/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/(dashboard)/playground/image/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/(dashboard)/playground/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/(dashboard)/playground/video/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/(dashboard)/providers/[name]/page.js.nft.json +1 -1
  40. package/.next/server/app/(dashboard)/providers/[name]/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/(dashboard)/providers/page.js.nft.json +1 -1
  42. package/.next/server/app/(dashboard)/providers/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/(dashboard)/settings/api-keys/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  45. package/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/(dashboard)/settings/users/page.js.nft.json +1 -1
  47. package/.next/server/app/(dashboard)/settings/users/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/_global-error.html +1 -1
  49. package/.next/server/app/_global-error.rsc +1 -1
  50. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  52. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  53. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  54. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  55. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/_not-found.html +2 -2
  57. package/.next/server/app/_not-found.rsc +3 -3
  58. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  59. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  60. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  61. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  62. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  63. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  64. package/.next/server/app/api/adapters/route.js.nft.json +1 -1
  65. package/.next/server/app/api/apikeys/[id]/route.js.nft.json +1 -1
  66. package/.next/server/app/api/apikeys/route.js.nft.json +1 -1
  67. package/.next/server/app/api/capabilities/route.js.nft.json +1 -1
  68. package/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  69. package/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  70. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  71. package/.next/server/app/api/health/route.js.nft.json +1 -1
  72. package/.next/server/app/api/login/route.js.nft.json +1 -1
  73. package/.next/server/app/api/logout/route.js.nft.json +1 -1
  74. package/.next/server/app/api/logs/generations/[id]/images/[idx]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/logs/generations/[id]/route.js.nft.json +1 -1
  76. package/.next/server/app/api/logs/generations/route.js.nft.json +1 -1
  77. package/.next/server/app/api/mcp/presets/route.js.nft.json +1 -1
  78. package/.next/server/app/api/mcp/servers/[id]/check/route.js.nft.json +1 -1
  79. package/.next/server/app/api/mcp/servers/[id]/route.js.nft.json +1 -1
  80. package/.next/server/app/api/mcp/servers/[id]/tools/route.js.nft.json +1 -1
  81. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  82. package/.next/server/app/api/messages/[id]/rate/route.js.nft.json +1 -1
  83. package/.next/server/app/api/models/[id]/route.js.nft.json +1 -1
  84. package/.next/server/app/api/models/route.js.nft.json +1 -1
  85. package/.next/server/app/api/ping/route.js.nft.json +1 -1
  86. package/.next/server/app/api/playground/chat/route.js.nft.json +1 -1
  87. package/.next/server/app/api/playground/embedding/route.js.nft.json +1 -1
  88. package/.next/server/app/api/providers/[id]/check/route.js.nft.json +1 -1
  89. package/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  90. package/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  91. package/.next/server/app/api/providers/probe/route.js.nft.json +1 -1
  92. package/.next/server/app/api/providers/reload/route.js.nft.json +1 -1
  93. package/.next/server/app/api/providers/route.js.nft.json +1 -1
  94. package/.next/server/app/api/stats/models/[name]/route.js.nft.json +1 -1
  95. package/.next/server/app/api/stats/route.js.nft.json +1 -1
  96. package/.next/server/app/api/tools/[id]/route.js.nft.json +1 -1
  97. package/.next/server/app/api/tools/route.js.nft.json +1 -1
  98. package/.next/server/app/api/users/[username]/route.js.nft.json +1 -1
  99. package/.next/server/app/api/users/me/preferences/route.js.nft.json +1 -1
  100. package/.next/server/app/api/users/me/route.js.nft.json +1 -1
  101. package/.next/server/app/api/users/route.js.nft.json +1 -1
  102. package/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  103. package/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  104. package/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  105. package/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  106. package/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  107. package/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  108. package/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  109. package/.next/server/app/api/v1/videos/[id]/content/route.js.nft.json +1 -1
  110. package/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  111. package/.next/server/app/api/v1/videos/route.js.nft.json +1 -1
  112. package/.next/server/app/api/variants/route.js.nft.json +1 -1
  113. package/.next/server/app/index.html +2 -2
  114. package/.next/server/app/index.rsc +3 -3
  115. package/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +1 -1
  116. package/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  117. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  118. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  119. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  120. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  121. package/.next/server/app/login.html +2 -2
  122. package/.next/server/app/login.rsc +3 -3
  123. package/.next/server/app/login.segments/!KGF1dGgp/login/__PAGE__.segment.rsc +1 -1
  124. package/.next/server/app/login.segments/!KGF1dGgp/login.segment.rsc +1 -1
  125. package/.next/server/app/login.segments/!KGF1dGgp.segment.rsc +1 -1
  126. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  127. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  128. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  129. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  130. package/.next/server/app/logs.html +2 -2
  131. package/.next/server/app/logs.rsc +3 -3
  132. package/.next/server/app/logs.segments/!KGRhc2hib2FyZCk/logs/__PAGE__.segment.rsc +1 -1
  133. package/.next/server/app/logs.segments/!KGRhc2hib2FyZCk/logs.segment.rsc +1 -1
  134. package/.next/server/app/logs.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  135. package/.next/server/app/logs.segments/_full.segment.rsc +3 -3
  136. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  137. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  138. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  139. package/.next/server/app/mcp/presets.html +2 -2
  140. package/.next/server/app/mcp/presets.rsc +5 -5
  141. package/.next/server/app/mcp/presets.segments/!KGRhc2hib2FyZCk/mcp/presets/__PAGE__.segment.rsc +2 -2
  142. package/.next/server/app/mcp/presets.segments/!KGRhc2hib2FyZCk/mcp/presets.segment.rsc +1 -1
  143. package/.next/server/app/mcp/presets.segments/!KGRhc2hib2FyZCk/mcp.segment.rsc +1 -1
  144. package/.next/server/app/mcp/presets.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  145. package/.next/server/app/mcp/presets.segments/_full.segment.rsc +5 -5
  146. package/.next/server/app/mcp/presets.segments/_head.segment.rsc +1 -1
  147. package/.next/server/app/mcp/presets.segments/_index.segment.rsc +2 -2
  148. package/.next/server/app/mcp/presets.segments/_tree.segment.rsc +2 -2
  149. package/.next/server/app/mcp.html +2 -2
  150. package/.next/server/app/mcp.rsc +5 -5
  151. package/.next/server/app/mcp.segments/!KGRhc2hib2FyZCk/mcp/__PAGE__.segment.rsc +2 -2
  152. package/.next/server/app/mcp.segments/!KGRhc2hib2FyZCk/mcp.segment.rsc +1 -1
  153. package/.next/server/app/mcp.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  154. package/.next/server/app/mcp.segments/_full.segment.rsc +5 -5
  155. package/.next/server/app/mcp.segments/_head.segment.rsc +1 -1
  156. package/.next/server/app/mcp.segments/_index.segment.rsc +2 -2
  157. package/.next/server/app/mcp.segments/_tree.segment.rsc +2 -2
  158. package/.next/server/app/playground/audio/speech.html +2 -2
  159. package/.next/server/app/playground/audio/speech.rsc +3 -3
  160. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk/playground/audio/speech/__PAGE__.segment.rsc +1 -1
  161. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk/playground/audio/speech.segment.rsc +1 -1
  162. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk/playground/audio.segment.rsc +1 -1
  163. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  164. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  165. package/.next/server/app/playground/audio/speech.segments/_full.segment.rsc +3 -3
  166. package/.next/server/app/playground/audio/speech.segments/_head.segment.rsc +1 -1
  167. package/.next/server/app/playground/audio/speech.segments/_index.segment.rsc +2 -2
  168. package/.next/server/app/playground/audio/speech.segments/_tree.segment.rsc +2 -2
  169. package/.next/server/app/playground/audio/transcription.html +2 -2
  170. package/.next/server/app/playground/audio/transcription.rsc +3 -3
  171. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk/playground/audio/transcription/__PAGE__.segment.rsc +1 -1
  172. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk/playground/audio/transcription.segment.rsc +1 -1
  173. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk/playground/audio.segment.rsc +1 -1
  174. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  175. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  176. package/.next/server/app/playground/audio/transcription.segments/_full.segment.rsc +3 -3
  177. package/.next/server/app/playground/audio/transcription.segments/_head.segment.rsc +1 -1
  178. package/.next/server/app/playground/audio/transcription.segments/_index.segment.rsc +2 -2
  179. package/.next/server/app/playground/audio/transcription.segments/_tree.segment.rsc +2 -2
  180. package/.next/server/app/playground/chat.html +2 -2
  181. package/.next/server/app/playground/chat.rsc +5 -5
  182. package/.next/server/app/playground/chat.segments/!KGRhc2hib2FyZCk/playground/chat/__PAGE__.segment.rsc +2 -2
  183. package/.next/server/app/playground/chat.segments/!KGRhc2hib2FyZCk/playground/chat.segment.rsc +1 -1
  184. package/.next/server/app/playground/chat.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  185. package/.next/server/app/playground/chat.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  186. package/.next/server/app/playground/chat.segments/_full.segment.rsc +5 -5
  187. package/.next/server/app/playground/chat.segments/_head.segment.rsc +1 -1
  188. package/.next/server/app/playground/chat.segments/_index.segment.rsc +2 -2
  189. package/.next/server/app/playground/chat.segments/_tree.segment.rsc +2 -2
  190. package/.next/server/app/playground/embedding.html +2 -2
  191. package/.next/server/app/playground/embedding.rsc +3 -3
  192. package/.next/server/app/playground/embedding.segments/!KGRhc2hib2FyZCk/playground/embedding/__PAGE__.segment.rsc +1 -1
  193. package/.next/server/app/playground/embedding.segments/!KGRhc2hib2FyZCk/playground/embedding.segment.rsc +1 -1
  194. package/.next/server/app/playground/embedding.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  195. package/.next/server/app/playground/embedding.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  196. package/.next/server/app/playground/embedding.segments/_full.segment.rsc +3 -3
  197. package/.next/server/app/playground/embedding.segments/_head.segment.rsc +1 -1
  198. package/.next/server/app/playground/embedding.segments/_index.segment.rsc +2 -2
  199. package/.next/server/app/playground/embedding.segments/_tree.segment.rsc +2 -2
  200. package/.next/server/app/playground/image.html +2 -2
  201. package/.next/server/app/playground/image.rsc +3 -3
  202. package/.next/server/app/playground/image.segments/!KGRhc2hib2FyZCk/playground/image/__PAGE__.segment.rsc +1 -1
  203. package/.next/server/app/playground/image.segments/!KGRhc2hib2FyZCk/playground/image.segment.rsc +1 -1
  204. package/.next/server/app/playground/image.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  205. package/.next/server/app/playground/image.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  206. package/.next/server/app/playground/image.segments/_full.segment.rsc +3 -3
  207. package/.next/server/app/playground/image.segments/_head.segment.rsc +1 -1
  208. package/.next/server/app/playground/image.segments/_index.segment.rsc +2 -2
  209. package/.next/server/app/playground/image.segments/_tree.segment.rsc +2 -2
  210. package/.next/server/app/playground/video.html +2 -2
  211. package/.next/server/app/playground/video.rsc +3 -3
  212. package/.next/server/app/playground/video.segments/!KGRhc2hib2FyZCk/playground/video/__PAGE__.segment.rsc +1 -1
  213. package/.next/server/app/playground/video.segments/!KGRhc2hib2FyZCk/playground/video.segment.rsc +1 -1
  214. package/.next/server/app/playground/video.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  215. package/.next/server/app/playground/video.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  216. package/.next/server/app/playground/video.segments/_full.segment.rsc +3 -3
  217. package/.next/server/app/playground/video.segments/_head.segment.rsc +1 -1
  218. package/.next/server/app/playground/video.segments/_index.segment.rsc +2 -2
  219. package/.next/server/app/playground/video.segments/_tree.segment.rsc +2 -2
  220. package/.next/server/app/playground.html +2 -2
  221. package/.next/server/app/playground.rsc +3 -3
  222. package/.next/server/app/playground.segments/!KGRhc2hib2FyZCk/playground/__PAGE__.segment.rsc +1 -1
  223. package/.next/server/app/playground.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  224. package/.next/server/app/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  225. package/.next/server/app/playground.segments/_full.segment.rsc +3 -3
  226. package/.next/server/app/playground.segments/_head.segment.rsc +1 -1
  227. package/.next/server/app/playground.segments/_index.segment.rsc +2 -2
  228. package/.next/server/app/playground.segments/_tree.segment.rsc +2 -2
  229. package/.next/server/app/providers.html +2 -2
  230. package/.next/server/app/providers.rsc +5 -5
  231. package/.next/server/app/providers.segments/!KGRhc2hib2FyZCk/providers/__PAGE__.segment.rsc +2 -2
  232. package/.next/server/app/providers.segments/!KGRhc2hib2FyZCk/providers.segment.rsc +1 -1
  233. package/.next/server/app/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  234. package/.next/server/app/providers.segments/_full.segment.rsc +5 -5
  235. package/.next/server/app/providers.segments/_head.segment.rsc +1 -1
  236. package/.next/server/app/providers.segments/_index.segment.rsc +2 -2
  237. package/.next/server/app/providers.segments/_tree.segment.rsc +2 -2
  238. package/.next/server/app/settings/api-keys.html +2 -2
  239. package/.next/server/app/settings/api-keys.rsc +3 -3
  240. package/.next/server/app/settings/api-keys.segments/!KGRhc2hib2FyZCk/settings/api-keys/__PAGE__.segment.rsc +1 -1
  241. package/.next/server/app/settings/api-keys.segments/!KGRhc2hib2FyZCk/settings/api-keys.segment.rsc +1 -1
  242. package/.next/server/app/settings/api-keys.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  243. package/.next/server/app/settings/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  244. package/.next/server/app/settings/api-keys.segments/_full.segment.rsc +3 -3
  245. package/.next/server/app/settings/api-keys.segments/_head.segment.rsc +1 -1
  246. package/.next/server/app/settings/api-keys.segments/_index.segment.rsc +2 -2
  247. package/.next/server/app/settings/api-keys.segments/_tree.segment.rsc +2 -2
  248. package/.next/server/app/settings/users.html +2 -2
  249. package/.next/server/app/settings/users.rsc +5 -5
  250. package/.next/server/app/settings/users.segments/!KGRhc2hib2FyZCk/settings/users/__PAGE__.segment.rsc +2 -2
  251. package/.next/server/app/settings/users.segments/!KGRhc2hib2FyZCk/settings/users.segment.rsc +1 -1
  252. package/.next/server/app/settings/users.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  253. package/.next/server/app/settings/users.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  254. package/.next/server/app/settings/users.segments/_full.segment.rsc +5 -5
  255. package/.next/server/app/settings/users.segments/_head.segment.rsc +1 -1
  256. package/.next/server/app/settings/users.segments/_index.segment.rsc +2 -2
  257. package/.next/server/app/settings/users.segments/_tree.segment.rsc +2 -2
  258. package/.next/server/app/settings.html +2 -2
  259. package/.next/server/app/settings.rsc +5 -5
  260. package/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  261. package/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  262. package/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  263. package/.next/server/app/settings.segments/_full.segment.rsc +5 -5
  264. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  265. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  266. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  267. package/.next/server/chunks/[root-of-the-server]__02sypva._.js +2 -2
  268. package/.next/server/chunks/[root-of-the-server]__02sypva._.js.map +1 -1
  269. package/.next/server/chunks/[root-of-the-server]__0g3mnim._.js +4 -1
  270. package/.next/server/chunks/[root-of-the-server]__0g3mnim._.js.map +1 -1
  271. package/.next/server/chunks/[root-of-the-server]__0myi8j1._.js +2 -2
  272. package/.next/server/chunks/[root-of-the-server]__0myi8j1._.js.map +1 -1
  273. package/.next/server/chunks/[root-of-the-server]__1qg3d87._.js +2 -2
  274. package/.next/server/chunks/[root-of-the-server]__1qg3d87._.js.map +1 -1
  275. package/.next/server/chunks/ssr/_001fhst._.js +3 -0
  276. package/.next/server/chunks/ssr/_001fhst._.js.map +1 -0
  277. package/.next/server/chunks/ssr/_02wtd-0._.js +3 -0
  278. package/.next/server/chunks/ssr/_02wtd-0._.js.map +1 -0
  279. package/.next/server/chunks/ssr/_05ufvn1._.js +9 -0
  280. package/.next/server/chunks/ssr/_05ufvn1._.js.map +1 -0
  281. package/.next/server/chunks/ssr/{_1fd20ju._.js → _066w-6f._.js} +2 -2
  282. package/.next/server/chunks/ssr/{_1fd20ju._.js.map → _066w-6f._.js.map} +1 -1
  283. package/.next/server/chunks/ssr/_0gd7kq_._.js +1 -1
  284. package/.next/server/chunks/ssr/_0gd7kq_._.js.map +1 -1
  285. package/.next/server/chunks/ssr/_0k-6auj._.js +3 -0
  286. package/.next/server/chunks/ssr/_0k-6auj._.js.map +1 -0
  287. package/.next/server/chunks/ssr/_0qo9tx1._.js +3 -0
  288. package/.next/server/chunks/ssr/_0qo9tx1._.js.map +1 -0
  289. package/.next/server/chunks/ssr/_0uom5g-._.js +9 -0
  290. package/.next/server/chunks/ssr/_0uom5g-._.js.map +1 -0
  291. package/.next/server/chunks/ssr/_1b09eqp._.js +1 -1
  292. package/.next/server/chunks/ssr/_1b09eqp._.js.map +1 -1
  293. package/.next/server/chunks/ssr/_1oi0iqt._.js +9 -0
  294. package/.next/server/chunks/ssr/_1oi0iqt._.js.map +1 -0
  295. package/.next/server/chunks/ssr/_1q3gglq._.js +3 -0
  296. package/.next/server/chunks/ssr/_1q3gglq._.js.map +1 -0
  297. package/.next/server/chunks/ssr/_1y5sreb._.js +3 -0
  298. package/.next/server/chunks/ssr/_1y5sreb._.js.map +1 -0
  299. package/.next/server/chunks/ssr/_1zlpzyk._.js +1 -1
  300. package/.next/server/chunks/ssr/_1zlpzyk._.js.map +1 -1
  301. package/.next/server/chunks/ssr/app_(dashboard)_mcp_page_tsx_0cg7pz9._.js +1 -1
  302. package/.next/server/chunks/ssr/app_(dashboard)_mcp_page_tsx_0cg7pz9._.js.map +1 -1
  303. package/.next/server/middleware-build-manifest.js +3 -3
  304. package/.next/server/pages/404.html +2 -2
  305. package/.next/server/pages/500.html +1 -1
  306. package/.next/server/server-reference-manifest.js +1 -1
  307. package/.next/server/server-reference-manifest.json +1 -1
  308. package/.next/static/chunks/0brzabhj3foow.js +1 -0
  309. package/.next/static/chunks/0cbg1vmtl84ae.css +1 -0
  310. package/.next/static/chunks/0hf0pedij0d6a.js +7 -0
  311. package/.next/static/chunks/1lo5yg9gvb9eg.js +7 -0
  312. package/.next/static/chunks/1s-rfyrjre6lb.js +1 -0
  313. package/.next/static/chunks/27siz43i4h5l7.js +9 -0
  314. package/.next/static/chunks/29p-wdja_cbgh.js +11 -0
  315. package/.next/static/chunks/396ikhrcofosq.js +7 -0
  316. package/.next/static/chunks/3m3fw3fmcc301.js +7 -0
  317. package/.next/trace +2 -0
  318. package/.next/trace-build +1 -1
  319. package/.next/types/cache-life.d.ts +145 -0
  320. package/.next/types/routes.d.ts +139 -0
  321. package/.next/types/validator.ts +682 -0
  322. package/bin/loom.mjs +1 -1
  323. package/package.json +1 -1
  324. package/.next/server/chunks/ssr/_0g6iz5n._.js +0 -3
  325. package/.next/server/chunks/ssr/_0g6iz5n._.js.map +0 -1
  326. package/.next/server/chunks/ssr/_0mim08o._.js +0 -3
  327. package/.next/server/chunks/ssr/_0mim08o._.js.map +0 -1
  328. package/.next/server/chunks/ssr/_0xm-krv._.js +0 -9
  329. package/.next/server/chunks/ssr/_0xm-krv._.js.map +0 -1
  330. package/.next/server/chunks/ssr/_0zxn_u0._.js +0 -3
  331. package/.next/server/chunks/ssr/_0zxn_u0._.js.map +0 -1
  332. package/.next/server/chunks/ssr/_151pht4._.js +0 -9
  333. package/.next/server/chunks/ssr/_151pht4._.js.map +0 -1
  334. package/.next/server/chunks/ssr/_18tl_0o._.js +0 -9
  335. package/.next/server/chunks/ssr/_18tl_0o._.js.map +0 -1
  336. package/.next/server/chunks/ssr/_19nuoa6._.js +0 -9
  337. package/.next/server/chunks/ssr/_19nuoa6._.js.map +0 -1
  338. package/.next/server/chunks/ssr/_1ax02l9._.js +0 -3
  339. package/.next/server/chunks/ssr/_1ax02l9._.js.map +0 -1
  340. package/.next/server/chunks/ssr/_1fze3ic._.js +0 -9
  341. package/.next/server/chunks/ssr/_1fze3ic._.js.map +0 -1
  342. package/.next/static/chunks/0zryggvaj_s87.js +0 -7
  343. package/.next/static/chunks/16bx44gr1d_ij.js +0 -7
  344. package/.next/static/chunks/172e7ymu9a3w9.js +0 -1
  345. package/.next/static/chunks/1_w-1rm5wy0l7.css +0 -1
  346. package/.next/static/chunks/2j_bpzzylp1un.js +0 -9
  347. package/.next/static/chunks/2r2pwisd9bptv.js +0 -11
  348. package/.next/static/chunks/3at-42v-_yh7y.js +0 -7
  349. package/.next/static/chunks/3bp0ieicfxx5n.js +0 -1
  350. package/.next/static/chunks/3et56kszc9f9a.js +0 -7
  351. /package/.next/static/{S-TxD5uw__EHY12mebgvS → wCZkC7ZaYrxG37d-e2tac}/_buildManifest.js +0 -0
  352. /package/.next/static/{S-TxD5uw__EHY12mebgvS → wCZkC7ZaYrxG37d-e2tac}/_clientMiddlewareManifest.js +0 -0
  353. /package/.next/static/{S-TxD5uw__EHY12mebgvS → wCZkC7ZaYrxG37d-e2tac}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/dialog.tsx","../../../../components/ui/badge.tsx","../../../../lib/api/logs.ts","../../../../lib/api/providers.ts","../../../../lib/api/users.ts","../../../../lib/api/index.ts","../../../../lib/api/capabilities.ts","../../../../lib/api/adapters.ts","../../../../lib/api/variants.ts","../../../../lib/api/tools.ts","../../../../node_modules/lucide-react/src/icons/trash-2.ts","../../../../node_modules/%40radix-ui/react-alert-dialog/dist/index.mjs","../../../../components/ui/alert-dialog.tsx","../../../../components/ui/confirm-dialog.tsx","../../../../components/ui/table.tsx","../../../../node_modules/lucide-react/src/icons/plus.ts"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\"\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n","import { defineResource } from \"./resource\";\nimport type { Paginated } from \"@/lib/schemas/common\";\nimport type { LogDetailDTO, LogFilterParams, LogListItemDTO } from \"@/lib/schemas/log\";\n\n/** Read-only resource: only list + get are used. */\nexport const logs = defineResource<\n LogDetailDTO,\n never,\n never,\n LogFilterParams,\n Paginated<LogListItemDTO>\n>({\n path: \"/logs/generations\",\n key: \"logs\",\n // Logs change as new generations happen, but for the same filter\n // a 30s cache is fine — the user can hit the explicit Refresh\n // button to force a refetch. Stops re-fetching on every nav back\n // to the page within a session.\n staleTime: 30_000,\n});\n","\"use client\";\nimport { useMutation, useQuery, useQueryClient, type UseMutationOptions } from \"@tanstack/react-query\";\nimport { defineResource } from \"./resource\";\nimport { fetcher } from \"./client\";\nimport type { ModelDTO } from \"@/lib/schemas/model\";\nimport type { ProviderCreateInput, ProviderDTO, ProviderUpdateInput } from \"@/lib/schemas/provider\";\n\nconst base = defineResource<\n ProviderDTO,\n ProviderCreateInput,\n ProviderUpdateInput,\n Record<string, unknown>,\n ProviderDTO[]\n>({\n path: \"/providers\",\n key: \"providers\",\n listShape: \"array\",\n staleTime: 60_000,\n invalidates: [\"models\"],\n});\n\nexport interface ProviderCheckResult {\n ok: boolean;\n models?: number;\n error?: string;\n latency_ms?: number;\n}\n\nexport interface ProviderProbeResult {\n ok: boolean;\n error?: string;\n latency_ms: number;\n}\n\nexport const providers = {\n ...base,\n\n // ---- custom endpoints ----\n listModels: (id: string) =>\n fetcher<ModelDTO[]>(`/providers/${encodeURIComponent(id)}/models`),\n reload: () =>\n fetcher<null>(\"/providers/reload\", { method: \"POST\" }),\n check: (id: string) =>\n fetcher<ProviderCheckResult>(\n `/providers/${encodeURIComponent(id)}/check`,\n { method: \"POST\" },\n ),\n /** Probe an arbitrary health-check URL without touching any saved\n * provider — used by the form's Test button so it validates the\n * URL currently in the input, not the (possibly stale) saved one. */\n probe: (healthCheckUrl: string) =>\n fetcher<ProviderProbeResult>(\"/providers/probe\", {\n method: \"POST\",\n body: JSON.stringify({ health_check_url: healthCheckUrl }),\n headers: { \"Content-Type\": \"application/json\" },\n }),\n\n // ---- custom hooks ----\n useModels: (id: string | undefined | null) =>\n useQuery({\n queryKey: [...base.keys.one(id ?? \"\"), \"models\"] as const,\n queryFn: () => providers.listModels(id!),\n enabled: !!id,\n }),\n\n /** POST /providers/reload — clears the discovery cache. Cascades same\n * invalidation as a CRUD mutation (providers + models). */\n useReload: (opts?: Omit<UseMutationOptions<null, Error, void>, \"mutationFn\">) => {\n const invalidate = base.useInvalidate();\n return useMutation<null, Error, void>({\n mutationFn: providers.reload,\n ...opts,\n onSuccess: (data, vars, onMutateResult, context) => {\n invalidate();\n opts?.onSuccess?.(data, vars, onMutateResult, context);\n },\n });\n },\n\n /** POST /providers/:id/check — runs the health probe. On success the\n * server has updated `last_health_*`, so we invalidate the providers\n * cache to surface the new status pill. */\n useCheck: (\n id: string | undefined | null,\n opts?: Omit<UseMutationOptions<ProviderCheckResult, Error, void>, \"mutationFn\">,\n ) => {\n const invalidate = base.useInvalidate();\n return useMutation<ProviderCheckResult, Error, void>({\n mutationFn: () => providers.check(id!),\n ...opts,\n onSuccess: (data, vars, onMutateResult, context) => {\n invalidate();\n opts?.onSuccess?.(data, vars, onMutateResult, context);\n },\n });\n },\n};\n","import { defineResource } from \"./resource\";\nimport type { Paginated } from \"@/lib/schemas/common\";\nimport type { UserCreateInput, UserDTO, UserFilterParams, UserUpdateInput } from \"@/lib/schemas/user\";\n\nexport const users = defineResource<\n UserDTO,\n UserCreateInput,\n UserUpdateInput,\n UserFilterParams,\n Paginated<UserDTO>\n>({\n path: \"/users\",\n key: \"users\",\n staleTime: 60_000,\n});\n","// Per-domain api modules. Each `*Resource` object exposes both raw fetch\n// functions and TanStack Query hooks generated from a single descriptor —\n// see lib/api/resource.ts. Custom (non-CRUD) endpoints are colocated in\n// the same module.\n\nexport { auth } from \"./auth\";\nexport { users } from \"./users\";\nexport { providers } from \"./providers\";\nexport { models } from \"./models\";\nexport { apiKeys } from \"./apikeys\";\nexport { logs } from \"./logs\";\nexport { conversations, messages } from \"./conversations\";\nexport { gateway } from \"./gateway\";\nexport { capabilities } from \"./capabilities\";\nexport { preferences } from \"./preferences\";\nexport { adapters } from \"./adapters\";\nexport { variants } from \"./variants\";\nexport { tools } from \"./tools\";\nexport { mcpServers } from \"./mcp\";\nexport { stats } from \"./stats\";\n\nexport { ApiError, fetcher, rawFetch, withQuery, API_BASE } from \"./client\";\nexport { defineResource } from \"./resource\";\n","import { defineResource } from \"./resource\";\nimport type { CapabilityDTO } from \"@/lib/schemas/capability\";\n\n/** Read-only catalog. */\nexport const capabilities = defineResource<\n CapabilityDTO,\n never,\n never,\n Record<string, unknown>,\n CapabilityDTO[]\n>({\n path: \"/capabilities\",\n key: \"capabilities\",\n listShape: \"array\",\n staleTime: 60_000,\n});\n","import { defineResource } from \"./resource\";\nimport type { AdapterDescriptor } from \"@/lib/schemas/adapter\";\n\n/** Read-only catalog of registered ProviderAdapter ids. */\nexport const adapters = defineResource<\n AdapterDescriptor,\n never,\n never,\n Record<string, unknown>,\n AdapterDescriptor[]\n>({\n path: \"/adapters\",\n key: \"adapters\",\n listShape: \"array\",\n staleTime: 60_000,\n});\n","import { defineResource } from \"./resource\";\nimport type { VariantDescriptor } from \"@/lib/schemas/variant\";\n\n/** Read-only catalog of registered upstream API variants. */\nexport const variants = defineResource<\n VariantDescriptor,\n never,\n never,\n Record<string, unknown>,\n VariantDescriptor[]\n>({\n path: \"/variants\",\n key: \"variants\",\n listShape: \"array\",\n staleTime: 60_000,\n});\n","import { defineResource } from \"./resource\";\nimport type { ToolCreateInput, ToolDTO, ToolUpdateInput } from \"@/lib/schemas/tool\";\n\nexport const tools = defineResource<\n ToolDTO,\n ToolCreateInput,\n ToolUpdateInput,\n Record<string, unknown>,\n ToolDTO[]\n>({\n path: \"/tools\",\n key: \"tools\",\n listShape: \"array\",\n staleTime: 60_000,\n});\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M10 11v6', key: 'nco0om' }],\n ['path', { d: 'M14 11v6', key: 'outv1u' }],\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6', key: 'miytrc' }],\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2', key: 'e791ji' }],\n];\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTQgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('trash-2', __iconNode);\n\nexport default Trash2;\n","\"use client\";\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar Slottable = createSlottable(\"AlertDialogContent\");\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n // Animation kept minimal — fade + subtle zoom only,\n // matching the regular Dialog primitive. The default\n // shadcn classes (slide-in-from-left-1/2 +\n // slide-in-from-top-[48%]) caused a jarring\n // edge-fly effect for what's already a centered\n // modal. Visual style follows the Dialog primitive\n // verbatim (rounded-lg + gap-4 + p-6 + max-w-lg).\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { AlertTriangle, Loader2 } from \"lucide-react\"\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@/components/ui/alert-dialog\"\nimport { cn } from \"@/lib/utils\"\n\ninterface ConfirmDialogProps {\n /** Truthy → dialog open. Passing the resource being acted on (e.g. the\n * row to delete) doubles as the open flag — the caller stores it in\n * state, then `onOpenChange(false)` clears it. */\n open: boolean\n onOpenChange: (open: boolean) => void\n title: React.ReactNode\n description: React.ReactNode\n /** Action button label. Default: \"Confirm\". */\n confirmLabel?: React.ReactNode\n cancelLabel?: React.ReactNode\n /** When true, action button is styled as destructive (red) and a\n * warning icon is prepended to the title. */\n destructive?: boolean\n /** Disable buttons + show a spinner on the action while the mutation runs. */\n isLoading?: boolean\n onConfirm: () => void\n}\n\n/**\n * Single source of truth for confirm-style alert dialogs (delete, revoke,\n * etc.). Replaces ~25 lines of AlertDialog boilerplate at every call site.\n *\n * Idiomatic usage:\n * const [toDelete, setToDelete] = useState<X | null>(null)\n * const remove = xResource.useDelete({ onSuccess: () => setToDelete(null) })\n * <ConfirmDialog\n * open={!!toDelete}\n * onOpenChange={(o) => !o && setToDelete(null)}\n * title=\"Delete X?\"\n * description={<>This will permanently delete <b>{toDelete?.name}</b>.</>}\n * destructive\n * isLoading={remove.isPending}\n * onConfirm={() => toDelete && remove.mutate(toDelete.id)}\n * />\n */\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n destructive,\n isLoading,\n onConfirm,\n}: ConfirmDialogProps) {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <div className=\"flex items-start gap-3\">\n {destructive && (\n <div className=\"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-destructive/10 text-destructive\">\n <AlertTriangle className=\"h-4 w-4\" />\n </div>\n )}\n <div className=\"flex-1 space-y-1.5\">\n <AlertDialogTitle className={cn(destructive && \"text-foreground\")}>\n {title}\n </AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </div>\n </div>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel disabled={isLoading}>{cancelLabel}</AlertDialogCancel>\n <AlertDialogAction\n onClick={(e) => {\n e.preventDefault()\n onConfirm()\n }}\n disabled={isLoading}\n className={cn(\n destructive &&\n \"bg-destructive text-white shadow-sm shadow-destructive/30 hover:bg-destructive/90 focus-visible:ring-destructive/40\",\n )}\n >\n {isLoading && <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />}\n {confirmLabel}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n];\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('plus', __iconNode);\n\nexport default Plus;\n"],"names":["Dialog","props","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","DialogContent","children","showCloseButton","DialogHeader","DialogFooter","DialogTitle","DialogDescription","badgeVariants","variants","variant","default","secondary","destructive","outline","defaultVariants","Badge","asChild","Comp","logs","path","key","staleTime","base","listShape","invalidates","providers","listModels","id","encodeURIComponent","reload","method","check","probe","healthCheckUrl","body","JSON","stringify","health_check_url","headers","useModels","queryKey","keys","one","queryFn","enabled","useReload","opts","invalidate","useInvalidate","mutationFn","onSuccess","data","vars","onMutateResult","context","useCheck","users","capabilities","ROOT_NAME","createAlertDialogContext","createAlertDialogScope","useDialogScope","AlertDialog","__scopeAlertDialog","alertDialogProps","dialogScope","modal","displayName","TRIGGER_NAME","AlertDialogTrigger","forwardedRef","triggerProps","ref","PORTAL_NAME","AlertDialogPortal","portalProps","OVERLAY_NAME","AlertDialogOverlay","overlayProps","CONTENT_NAME","AlertDialogContentProvider","useAlertDialogContentContext","Slottable","AlertDialogContent","contentProps","contentRef","composedRefs","cancelRef","contentName","titleName","TITLE_NAME","docsSlug","scope","role","onOpenAutoFocus","event","preventDefault","current","focus","preventScroll","onPointerDownOutside","onInteractOutside","DescriptionWarning","AlertDialogTitle","titleProps","DESCRIPTION_NAME","AlertDialogDescription","descriptionProps","ACTION_NAME","AlertDialogAction","actionProps","CANCEL_NAME","AlertDialogCancel","cancelProps","MESSAGE","hasDescription","document","getElementById","getAttribute","console","warn","Root2","Trigger2","Portal2","Overlay2","Content2","Action","Cancel","Title2","Description2","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":"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","ignoreList":[10,11,15]}
@@ -0,0 +1,3 @@
1
+ module.exports=[587532,a=>{"use strict";let b=(0,a.i(883706).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",0,b],587532)},703130,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Card",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card",className:(0,c.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...d})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-6",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-muted-foreground text-sm",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("leading-none font-semibold",a),...d})}])},130656,a=>{"use strict";a.s(["clamp",0,function(a,[b,c]){return Math.min(c,Math.max(b,a))}])},504699,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["default",0,b])},528094,a=>{"use strict";var b=a.i(572131),c=a.i(30553),d=a.i(187924),e=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),f=b.forwardRef((a,b)=>(0,d.jsx)(c.Primitive.span,{...a,ref:b,style:{...e,...a.style}}));f.displayName="VisuallyHidden",a.s(["Root",0,f,"VISUALLY_HIDDEN_STYLES",0,e])},205522,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Input",0,function({className:a,type:d,...e}){return(0,b.jsx)("input",{type:d,"data-slot":"input",className:(0,c.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...e})}])},596221,a=>{"use strict";var b=a.i(404650);a.s(["Loader2",()=>b.default])},917171,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(30553),e=c.forwardRef((a,c)=>(0,b.jsx)(d.Primitive.label,{...a,ref:c,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));e.displayName="Label";var f=a.i(497895);a.s(["Label",0,function({className:a,...c}){return(0,b.jsx)(e,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...c})}],917171)},77994,a=>{"use strict";var b=a.i(572131);a.s(["usePrevious",0,function(a){let c=b.useRef({value:a,previous:a});return b.useMemo(()=>(c.current.value!==a&&(c.current.previous=c.current.value,c.current.value=a),c.current.previous),[a])}])},524634,a=>{"use strict";let b=(0,a.i(349682).defineResource)({path:"/models",key:"models",listShape:"array",staleTime:6e4,invalidates:["providers"]});a.s(["models",0,b])},734020,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(497895);let e={openai:"/providers/openai.svg",claude:"/providers/claude.svg",anthropic:"/providers/claude.svg",gemini:"/providers/gemini.svg",google:"/providers/gemini.svg",vertexai:"/providers/vertexai.svg",vertex:"/providers/vertex.svg",deepseek:"/providers/deepseek.png",moonshot:"/providers/moonshot.png",zhipu:"/providers/zhipu.png",aliyun:"/providers/alibabacloud.png",alibabacloud:"/providers/alibabacloud.png",siliconflow:"/providers/siliconflow.svg",tei:"/providers/tei.svg",transformers:"/providers/transformers.svg",baichuan:"/providers/baichuan.png",volcengine:"/providers/volcengine.png",stepfun:"/providers/stepfun.png"},f=new Set(["openai","vertex","vertexai","siliconflow"]),g=(0,c.memo)(function({providerName:a,className:g,width:h=24,height:i=24}){let[j,k]=(0,c.useState)(!1),l=a.toLowerCase().replace(/[^a-z0-9_]/g,""),m=e[l],n=f.has(l);return m&&!j?(0,b.jsx)("img",{src:m,alt:"",width:h,height:i,loading:"lazy",className:(0,d.cn)("object-contain shrink-0",n&&"dark:invert",g),onError:()=>k(!0)}):(0,b.jsx)("span",{className:(0,d.cn)("rounded bg-muted flex items-center justify-center text-[8px] font-bold shrink-0",g),style:{width:h,height:i},children:a.substring(0,2).toUpperCase()})});a.s(["ProviderIcon",0,g])},577768,a=>{"use strict";var b=a.i(187924),c=a.i(596221),d=a.i(497895);let e={sm:"h-3.5 w-3.5",md:"h-5 w-5",lg:"h-8 w-8"};a.s(["LoadingState",0,function({label:a="Loading…",size:f="md",variant:g="centered",className:h}){return"inline"===g?(0,b.jsxs)("div",{className:(0,d.cn)("flex items-center gap-2 text-sm text-muted-foreground",h),children:[(0,b.jsx)(c.Loader2,{className:(0,d.cn)(e[f],"animate-spin")}),a&&(0,b.jsx)("span",{children:a})]}):(0,b.jsxs)("div",{className:(0,d.cn)("flex flex-col items-center justify-center gap-3 py-12 text-muted-foreground",h),children:[(0,b.jsx)(c.Loader2,{className:(0,d.cn)(e[f],"animate-spin")}),a&&(0,b.jsx)("p",{className:"text-sm",children:a})]})}])},621958,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(507554),e=a.i(750104),f=a.i(224050),g=a.i(777192),h=a.i(30553),i=a.i(507827),j=a.i(225152),k=a.i(392843),l="Tabs",[m,n]=(0,e.createContextScope)(l,[f.createRovingFocusGroupScope]),o=(0,f.createRovingFocusGroupScope)(),[p,q]=m(l),r=c.forwardRef((a,c)=>{let{__scopeTabs:d,value:e,onValueChange:f,defaultValue:g,orientation:m="horizontal",dir:n,activationMode:o="automatic",...q}=a,r=(0,i.useDirection)(n),[s,t]=(0,j.useControllableState)({prop:e,onChange:f,defaultProp:g??"",caller:l});return(0,b.jsx)(p,{scope:d,baseId:(0,k.useId)(),value:s,onValueChange:t,orientation:m,dir:r,activationMode:o,children:(0,b.jsx)(h.Primitive.div,{dir:r,"data-orientation":m,...q,ref:c})})});r.displayName=l;var s="TabsList",t=c.forwardRef((a,c)=>{let{__scopeTabs:d,loop:e=!0,...g}=a,i=q(s,d),j=o(d);return(0,b.jsx)(f.Root,{asChild:!0,...j,orientation:i.orientation,dir:i.dir,loop:e,children:(0,b.jsx)(h.Primitive.div,{role:"tablist","aria-orientation":i.orientation,...g,ref:c})})});t.displayName=s;var u="TabsTrigger",v=c.forwardRef((a,c)=>{let{__scopeTabs:e,value:g,disabled:i=!1,...j}=a,k=q(u,e),l=o(e),m=y(k.baseId,g),n=z(k.baseId,g),p=g===k.value;return(0,b.jsx)(f.Item,{asChild:!0,...l,focusable:!i,active:p,children:(0,b.jsx)(h.Primitive.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":n,"data-state":p?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:m,...j,ref:c,onMouseDown:(0,d.composeEventHandlers)(a.onMouseDown,a=>{i||0!==a.button||!1!==a.ctrlKey?a.preventDefault():k.onValueChange(g)}),onKeyDown:(0,d.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&k.onValueChange(g)}),onFocus:(0,d.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==k.activationMode;p||i||!a||k.onValueChange(g)})})})});v.displayName=u;var w="TabsContent",x=c.forwardRef((a,d)=>{let{__scopeTabs:e,value:f,forceMount:i,children:j,...k}=a,l=q(w,e),m=y(l.baseId,f),n=z(l.baseId,f),o=f===l.value,p=c.useRef(o);return c.useEffect(()=>{let a=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,b.jsx)(g.Presence,{present:i||o,children:({present:c})=>(0,b.jsx)(h.Primitive.div,{"data-state":o?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":m,hidden:!c,id:n,tabIndex:0,...k,ref:d,style:{...a.style,animationDuration:p.current?"0s":void 0},children:c&&j})})});function y(a,b){return`${a}-trigger-${b}`}function z(a,b){return`${a}-content-${b}`}x.displayName=w;var A=a.i(497895);a.s(["Tabs",0,function({className:a,...c}){return(0,b.jsx)(r,{"data-slot":"tabs",className:(0,A.cn)("flex flex-col gap-2",a),...c})},"TabsContent",0,function({className:a,...c}){return(0,b.jsx)(x,{"data-slot":"tabs-content",className:(0,A.cn)("flex-1 outline-none",a),...c})},"TabsList",0,function({className:a,...c}){return(0,b.jsx)(t,{"data-slot":"tabs-list",className:(0,A.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",a),...c})},"TabsTrigger",0,function({className:a,...c}){return(0,b.jsx)(v,{"data-slot":"tabs-trigger",className:(0,A.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...c})}],621958)},654816,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(507554),e=a.i(470121),f=a.i(750104),g=a.i(596743),h=a.i(392843),i=a.i(704691),j=(a.i(692616),a.i(777192)),k=a.i(30553),l=a.i(811011),m=a.i(225152),n=a.i(528094),[o,p]=(0,f.createContextScope)("Tooltip",[i.createPopperScope]),q=(0,i.createPopperScope)(),r="TooltipProvider",s="tooltip.open",[t,u]=o(r),v=a=>{let{__scopeTooltip:d,delayDuration:e=700,skipDelayDuration:f=300,disableHoverableContent:g=!1,children:h}=a,i=c.useRef(!0),j=c.useRef(!1),k=c.useRef(0);return c.useEffect(()=>{let a=k.current;return()=>window.clearTimeout(a)},[]),(0,b.jsx)(t,{scope:d,isOpenDelayedRef:i,delayDuration:e,onOpen:c.useCallback(()=>{f<=0||(window.clearTimeout(k.current),i.current=!1)},[f]),onClose:c.useCallback(()=>{f<=0||(window.clearTimeout(k.current),k.current=window.setTimeout(()=>i.current=!0,f))},[f]),isPointerInTransitRef:j,onPointerInTransitChange:c.useCallback(a=>{j.current=a},[]),disableHoverableContent:g,children:h})};v.displayName=r;var w="Tooltip",[x,y]=o(w),z=a=>{let{__scopeTooltip:d,children:e,open:f,defaultOpen:g,onOpenChange:j,disableHoverableContent:k,delayDuration:l}=a,n=u(w,a.__scopeTooltip),o=q(d),[p,r]=c.useState(null),t=(0,h.useId)(),v=c.useRef(0),y=k??n.disableHoverableContent,z=l??n.delayDuration,A=c.useRef(!1),[B,C]=(0,m.useControllableState)({prop:f,defaultProp:g??!1,onChange:a=>{a?(n.onOpen(),document.dispatchEvent(new CustomEvent(s))):n.onClose(),j?.(a)},caller:w}),D=c.useMemo(()=>B?A.current?"delayed-open":"instant-open":"closed",[B]),E=c.useCallback(()=>{window.clearTimeout(v.current),v.current=0,A.current=!1,C(!0)},[C]),F=c.useCallback(()=>{window.clearTimeout(v.current),v.current=0,C(!1)},[C]),G=c.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{A.current=!0,C(!0),v.current=0},z)},[z,C]);return c.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),(0,b.jsx)(i.Root,{...o,children:(0,b.jsx)(x,{scope:d,contentId:t,open:B,stateAttribute:D,trigger:p,onTriggerChange:r,onTriggerEnter:c.useCallback(()=>{n.isOpenDelayedRef.current?G():E()},[n.isOpenDelayedRef,G,E]),onTriggerLeave:c.useCallback(()=>{y?F():(window.clearTimeout(v.current),v.current=0)},[F,y]),onOpen:E,onClose:F,disableHoverableContent:y,children:e})})};z.displayName=w;var A="TooltipTrigger",B=c.forwardRef((a,f)=>{let{__scopeTooltip:g,...h}=a,j=y(A,g),l=u(A,g),m=q(g),n=c.useRef(null),o=(0,e.useComposedRefs)(f,n,j.onTriggerChange),p=c.useRef(!1),r=c.useRef(!1),s=c.useCallback(()=>p.current=!1,[]);return c.useEffect(()=>()=>document.removeEventListener("pointerup",s),[s]),(0,b.jsx)(i.Anchor,{asChild:!0,...m,children:(0,b.jsx)(k.Primitive.button,{"aria-describedby":j.open?j.contentId:void 0,"data-state":j.stateAttribute,...h,ref:o,onPointerMove:(0,d.composeEventHandlers)(a.onPointerMove,a=>{"touch"!==a.pointerType&&(r.current||l.isPointerInTransitRef.current||(j.onTriggerEnter(),r.current=!0))}),onPointerLeave:(0,d.composeEventHandlers)(a.onPointerLeave,()=>{j.onTriggerLeave(),r.current=!1}),onPointerDown:(0,d.composeEventHandlers)(a.onPointerDown,()=>{j.open&&j.onClose(),p.current=!0,document.addEventListener("pointerup",s,{once:!0})}),onFocus:(0,d.composeEventHandlers)(a.onFocus,()=>{p.current||j.onOpen()}),onBlur:(0,d.composeEventHandlers)(a.onBlur,j.onClose),onClick:(0,d.composeEventHandlers)(a.onClick,j.onClose)})})});B.displayName=A;var[C,D]=o("TooltipPortal",{forceMount:void 0}),E="TooltipContent",F=c.forwardRef((a,c)=>{let d=D(E,a.__scopeTooltip),{forceMount:e=d.forceMount,side:f="top",...g}=a,h=y(E,a.__scopeTooltip);return(0,b.jsx)(j.Presence,{present:e||h.open,children:h.disableHoverableContent?(0,b.jsx)(K,{side:f,...g,ref:c}):(0,b.jsx)(G,{side:f,...g,ref:c})})}),G=c.forwardRef((a,d)=>{let f=y(E,a.__scopeTooltip),g=u(E,a.__scopeTooltip),h=c.useRef(null),i=(0,e.useComposedRefs)(d,h),[j,k]=c.useState(null),{trigger:l,onClose:m}=f,n=h.current,{onPointerInTransitChange:o}=g,p=c.useCallback(()=>{k(null),o(!1)},[o]),q=c.useCallback((a,b)=>{let c,d=a.currentTarget,e={x:a.clientX,y:a.clientY},f=function(a,b){let c=Math.abs(b.top-a.y),d=Math.abs(b.bottom-a.y),e=Math.abs(b.right-a.x),f=Math.abs(b.left-a.x);switch(Math.min(c,d,e,f)){case f:return"left";case e:return"right";case c:return"top";case d:return"bottom";default:throw Error("unreachable")}}(e,d.getBoundingClientRect());k(((c=[...function(a,b,c=5){let d=[];switch(b){case"top":d.push({x:a.x-c,y:a.y+c},{x:a.x+c,y:a.y+c});break;case"bottom":d.push({x:a.x-c,y:a.y-c},{x:a.x+c,y:a.y-c});break;case"left":d.push({x:a.x+c,y:a.y-c},{x:a.x+c,y:a.y+c});break;case"right":d.push({x:a.x-c,y:a.y-c},{x:a.x-c,y:a.y+c})}return d}(e,f),...function(a){let{top:b,right:c,bottom:d,left:e}=a;return[{x:e,y:b},{x:c,y:b},{x:c,y:d},{x:e,y:d}]}(b.getBoundingClientRect())].slice()).sort((a,b)=>a.x<b.x?-1:a.x>b.x?1:a.y<b.y?-1:1*!!(a.y>b.y)),function(a){if(a.length<=1)return a.slice();let b=[];for(let c=0;c<a.length;c++){let d=a[c];for(;b.length>=2;){let a=b[b.length-1],c=b[b.length-2];if((a.x-c.x)*(d.y-c.y)>=(a.y-c.y)*(d.x-c.x))b.pop();else break}b.push(d)}b.pop();let c=[];for(let b=a.length-1;b>=0;b--){let d=a[b];for(;c.length>=2;){let a=c[c.length-1],b=c[c.length-2];if((a.x-b.x)*(d.y-b.y)>=(a.y-b.y)*(d.x-b.x))c.pop();else break}c.push(d)}return(c.pop(),1===b.length&&1===c.length&&b[0].x===c[0].x&&b[0].y===c[0].y)?b:b.concat(c)}(c))),o(!0)},[o]);return c.useEffect(()=>()=>p(),[p]),c.useEffect(()=>{if(l&&n){let a=a=>q(a,n),b=a=>q(a,l);return l.addEventListener("pointerleave",a),n.addEventListener("pointerleave",b),()=>{l.removeEventListener("pointerleave",a),n.removeEventListener("pointerleave",b)}}},[l,n,q,p]),c.useEffect(()=>{if(j){let a=a=>{let b=a.target,c={x:a.clientX,y:a.clientY},d=l?.contains(b)||n?.contains(b),e=!function(a,b){let{x:c,y:d}=a,e=!1;for(let a=0,f=b.length-1;a<b.length;f=a++){let g=b[a],h=b[f],i=g.x,j=g.y,k=h.x,l=h.y;j>d!=l>d&&c<(k-i)*(d-j)/(l-j)+i&&(e=!e)}return e}(c,j);d?p():e&&(p(),m())};return document.addEventListener("pointermove",a),()=>document.removeEventListener("pointermove",a)}},[l,n,j,m,p]),(0,b.jsx)(K,{...a,ref:i})}),[H,I]=o(w,{isInside:!1}),J=(0,l.createSlottable)("TooltipContent"),K=c.forwardRef((a,d)=>{let{__scopeTooltip:e,children:f,"aria-label":h,onEscapeKeyDown:j,onPointerDownOutside:k,...l}=a,m=y(E,e),o=q(e),{onClose:p}=m;return c.useEffect(()=>(document.addEventListener(s,p),()=>document.removeEventListener(s,p)),[p]),c.useEffect(()=>{if(m.trigger){let a=a=>{a.target instanceof Node&&a.target.contains(m.trigger)&&p()};return window.addEventListener("scroll",a,{capture:!0}),()=>window.removeEventListener("scroll",a,{capture:!0})}},[m.trigger,p]),(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:j,onPointerDownOutside:k,onFocusOutside:a=>a.preventDefault(),onDismiss:p,children:(0,b.jsxs)(i.Content,{"data-state":m.stateAttribute,...o,...l,ref:d,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,b.jsx)(J,{children:f}),(0,b.jsx)(H,{scope:e,isInside:!0,children:(0,b.jsx)(n.Root,{id:m.contentId,role:"tooltip",children:h||f})})]})})});F.displayName=E;var L="TooltipArrow";c.forwardRef((a,c)=>{let{__scopeTooltip:d,...e}=a,f=q(d);return I(L,d).isInside?null:(0,b.jsx)(i.Arrow,{...f,...e,ref:c})}).displayName=L;var M=a.i(497895);let N=c.forwardRef(({className:a,sideOffset:c=4,...d},e)=>(0,b.jsx)(F,{ref:e,sideOffset:c,className:(0,M.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d}));N.displayName=F.displayName,a.s(["Tooltip",0,z,"TooltipContent",0,N,"TooltipProvider",0,v,"TooltipTrigger",0,B],654816)},50522,a=>{"use strict";var b=a.i(111989);a.s(["ChevronRight",()=>b.default])},809941,a=>{"use strict";let b=(0,a.i(883706).default)("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);a.s(["ArrowUpDown",0,b],809941)},510809,a=>{"use strict";var b=a.i(187924),c=a.i(340695),d=a.i(654816),e=a.i(328790),f=a.i(596221);a.s(["RefreshButton",0,function({onClick:a,isLoading:g,tooltip:h="Refresh",className:i}){return(0,b.jsx)(d.TooltipProvider,{delayDuration:300,children:(0,b.jsxs)(d.Tooltip,{children:[(0,b.jsx)(d.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(c.Button,{variant:"ghost",size:"icon",onClick:a,disabled:g,className:`h-8 w-8 text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-colors ${i||""}`,children:g?(0,b.jsx)(f.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(e.RefreshCcw,{className:"h-4 w-4"})})}),(0,b.jsx)(d.TooltipContent,{side:"bottom",className:"text-xs",children:h})]})})}])},177156,141379,a=>{"use strict";var b=a.i(883706);let c=(0,b.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Eye",0,c],177156);let d=(0,b.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);a.s(["EyeOff",0,d],141379)}];
2
+
3
+ //# sourceMappingURL=_1q3gglq._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/lucide-react/src/icons/search.ts","../../../../components/ui/card.tsx","../../../../node_modules/%40radix-ui/number/src/number.ts","../../../../node_modules/lucide-react/src/icons/chevron-down.ts","../../../../node_modules/%40radix-ui/react-visually-hidden/src/visually-hidden.tsx","../../../../components/ui/input.tsx","../../../../node_modules/%40radix-ui/react-label/dist/index.mjs","../../../../components/ui/label.tsx","../../../../node_modules/%40radix-ui/react-use-previous/src/use-previous.tsx","../../../../lib/api/models.ts","../../../../components/ProviderIcon.tsx","../../../../components/ui/loading-state.tsx","../../../../node_modules/%40radix-ui/react-tabs/dist/index.mjs","../../../../components/ui/tabs.tsx","../../../../node_modules/%40radix-ui/react-tooltip/dist/index.mjs","../../../../components/ui/tooltip.tsx","../../../../node_modules/lucide-react/src/icons/arrow-up-down.ts","../../../../components/ui/refresh-button.tsx","../../../../node_modules/lucide-react/src/icons/eye-off.ts","../../../../node_modules/lucide-react/src/icons/eye.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","function clamp(value: number, [min, max]: [number, number]): number {\n return Math.min(max, Math.max(min, value));\n}\n\nexport { clamp };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * VisuallyHidden\n * -----------------------------------------------------------------------------------------------*/\n\nconst VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: 'absolute',\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n wordWrap: 'normal',\n}) satisfies React.CSSProperties;\n\nconst NAME = 'VisuallyHidden';\n\ntype VisuallyHiddenElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface VisuallyHiddenProps extends PrimitiveSpanProps {}\n\nconst VisuallyHidden = React.forwardRef<VisuallyHiddenElement, VisuallyHiddenProps>(\n (props, forwardedRef) => {\n return (\n <Primitive.span\n {...props}\n ref={forwardedRef}\n style={{ ...VISUALLY_HIDDEN_STYLES, ...props.style }}\n />\n );\n },\n);\n\nVisuallyHidden.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = VisuallyHidden;\n\nexport {\n VisuallyHidden,\n //\n Root,\n //\n VISUALLY_HIDDEN_STYLES,\n};\nexport type { VisuallyHiddenProps };\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","import * as React from 'react';\n\nfunction usePrevious<T>(value: T) {\n const ref = React.useRef({ value, previous: value });\n\n // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\nexport { usePrevious };\n","import { defineResource } from \"./resource\";\nimport type { ModelCreateInput, ModelDTO, ModelUpdateInput } from \"@/lib/schemas/model\";\n\nexport const models = defineResource<\n ModelDTO,\n ModelCreateInput,\n ModelUpdateInput,\n Record<string, unknown>,\n ModelDTO[]\n>({\n path: \"/models\",\n key: \"models\",\n listShape: \"array\",\n staleTime: 60_000,\n invalidates: [\"providers\"],\n});\n","import React, { useState, memo } from 'react';\nimport { cn } from '@/lib/utils';\n\ninterface ProviderIconProps {\n providerName: string;\n className?: string;\n width?: number;\n height?: number;\n}\n\nconst PROVIDER_LOGOS: Record<string, string> = {\n 'openai': '/providers/openai.svg',\n 'claude': '/providers/claude.svg',\n 'anthropic': '/providers/claude.svg',\n 'gemini': '/providers/gemini.svg',\n 'google': '/providers/gemini.svg',\n 'vertexai': '/providers/vertexai.svg',\n 'vertex': '/providers/vertex.svg',\n 'deepseek': '/providers/deepseek.png',\n 'moonshot': '/providers/moonshot.png',\n 'zhipu': '/providers/zhipu.png',\n 'aliyun': '/providers/alibabacloud.png',\n 'alibabacloud': '/providers/alibabacloud.png',\n 'siliconflow': '/providers/siliconflow.svg',\n 'tei': '/providers/tei.svg',\n 'transformers': '/providers/transformers.svg',\n 'baichuan': '/providers/baichuan.png',\n 'volcengine': '/providers/volcengine.png',\n 'stepfun': '/providers/stepfun.png',\n};\n\nconst DARK_INVERT_PROVIDERS = new Set(['openai', 'vertex', 'vertexai', 'siliconflow']);\n\nexport const ProviderIcon = memo(function ProviderIcon({\n providerName,\n className,\n width = 24,\n height = 24\n}: ProviderIconProps) {\n const [imgError, setImgError] = useState(false);\n\n const normalizedName = providerName.toLowerCase().replace(/[^a-z0-9_]/g, '');\n const logoSrc = PROVIDER_LOGOS[normalizedName];\n const isDarkInvert = DARK_INVERT_PROVIDERS.has(normalizedName);\n\n if (logoSrc && !imgError) {\n return (\n <img\n src={logoSrc}\n alt=\"\"\n width={width}\n height={height}\n loading=\"lazy\"\n className={cn(\"object-contain shrink-0\", isDarkInvert && \"dark:invert\", className)}\n onError={() => setImgError(true)}\n />\n );\n }\n\n return (\n <span\n className={cn(\n \"rounded bg-muted flex items-center justify-center text-[8px] font-bold shrink-0\",\n className\n )}\n style={{ width, height }}\n >\n {providerName.substring(0, 2).toUpperCase()}\n </span>\n );\n})\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface LoadingStateProps {\n label?: React.ReactNode\n /** Visual size. Default \"md\". */\n size?: \"sm\" | \"md\" | \"lg\"\n /** Layout: \"centered\" fills its container (e.g. inside a card / panel);\n * \"inline\" lays out horizontally for in-row use. Default \"centered\". */\n variant?: \"centered\" | \"inline\"\n className?: string\n}\n\nconst SPINNER_SIZE: Record<NonNullable<LoadingStateProps[\"size\"]>, string> = {\n sm: \"h-3.5 w-3.5\",\n md: \"h-5 w-5\",\n lg: \"h-8 w-8\",\n}\n\n/**\n * Single primitive for \"loading…\" UI everywhere a list/page/section is\n * waiting on data. Standardizes spinner glyph, animation, color, and\n * label placement so all pages look the same.\n */\nexport function LoadingState({\n label = \"Loading…\",\n size = \"md\",\n variant = \"centered\",\n className,\n}: LoadingStateProps) {\n if (variant === \"inline\") {\n return (\n <div className={cn(\"flex items-center gap-2 text-sm text-muted-foreground\", className)}>\n <Loader2 className={cn(SPINNER_SIZE[size], \"animate-spin\")} />\n {label && <span>{label}</span>}\n </div>\n )\n }\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center gap-3 py-12 text-muted-foreground\",\n className,\n )}\n >\n <Loader2 className={cn(SPINNER_SIZE[size], \"animate-spin\")} />\n {label && <p className=\"text-sm\">{label}</p>}\n </div>\n )\n}\n","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [skipDelayDuration]),\n onClose: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n if (event.target instanceof Node && event.target.contains(context.trigger)) {\n onClose();\n }\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 16-4 4-4-4', key: 'f6ql7i' }],\n ['path', { d: 'M17 20V4', key: '1ejh1v' }],\n ['path', { d: 'm3 8 4-4 4 4', key: '11wl7u' }],\n ['path', { d: 'M7 4v16', key: '1glfcx' }],\n];\n\n/**\n * @component @name ArrowUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMTYtNCA0LTQtNCIgLz4KICA8cGF0aCBkPSJNMTcgMjBWNCIgLz4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-up-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowUpDown = createLucideIcon('arrow-up-down', __iconNode);\n\nexport default ArrowUpDown;\n","\"use client\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\"\nimport { RefreshCcw, Loader2 } from \"lucide-react\"\n\ninterface RefreshButtonProps {\n onClick: () => void\n isLoading?: boolean\n tooltip?: string\n className?: string\n}\n\nexport function RefreshButton({\n onClick,\n isLoading,\n tooltip = \"Refresh\",\n className,\n}: RefreshButtonProps) {\n return (\n <TooltipProvider delayDuration={300}>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={onClick}\n disabled={isLoading}\n className={`h-8 w-8 text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-colors ${className || \"\"}`}\n >\n {isLoading ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <RefreshCcw className=\"h-4 w-4\" />\n )}\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\" className=\"text-xs\">\n {tooltip}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49',\n key: 'ct8e1f',\n },\n ],\n ['path', { d: 'M14.084 14.158a3 3 0 0 1-4.242-4.242', key: '151rxh' }],\n [\n 'path',\n {\n d: 'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143',\n key: '13bj9a',\n },\n ],\n ['path', { d: 'm2 2 20 20', key: '1ooewy' }],\n];\n\n/**\n * @component @name EyeOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5IiAvPgogIDxwYXRoIGQ9Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgLz4KICA8cGF0aCBkPSJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst EyeOff = createLucideIcon('eye-off', __iconNode);\n\nexport default EyeOff;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0',\n key: '1nclc0',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n];\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon('eye', __iconNode);\n\nexport default Eye;\n"],"names":["Card","className","props","CardHeader","CardTitle","CardDescription","CardAction","CardContent","CardFooter","Input","type","NAME","Label","forwardedRef","label","ref","onMouseDown","event","target","closest","defaultPrevented","detail","preventDefault","displayName","Root","models","path","key","listShape","staleTime","invalidates","PROVIDER_LOGOS","DARK_INVERT_PROVIDERS","Set","ProviderIcon","providerName","width","height","imgError","setImgError","normalizedName","toLowerCase","replace","logoSrc","isDarkInvert","has","src","alt","loading","onError","style","substring","toUpperCase","SPINNER_SIZE","sm","md","lg","LoadingState","size","variant","TABS_NAME","createTabsContext","createTabsScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","value","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","setValue","prop","onChange","defaultProp","caller","scope","baseId","children","div","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","asChild","role","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","focusable","active","button","id","ctrlKey","onKeyDown","includes","onFocus","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","requestAnimationFrame","current","cancelAnimationFrame","present","hidden","tabIndex","animationDuration","Root2","List","Trigger","Content","createTooltipContext","createTooltipScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","isOpenDelayedRef","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","window","clearTimeout","onOpen","onClose","setTimeout","onPointerInTransitChange","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","open","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","openTimerRef","wasOpenDelayedRef","setOpen","open2","document","dispatchEvent","CustomEvent","stateAttribute","handleOpen","handleClose","handleDelayedOpen","onTriggerChange","onTriggerEnter","onTriggerLeave","TooltipTrigger","composedRefs","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","removeEventListener","onPointerMove","pointerType","onPointerLeave","onPointerDown","addEventListener","once","onBlur","onClick","PORTAL_NAME","PortalProvider","usePortalContext","TooltipPortal","container","TooltipContent","portalContext","side","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","content","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","x","clientX","y","clientY","exitSide","getExitSideFromRect","getBoundingClientRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","contains","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","isInside","Slottable","ariaLabel","onEscapeKeyDown","onPointerDownOutside","handleScroll","Node","capture","disableOutsidePointerEvents","onFocusOutside","onDismiss","ARROW_NAME","TooltipArrow","arrowProps","visuallyHiddenContentContext","point","rect","top","Math","abs","bottom","right","left","min","Error","padding","push","polygon","inside","i","j","length","ii","jj","xi","yi","xj","yj","intersect","points","newPoints","slice","sort","a","b","getHullPresorted","upperHull","p","q","r","pop","lowerHull","concat","Provider","Root3","Portal","Content2","Arrow2","RefreshButton","isLoading","tooltip"],"mappings":"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","ignoreList":[0,6,12,14,16,18,19]}
@@ -0,0 +1,3 @@
1
+ module.exports=[703130,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Card",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card",className:(0,c.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...d})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-6",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-muted-foreground text-sm",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("leading-none font-semibold",a),...d})}])},205522,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Input",0,function({className:a,type:d,...e}){return(0,b.jsx)("input",{type:d,"data-slot":"input",className:(0,c.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...e})}])},596221,a=>{"use strict";var b=a.i(404650);a.s(["Loader2",()=>b.default])},917171,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(30553),e=c.forwardRef((a,c)=>(0,b.jsx)(d.Primitive.label,{...a,ref:c,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));e.displayName="Label";var f=a.i(497895);a.s(["Label",0,function({className:a,...c}){return(0,b.jsx)(e,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...c})}],917171)},77994,a=>{"use strict";var b=a.i(572131);a.s(["usePrevious",0,function(a){let c=b.useRef({value:a,previous:a});return b.useMemo(()=>(c.current.value!==a&&(c.current.previous=c.current.value,c.current.value=a),c.current.previous),[a])}])},524634,a=>{"use strict";let b=(0,a.i(349682).defineResource)({path:"/models",key:"models",listShape:"array",staleTime:6e4,invalidates:["providers"]});a.s(["models",0,b])},130656,a=>{"use strict";a.s(["clamp",0,function(a,[b,c]){return Math.min(c,Math.max(b,a))}])},504699,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["default",0,b])},734020,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(497895);let e={openai:"/providers/openai.svg",claude:"/providers/claude.svg",anthropic:"/providers/claude.svg",gemini:"/providers/gemini.svg",google:"/providers/gemini.svg",vertexai:"/providers/vertexai.svg",vertex:"/providers/vertex.svg",deepseek:"/providers/deepseek.png",moonshot:"/providers/moonshot.png",zhipu:"/providers/zhipu.png",aliyun:"/providers/alibabacloud.png",alibabacloud:"/providers/alibabacloud.png",siliconflow:"/providers/siliconflow.svg",tei:"/providers/tei.svg",transformers:"/providers/transformers.svg",baichuan:"/providers/baichuan.png",volcengine:"/providers/volcengine.png",stepfun:"/providers/stepfun.png"},f=new Set(["openai","vertex","vertexai","siliconflow"]),g=(0,c.memo)(function({providerName:a,className:g,width:h=24,height:i=24}){let[j,k]=(0,c.useState)(!1),l=a.toLowerCase().replace(/[^a-z0-9_]/g,""),m=e[l],n=f.has(l);return m&&!j?(0,b.jsx)("img",{src:m,alt:"",width:h,height:i,loading:"lazy",className:(0,d.cn)("object-contain shrink-0",n&&"dark:invert",g),onError:()=>k(!0)}):(0,b.jsx)("span",{className:(0,d.cn)("rounded bg-muted flex items-center justify-center text-[8px] font-bold shrink-0",g),style:{width:h,height:i},children:a.substring(0,2).toUpperCase()})});a.s(["ProviderIcon",0,g])},587532,a=>{"use strict";let b=(0,a.i(883706).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",0,b],587532)},182434,a=>{"use strict";let b=(0,a.i(883706).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);a.s(["Bot",0,b],182434)},405784,a=>{"use strict";var b=a.i(504699);a.s(["ChevronDown",()=>b.default])},533441,a=>{"use strict";var b=a.i(234157);a.s(["Check",()=>b.default])},546842,a=>{"use strict";let b=(0,a.i(883706).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);a.s(["User",0,b],546842)}];
2
+
3
+ //# sourceMappingURL=_1y5sreb._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/card.tsx","../../../../components/ui/input.tsx","../../../../node_modules/%40radix-ui/react-label/dist/index.mjs","../../../../components/ui/label.tsx","../../../../node_modules/%40radix-ui/react-use-previous/src/use-previous.tsx","../../../../lib/api/models.ts","../../../../node_modules/%40radix-ui/number/src/number.ts","../../../../node_modules/lucide-react/src/icons/chevron-down.ts","../../../../components/ProviderIcon.tsx","../../../../node_modules/lucide-react/src/icons/search.ts","../../../../node_modules/lucide-react/src/icons/bot.ts","../../../../node_modules/lucide-react/src/icons/user.ts"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","import * as React from 'react';\n\nfunction usePrevious<T>(value: T) {\n const ref = React.useRef({ value, previous: value });\n\n // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\nexport { usePrevious };\n","import { defineResource } from \"./resource\";\nimport type { ModelCreateInput, ModelDTO, ModelUpdateInput } from \"@/lib/schemas/model\";\n\nexport const models = defineResource<\n ModelDTO,\n ModelCreateInput,\n ModelUpdateInput,\n Record<string, unknown>,\n ModelDTO[]\n>({\n path: \"/models\",\n key: \"models\",\n listShape: \"array\",\n staleTime: 60_000,\n invalidates: [\"providers\"],\n});\n","function clamp(value: number, [min, max]: [number, number]): number {\n return Math.min(max, Math.max(min, value));\n}\n\nexport { clamp };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import React, { useState, memo } from 'react';\nimport { cn } from '@/lib/utils';\n\ninterface ProviderIconProps {\n providerName: string;\n className?: string;\n width?: number;\n height?: number;\n}\n\nconst PROVIDER_LOGOS: Record<string, string> = {\n 'openai': '/providers/openai.svg',\n 'claude': '/providers/claude.svg',\n 'anthropic': '/providers/claude.svg',\n 'gemini': '/providers/gemini.svg',\n 'google': '/providers/gemini.svg',\n 'vertexai': '/providers/vertexai.svg',\n 'vertex': '/providers/vertex.svg',\n 'deepseek': '/providers/deepseek.png',\n 'moonshot': '/providers/moonshot.png',\n 'zhipu': '/providers/zhipu.png',\n 'aliyun': '/providers/alibabacloud.png',\n 'alibabacloud': '/providers/alibabacloud.png',\n 'siliconflow': '/providers/siliconflow.svg',\n 'tei': '/providers/tei.svg',\n 'transformers': '/providers/transformers.svg',\n 'baichuan': '/providers/baichuan.png',\n 'volcengine': '/providers/volcengine.png',\n 'stepfun': '/providers/stepfun.png',\n};\n\nconst DARK_INVERT_PROVIDERS = new Set(['openai', 'vertex', 'vertexai', 'siliconflow']);\n\nexport const ProviderIcon = memo(function ProviderIcon({\n providerName,\n className,\n width = 24,\n height = 24\n}: ProviderIconProps) {\n const [imgError, setImgError] = useState(false);\n\n const normalizedName = providerName.toLowerCase().replace(/[^a-z0-9_]/g, '');\n const logoSrc = PROVIDER_LOGOS[normalizedName];\n const isDarkInvert = DARK_INVERT_PROVIDERS.has(normalizedName);\n\n if (logoSrc && !imgError) {\n return (\n <img\n src={logoSrc}\n alt=\"\"\n width={width}\n height={height}\n loading=\"lazy\"\n className={cn(\"object-contain shrink-0\", isDarkInvert && \"dark:invert\", className)}\n onError={() => setImgError(true)}\n />\n );\n }\n\n return (\n <span\n className={cn(\n \"rounded bg-muted flex items-center justify-center text-[8px] font-bold shrink-0\",\n className\n )}\n style={{ width, height }}\n >\n {providerName.substring(0, 2).toUpperCase()}\n </span>\n );\n})\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 8V4H8', key: 'hb8ula' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2', key: 'enze0r' }],\n ['path', { d: 'M2 14h2', key: 'vft8re' }],\n ['path', { d: 'M20 14h2', key: '4cs60a' }],\n ['path', { d: 'M15 13v2', key: '1xurst' }],\n ['path', { d: 'M9 13v2', key: 'rq6x2g' }],\n];\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bot = createLucideIcon('bot', __iconNode);\n\nexport default Bot;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2', key: '975kel' }],\n ['circle', { cx: '12', cy: '7', r: '4', key: '17ys0d' }],\n];\n\n/**\n * @component @name User\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst User = createLucideIcon('user', __iconNode);\n\nexport default User;\n"],"names":["Card","className","props","CardHeader","CardTitle","CardDescription","CardAction","CardContent","CardFooter","Input","type","NAME","Label","forwardedRef","label","ref","onMouseDown","event","target","closest","defaultPrevented","detail","preventDefault","displayName","Root","models","path","key","listShape","staleTime","invalidates","PROVIDER_LOGOS","DARK_INVERT_PROVIDERS","Set","ProviderIcon","providerName","width","height","imgError","setImgError","normalizedName","toLowerCase","replace","logoSrc","isDarkInvert","has","src","alt","loading","onError","style","substring","toUpperCase"],"mappings":"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","ignoreList":[2,9,10,11]}
@@ -1,3 +1,3 @@
1
- module.exports=[280281,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(507554),e=a.i(470121),f=a.i(750104),g=a.i(225152),h=a.i(77994),i=a.i(3688),j=a.i(30553),k="Switch",[l,m]=(0,f.createContextScope)(k),[n,o]=l(k);function p(a){let{__scopeSwitch:d,checked:e,children:f,defaultChecked:h,disabled:i,form:j,name:l,onCheckedChange:m,required:o,value:p="on",internal_do_not_use_render:q}=a,[r,s]=(0,g.useControllableState)({prop:e,defaultProp:h??!1,onChange:m,caller:k}),[t,u]=c.useState(null),[v,w]=c.useState(null),x=c.useRef(!1),y=!t||!!j||!!t.closest("form"),z={checked:r,setChecked:s,disabled:i,control:t,setControl:u,name:l,form:j,value:p,hasConsumerStoppedPropagationRef:x,required:o,defaultChecked:h,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,b.jsx)(n,{scope:d,...z,children:"function"==typeof q?q(z):f})}var q="SwitchTrigger",r=c.forwardRef(({__scopeSwitch:a,onClick:c,...f},g)=>{let{value:h,disabled:i,checked:k,required:l,setControl:m,setChecked:n,hasConsumerStoppedPropagationRef:p,isFormControl:r,bubbleInput:s}=o(q,a),t=(0,e.useComposedRefs)(g,m);return(0,b.jsx)(j.Primitive.button,{type:"button",role:"switch","aria-checked":k,"aria-required":l,"data-state":x(k),"data-disabled":i?"":void 0,disabled:i,value:h,...f,ref:t,onClick:(0,d.composeEventHandlers)(c,a=>{n(a=>!a),s&&r&&(p.current=a.isPropagationStopped(),p.current||a.stopPropagation())})})});r.displayName=q;var s=c.forwardRef((a,c)=>{let{__scopeSwitch:d,name:e,checked:f,defaultChecked:g,required:h,disabled:i,value:j,onCheckedChange:k,form:l,...m}=a;return(0,b.jsx)(p,{__scopeSwitch:d,checked:f,defaultChecked:g,disabled:i,required:h,onCheckedChange:k,name:e,form:l,value:j,internal_do_not_use_render:({isFormControl:a})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(r,{...m,ref:c,__scopeSwitch:d}),a&&(0,b.jsx)(w,{__scopeSwitch:d})]})})});s.displayName=k;var t="SwitchThumb",u=c.forwardRef((a,c)=>{let{__scopeSwitch:d,...e}=a,f=o(t,d);return(0,b.jsx)(j.Primitive.span,{"data-state":x(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:c})});u.displayName=t;var v="SwitchBubbleInput",w=c.forwardRef(({__scopeSwitch:a,...d},f)=>{let{control:g,hasConsumerStoppedPropagationRef:k,checked:l,defaultChecked:m,required:n,disabled:p,name:q,value:r,form:s,bubbleInput:t,setBubbleInput:u}=o(v,a),w=(0,e.useComposedRefs)(f,u),x=(0,h.usePrevious)(l),y=(0,i.useSize)(g);c.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!k.current;if(x!==l&&a){let c=new Event("click",{bubbles:b});a.call(t,l),t.dispatchEvent(c)}},[t,x,l,k]);let z=c.useRef(l);return(0,b.jsx)(j.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??z.current,required:n,disabled:p,name:q,value:r,form:s,...d,tabIndex:-1,ref:w,style:{...d.style,...y,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function x(a){return a?"checked":"unchecked"}w.displayName=v;var y=a.i(497895);a.s(["Switch",0,function({className:a,...c}){return(0,b.jsx)(s,{"data-slot":"switch",className:(0,y.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...c,children:(0,b.jsx)(u,{"data-slot":"switch-thumb",className:(0,y.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}],280281)},546893,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Textarea",0,function({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),...d})}])},965733,a=>{"use strict";var b=a.i(187924),c=a.i(897942),d=a.i(422262),e=a.i(497895);function f({...a}){return(0,b.jsx)(c.Portal,{"data-slot":"dialog-portal",...a})}function g({className:a,...d}){return(0,b.jsx)(c.Overlay,{"data-slot":"dialog-overlay",className:(0,e.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...d})}a.s(["Dialog",0,function({...a}){return(0,b.jsx)(c.Root,{"data-slot":"dialog",...a})},"DialogContent",0,function({className:a,children:h,showCloseButton:i=!0,...j}){return(0,b.jsxs)(f,{"data-slot":"dialog-portal",children:[(0,b.jsx)(g,{}),(0,b.jsxs)(c.Content,{"data-slot":"dialog-content",className:(0,e.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",a),...j,children:[h,i&&(0,b.jsxs)(c.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,b.jsx)(d.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"DialogDescription",0,function({className:a,...d}){return(0,b.jsx)(c.Description,{"data-slot":"dialog-description",className:(0,e.cn)("text-muted-foreground text-sm",a),...d})},"DialogFooter",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-footer",className:(0,e.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...c})},"DialogHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-header",className:(0,e.cn)("flex flex-col gap-2 text-center sm:text-left",a),...c})},"DialogTitle",0,function({className:a,...d}){return(0,b.jsx)(c.Title,{"data-slot":"dialog-title",className:(0,e.cn)("text-lg leading-none font-semibold",a),...d})}])},339220,a=>{"use strict";var b=a.i(370025),c=a.i(433217),d=a.i(937927),e=a.i(349682),f=a.i(262477);let g=(0,e.defineResource)({path:"/mcp/servers",key:"mcp-servers",listShape:"array",staleTime:6e4}),h={...g,listPresets:()=>(0,f.fetcher)("/mcp/presets"),usePresets:()=>(0,c.useQuery)({queryKey:["mcp-presets"],queryFn:()=>h.listPresets(),staleTime:3e5}),check:a=>(0,f.fetcher)(`/mcp/servers/${encodeURIComponent(a)}/check`,{method:"POST"}),useCheck:a=>{let c=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>h.check(a),onSuccess:b=>{c.invalidateQueries({queryKey:g.keys.all()}),a?.onSuccess?.(b)},onError:b=>a?.onError?.(b)})}};a.s(["mcpServers",0,h])},812213,a=>{"use strict";var b=a.i(941579),c=a.i(774684),d=class extends b.QueryObserver{constructor(a,b){super(a,b)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(a){a._type="infinite",super.setOptions(a)}getOptimisticResult(a){return a._type="infinite",super.getOptimisticResult(a)}fetchNextPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"backward"}}})}createResult(a,b){let{state:d}=a,e=super.createResult(a,b),{isFetching:f,isRefetching:g,isError:h,isRefetchError:i}=e,j=d.fetchMeta?.fetchMore?.direction,k=h&&"forward"===j,l=f&&"forward"===j,m=h&&"backward"===j,n=f&&"backward"===j;return{...e,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,c.hasNextPage)(b,d.data),hasPreviousPage:(0,c.hasPreviousPage)(b,d.data),isFetchNextPageError:k,isFetchingNextPage:l,isFetchPreviousPageError:m,isFetchingPreviousPage:n,isRefetchError:i&&!k&&!m,isRefetching:g&&!l&&!n}}},e=a.i(36339),f=a.i(937927),g=a.i(349682),h=a.i(262477);let i=(0,g.defineResource)({path:"/conversations",key:"conversations",paramsOf:a=>({page:a.page??1,page_size:a.page_size??20,sort:a.sort??"-updated_at",keyword:a.keyword}),staleTime:6e4}),j={...i,updateTitle:(a,b)=>i.update(a,{title:b}),messagesCacheKey:function(a,b){return[...i.keys.one(a),"messages-cache",b]},useInvalidateList:()=>{let a=(0,f.useQueryClient)();return()=>a.invalidateQueries({queryKey:i.keys.all(),predicate:a=>{let b=a.queryKey;return b.length>=2&&("list"===b[1]||"infinite"===b[1])}})},useInfinite:a=>{var b;let c=a?.pageSize??20,f=a?.keyword?.trim()||void 0;return b={queryKey:[...i.keys.all(),"infinite",a?.scope??"default",c,f??""],initialPageParam:1,queryFn:({pageParam:a=1})=>i.list({page:a,page_size:c,keyword:f}),getNextPageParam:a=>{if(a)return a.page*a.page_size<a.total?a.page+1:void 0}},(0,e.useBaseQuery)(b,d,void 0)},listMessages:(a,b)=>(0,h.fetcher)(`/conversations/${encodeURIComponent(a)}/messages?`+new URLSearchParams({page:String(b?.page??1),page_size:String(b?.page_size??50),sort:b?.sort??"-created_at"}).toString())},k=["messages"];a.s(["conversations",0,j,"messages",0,{keys:{all:()=>k},rate:(a,b,c)=>(0,h.fetcher)(`/messages/${encodeURIComponent(a)}/rate`,{method:"POST",body:JSON.stringify({rating:b,feedback:c})})}],812213)},254161,a=>{"use strict";var b=a.i(187924),c=a.i(811011),d=a.i(400187),e=a.i(497895);let f=(0,d.cva)("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:d,asChild:g=!1,...h}){let i=g?c.Slot:"span";return(0,b.jsx)(i,{"data-slot":"badge",className:(0,e.cn)(f({variant:d}),a),...h})}])},167079,a=>{"use strict";let b=(0,a.i(349682).defineResource)({path:"/logs/generations",key:"logs",staleTime:3e4});a.s(["logs",0,b])},440955,a=>{"use strict";let b=(0,a.i(349682).defineResource)({path:"/users",key:"users",staleTime:6e4});a.s(["users",0,b])},324546,a=>{"use strict";var b=a.i(370025),c=a.i(433217),d=a.i(349682),e=a.i(262477);let f=(0,d.defineResource)({path:"/providers",key:"providers",listShape:"array",staleTime:6e4,invalidates:["models"]}),g={...f,listModels:a=>(0,e.fetcher)(`/providers/${encodeURIComponent(a)}/models`),reload:()=>(0,e.fetcher)("/providers/reload",{method:"POST"}),check:a=>(0,e.fetcher)(`/providers/${encodeURIComponent(a)}/check`,{method:"POST"}),probe:a=>(0,e.fetcher)("/providers/probe",{method:"POST",body:JSON.stringify({health_check_url:a}),headers:{"Content-Type":"application/json"}}),useModels:a=>(0,c.useQuery)({queryKey:[...f.keys.one(a??""),"models"],queryFn:()=>g.listModels(a),enabled:!!a}),useReload:a=>{let c=f.useInvalidate();return(0,b.useMutation)({mutationFn:g.reload,...a,onSuccess:(b,d,e,f)=>{c(),a?.onSuccess?.(b,d,e,f)}})},useCheck:(a,c)=>{let d=f.useInvalidate();return(0,b.useMutation)({mutationFn:()=>g.check(a),...c,onSuccess:(a,b,e,f)=>{d(),c?.onSuccess?.(a,b,e,f)}})}};a.s(["providers",0,g])},506122,187527,145116,74761,842698,a=>{"use strict";a.i(440955),a.i(324546),a.i(524634),a.i(298509),a.i(167079),a.i(812213);var b=a.i(349682);let c=(0,b.defineResource)({path:"/capabilities",key:"capabilities",listShape:"array",staleTime:6e4});a.s(["capabilities",0,c],187527);let d=(0,b.defineResource)({path:"/adapters",key:"adapters",listShape:"array",staleTime:6e4});a.s(["adapters",0,d],145116);let e=(0,b.defineResource)({path:"/variants",key:"variants",listShape:"array",staleTime:6e4});a.s(["variants",0,e],74761);let f=(0,b.defineResource)({path:"/tools",key:"tools",listShape:"array",staleTime:6e4});a.s(["tools",0,f],842698),a.i(339220),a.s([],506122)}];
1
+ module.exports=[280281,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(507554),e=a.i(470121),f=a.i(750104),g=a.i(225152),h=a.i(77994),i=a.i(3688),j=a.i(30553),k="Switch",[l,m]=(0,f.createContextScope)(k),[n,o]=l(k);function p(a){let{__scopeSwitch:d,checked:e,children:f,defaultChecked:h,disabled:i,form:j,name:l,onCheckedChange:m,required:o,value:p="on",internal_do_not_use_render:q}=a,[r,s]=(0,g.useControllableState)({prop:e,defaultProp:h??!1,onChange:m,caller:k}),[t,u]=c.useState(null),[v,w]=c.useState(null),x=c.useRef(!1),y=!t||!!j||!!t.closest("form"),z={checked:r,setChecked:s,disabled:i,control:t,setControl:u,name:l,form:j,value:p,hasConsumerStoppedPropagationRef:x,required:o,defaultChecked:h,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,b.jsx)(n,{scope:d,...z,children:"function"==typeof q?q(z):f})}var q="SwitchTrigger",r=c.forwardRef(({__scopeSwitch:a,onClick:c,...f},g)=>{let{value:h,disabled:i,checked:k,required:l,setControl:m,setChecked:n,hasConsumerStoppedPropagationRef:p,isFormControl:r,bubbleInput:s}=o(q,a),t=(0,e.useComposedRefs)(g,m);return(0,b.jsx)(j.Primitive.button,{type:"button",role:"switch","aria-checked":k,"aria-required":l,"data-state":x(k),"data-disabled":i?"":void 0,disabled:i,value:h,...f,ref:t,onClick:(0,d.composeEventHandlers)(c,a=>{n(a=>!a),s&&r&&(p.current=a.isPropagationStopped(),p.current||a.stopPropagation())})})});r.displayName=q;var s=c.forwardRef((a,c)=>{let{__scopeSwitch:d,name:e,checked:f,defaultChecked:g,required:h,disabled:i,value:j,onCheckedChange:k,form:l,...m}=a;return(0,b.jsx)(p,{__scopeSwitch:d,checked:f,defaultChecked:g,disabled:i,required:h,onCheckedChange:k,name:e,form:l,value:j,internal_do_not_use_render:({isFormControl:a})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(r,{...m,ref:c,__scopeSwitch:d}),a&&(0,b.jsx)(w,{__scopeSwitch:d})]})})});s.displayName=k;var t="SwitchThumb",u=c.forwardRef((a,c)=>{let{__scopeSwitch:d,...e}=a,f=o(t,d);return(0,b.jsx)(j.Primitive.span,{"data-state":x(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:c})});u.displayName=t;var v="SwitchBubbleInput",w=c.forwardRef(({__scopeSwitch:a,...d},f)=>{let{control:g,hasConsumerStoppedPropagationRef:k,checked:l,defaultChecked:m,required:n,disabled:p,name:q,value:r,form:s,bubbleInput:t,setBubbleInput:u}=o(v,a),w=(0,e.useComposedRefs)(f,u),x=(0,h.usePrevious)(l),y=(0,i.useSize)(g);c.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!k.current;if(x!==l&&a){let c=new Event("click",{bubbles:b});a.call(t,l),t.dispatchEvent(c)}},[t,x,l,k]);let z=c.useRef(l);return(0,b.jsx)(j.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??z.current,required:n,disabled:p,name:q,value:r,form:s,...d,tabIndex:-1,ref:w,style:{...d.style,...y,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function x(a){return a?"checked":"unchecked"}w.displayName=v;var y=a.i(497895);a.s(["Switch",0,function({className:a,...c}){return(0,b.jsx)(s,{"data-slot":"switch",className:(0,y.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...c,children:(0,b.jsx)(u,{"data-slot":"switch-thumb",className:(0,y.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}],280281)},546893,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Textarea",0,function({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),...d})}])},965733,a=>{"use strict";var b=a.i(187924),c=a.i(897942),d=a.i(422262),e=a.i(497895);function f({...a}){return(0,b.jsx)(c.Portal,{"data-slot":"dialog-portal",...a})}function g({className:a,...d}){return(0,b.jsx)(c.Overlay,{"data-slot":"dialog-overlay",className:(0,e.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...d})}a.s(["Dialog",0,function({...a}){return(0,b.jsx)(c.Root,{"data-slot":"dialog",...a})},"DialogContent",0,function({className:a,children:h,showCloseButton:i=!0,...j}){return(0,b.jsxs)(f,{"data-slot":"dialog-portal",children:[(0,b.jsx)(g,{}),(0,b.jsxs)(c.Content,{"data-slot":"dialog-content",className:(0,e.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",a),...j,children:[h,i&&(0,b.jsxs)(c.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,b.jsx)(d.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"DialogDescription",0,function({className:a,...d}){return(0,b.jsx)(c.Description,{"data-slot":"dialog-description",className:(0,e.cn)("text-muted-foreground text-sm",a),...d})},"DialogFooter",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-footer",className:(0,e.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...c})},"DialogHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-header",className:(0,e.cn)("flex flex-col gap-2 text-center sm:text-left",a),...c})},"DialogTitle",0,function({className:a,...d}){return(0,b.jsx)(c.Title,{"data-slot":"dialog-title",className:(0,e.cn)("text-lg leading-none font-semibold",a),...d})}])},339220,a=>{"use strict";var b=a.i(370025),c=a.i(433217),d=a.i(937927),e=a.i(572131),f=a.i(349682),g=a.i(262477);let h=(0,f.defineResource)({path:"/mcp/servers",key:"mcp-servers",listShape:"array",staleTime:6e4}),i={...h,listPresets:()=>(0,g.fetcher)("/mcp/presets"),usePresets:()=>(0,c.useQuery)({queryKey:["mcp-presets"],queryFn:()=>i.listPresets(),staleTime:3e5}),check:a=>(0,g.fetcher)(`/mcp/servers/${encodeURIComponent(a)}/check`,{method:"POST"}),useCheck:a=>{let c=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>i.check(a),onSuccess:b=>{c.invalidateQueries({queryKey:h.keys.all()}),a?.onSuccess?.(b)},onError:b=>a?.onError?.(b)})},checkStream:async(a,b,c)=>{let d=await (0,g.rawFetch)(`/mcp/servers/${encodeURIComponent(a)}/check`,{method:"POST",headers:{Accept:"text/event-stream"},signal:c?.signal});if(!d.body)throw Error("No response body");let e=d.body.getReader(),f=new TextDecoder,h="",i=null;try{for(;;){let{done:a,value:c}=await e.read();if(a)break;let d=(h+=f.decode(c,{stream:!0})).indexOf("\n\n");for(;-1!==d;){let a=h.slice(0,d);h=h.slice(d+2);let c=a.split("\n").find(a=>a.startsWith("data: "));if(c)try{let a=JSON.parse(c.slice(6));b(a),"result"===a.type?i=a.server:"error"===a.type&&a.server&&(i=a.server)}catch{}d=h.indexOf("\n\n")}}}finally{try{e.releaseLock()}catch{}}return i},useCheckStream:()=>{let a=(0,d.useQueryClient)(),[b,c]=e.useState(null),[f,g]=e.useState([]),[j,k]=e.useState(!1),[l,m]=e.useState(null),[n,o]=e.useState(null),p=e.useRef(null),q=e.useCallback(()=>{c(null),g([]),m(null),o(null)},[]),r=e.useCallback(()=>{p.current?.abort(),p.current=null,k(!1)},[]),s=e.useCallback(async b=>{q(),k(!0);let d=new AbortController;p.current=d;try{let e=await i.checkStream(b,a=>{"phase"===a.type?c(a.phase):"log"===a.type?g(b=>[...b,a.line]):"result"===a.type?o(a.server):"error"===a.type&&(m(a.message),a.server&&o(a.server))},{signal:d.signal});return a.invalidateQueries({queryKey:h.keys.all()}),e}catch(b){let a=b instanceof Error?b.message:String(b);return d.signal.aborted||m(a),null}finally{k(!1),p.current=null}},[q,a]);return e.useEffect(()=>()=>p.current?.abort(),[]),{run:s,cancel:r,reset:q,phase:b,logs:f,isChecking:j,error:l,result:n}}};a.s(["mcpServers",0,i])},812213,a=>{"use strict";var b=a.i(941579),c=a.i(774684),d=class extends b.QueryObserver{constructor(a,b){super(a,b)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(a){a._type="infinite",super.setOptions(a)}getOptimisticResult(a){return a._type="infinite",super.getOptimisticResult(a)}fetchNextPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"backward"}}})}createResult(a,b){let{state:d}=a,e=super.createResult(a,b),{isFetching:f,isRefetching:g,isError:h,isRefetchError:i}=e,j=d.fetchMeta?.fetchMore?.direction,k=h&&"forward"===j,l=f&&"forward"===j,m=h&&"backward"===j,n=f&&"backward"===j;return{...e,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,c.hasNextPage)(b,d.data),hasPreviousPage:(0,c.hasPreviousPage)(b,d.data),isFetchNextPageError:k,isFetchingNextPage:l,isFetchPreviousPageError:m,isFetchingPreviousPage:n,isRefetchError:i&&!k&&!m,isRefetching:g&&!l&&!n}}},e=a.i(36339),f=a.i(937927),g=a.i(349682),h=a.i(262477);let i=(0,g.defineResource)({path:"/conversations",key:"conversations",paramsOf:a=>({page:a.page??1,page_size:a.page_size??20,sort:a.sort??"-updated_at",keyword:a.keyword}),staleTime:6e4}),j={...i,updateTitle:(a,b)=>i.update(a,{title:b}),messagesCacheKey:function(a,b){return[...i.keys.one(a),"messages-cache",b]},useInvalidateList:()=>{let a=(0,f.useQueryClient)();return()=>a.invalidateQueries({queryKey:i.keys.all(),predicate:a=>{let b=a.queryKey;return b.length>=2&&("list"===b[1]||"infinite"===b[1])}})},useInfinite:a=>{var b;let c=a?.pageSize??20,f=a?.keyword?.trim()||void 0;return b={queryKey:[...i.keys.all(),"infinite",a?.scope??"default",c,f??""],initialPageParam:1,queryFn:({pageParam:a=1})=>i.list({page:a,page_size:c,keyword:f}),getNextPageParam:a=>{if(a)return a.page*a.page_size<a.total?a.page+1:void 0}},(0,e.useBaseQuery)(b,d,void 0)},listMessages:(a,b)=>(0,h.fetcher)(`/conversations/${encodeURIComponent(a)}/messages?`+new URLSearchParams({page:String(b?.page??1),page_size:String(b?.page_size??50),sort:b?.sort??"-created_at"}).toString())},k=["messages"];a.s(["conversations",0,j,"messages",0,{keys:{all:()=>k},rate:(a,b,c)=>(0,h.fetcher)(`/messages/${encodeURIComponent(a)}/rate`,{method:"POST",body:JSON.stringify({rating:b,feedback:c})})}],812213)},254161,a=>{"use strict";var b=a.i(187924),c=a.i(811011),d=a.i(400187),e=a.i(497895);let f=(0,d.cva)("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:d,asChild:g=!1,...h}){let i=g?c.Slot:"span";return(0,b.jsx)(i,{"data-slot":"badge",className:(0,e.cn)(f({variant:d}),a),...h})}])},167079,a=>{"use strict";let b=(0,a.i(349682).defineResource)({path:"/logs/generations",key:"logs",staleTime:3e4});a.s(["logs",0,b])},440955,a=>{"use strict";let b=(0,a.i(349682).defineResource)({path:"/users",key:"users",staleTime:6e4});a.s(["users",0,b])},324546,a=>{"use strict";var b=a.i(370025),c=a.i(433217),d=a.i(349682),e=a.i(262477);let f=(0,d.defineResource)({path:"/providers",key:"providers",listShape:"array",staleTime:6e4,invalidates:["models"]}),g={...f,listModels:a=>(0,e.fetcher)(`/providers/${encodeURIComponent(a)}/models`),reload:()=>(0,e.fetcher)("/providers/reload",{method:"POST"}),check:a=>(0,e.fetcher)(`/providers/${encodeURIComponent(a)}/check`,{method:"POST"}),probe:a=>(0,e.fetcher)("/providers/probe",{method:"POST",body:JSON.stringify({health_check_url:a}),headers:{"Content-Type":"application/json"}}),useModels:a=>(0,c.useQuery)({queryKey:[...f.keys.one(a??""),"models"],queryFn:()=>g.listModels(a),enabled:!!a}),useReload:a=>{let c=f.useInvalidate();return(0,b.useMutation)({mutationFn:g.reload,...a,onSuccess:(b,d,e,f)=>{c(),a?.onSuccess?.(b,d,e,f)}})},useCheck:(a,c)=>{let d=f.useInvalidate();return(0,b.useMutation)({mutationFn:()=>g.check(a),...c,onSuccess:(a,b,e,f)=>{d(),c?.onSuccess?.(a,b,e,f)}})}};a.s(["providers",0,g])},506122,187527,145116,74761,842698,a=>{"use strict";a.i(440955),a.i(324546),a.i(524634),a.i(298509),a.i(167079),a.i(812213);var b=a.i(349682);let c=(0,b.defineResource)({path:"/capabilities",key:"capabilities",listShape:"array",staleTime:6e4});a.s(["capabilities",0,c],187527);let d=(0,b.defineResource)({path:"/adapters",key:"adapters",listShape:"array",staleTime:6e4});a.s(["adapters",0,d],145116);let e=(0,b.defineResource)({path:"/variants",key:"variants",listShape:"array",staleTime:6e4});a.s(["variants",0,e],74761);let f=(0,b.defineResource)({path:"/tools",key:"tools",listShape:"array",staleTime:6e4});a.s(["tools",0,f],842698),a.i(339220),a.s([],506122)}];
2
2
 
3
3
  //# sourceMappingURL=_1zlpzyk._.js.map