@inkeep/agents-manage-ui 0.31.4 → 0.31.6
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.
- package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
- package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +287 -277
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +9 -9
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +23 -32
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2049.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2099.js +74 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2318.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2323.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/305.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3200.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/341.js +363 -5
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3690.js +7 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4021.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4057.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4746.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5007.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{1047.js → 5196.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5245.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5316.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7065.js +4 -4
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{8746.js → 7111.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7172.js +6 -6
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7225.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7497.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8320.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8359.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8528.js +4199 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8704.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9435.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9542.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9920.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/10385-34a87930d7321135.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/11727-dbddb4dbc677cfa7.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/19268-4c91d996ccccbc45.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/19790-d7debd88cb1da34e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/29129.2b3aec21f9892b9e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/31321-6bee6bed0133919f.js +197 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/32848-ccddf72d711e0f10.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/37226-af0e272517d004df.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/42658-cba95733d43d6b98.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{42966-c45601890893f4fe.js → 43883-4a0edc82a64d282e.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/4601-be81d9f529ebb629.js +4 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/46410.741cf7adb0d1397c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/4653-1381428fd8730f4b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/52218-66069d13c487bb67.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/52247-9bc5f31d80cdd76e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{56452.a7e4d92cc4db7a28.js → 56452.8af20314358ce189.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/65665-00887d4d2c362ca2.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/67695.2ac4acc5c19805bf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/73629-c59d321deb96b18e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/73744-ed53b2a1b7396fba.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{77246.627627baf66e549d.js → 77246.12508e2a9fd3c50d.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/77764-1df13c1f10585571.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/85145-85cfc74451117fee.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/85210-101ae8171554340b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/87799-f447ef2b59041d68.js +21 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{98749-e87db9b701dfca1b.js → 88686-b22f308e913d4f41.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/91783-163c98dc7933ec82.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/96365-e0704ccf63dd8e5f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/97635-cc97848f52f745fa.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/98522-61e930eb8a6e224a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-3d0c92c01eb13e24.js → page-be966a70f8502ccc.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-580bc2327bbae5ca.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-228d99a91c845367.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-4d19601501dcd086.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-88efe1a39c9a6d18.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-454ba86d45fe5bfc.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-68fb8aa4c30ce1e4.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-6767ebcf26247be8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-859361f1b23eabcb.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-1436a021ea5a4169.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-5f8ed5a10c190d14.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-a0c2608afa8249db.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-05f6016077c943c1.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-52f8080522e65045.js → page-8c5c87e9120bafa8.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-8f3159402ba52537.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/{page-c15ae98c8da775e7.js → page-71a32195e25c4f20.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-2a8d400555b0276a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-15784e1c28e7a7a4.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-d0889bb0ecbba52a.js → page-f5d13f6f6f160526.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-33e029753139f5f8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-76e93febd8faae06.js → page-8f3436690464e9bf.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-d2aea0d2aa1e34da.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-ab197455cc37afc6.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/{page-ff6bb6ad21bedf2e.js → page-1ca030e6ca5874c2.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/{page-915bc11a351377b6.js → page-e0b199dd271e9637.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-c18fe3e202b9acf5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-6dd70ed80c36b165.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-7552ac033085bed2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-8ccede0f7d1fc68d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/css/31178030b73a06ca.css +1 -0
- package/.next/standalone/agents-manage-ui/package.json +3 -2
- package/.next/standalone/packages/agents-core/package.json +1 -1
- package/package.json +6 -5
- package/src/components/agent/ship/api-guide.tsx +53 -0
- package/src/components/agent/ship/chat-ui-guide/chat-ui-code.tsx +101 -0
- package/src/components/agent/ship/chat-ui-guide/chat-ui-guide.tsx +93 -0
- package/src/components/agent/ship/chat-ui-guide/chat-ui-preview-form.tsx +83 -0
- package/src/components/agent/ship/chat-ui-guide/chat-ui-preview.tsx +105 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/index.ts +7 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/js-chat-button.ts +10 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/js-embedded-chat.ts +22 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/js-script-tag.ts +9 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/js-sidebar-chat.ts +25 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/react-component.ts +10 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/react-install.ts +5 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/react-sidebar-component.ts +17 -0
- package/src/components/agent/ship/guide-header.tsx +30 -0
- package/src/components/agent/ship/mcp-guide/mcp-guide.tsx +96 -0
- package/src/components/agent/ship/mcp-guide/snippets/claude-code.ts +16 -0
- package/src/components/agent/ship/mcp-guide/snippets/cursor.ts +27 -0
- package/src/components/agent/ship/mcp-guide/snippets/index.ts +4 -0
- package/src/components/agent/ship/mcp-guide/snippets/vscode.ts +27 -0
- package/src/components/agent/ship/mcp-guide/snippets/windsurf.ts +25 -0
- package/src/components/agent/ship/node-js-guide.tsx +67 -0
- package/src/components/agent/ship/sdk-guide.tsx +102 -0
- package/src/components/agent/ship/ship-modal.tsx +143 -0
- package/src/components/agent/ship/utils.ts +25 -0
- package/src/components/agent/toolbar/toolbar.tsx +2 -0
- package/src/components/data-components/render/component-render-generator.tsx +9 -12
- package/src/components/form/json-schema-builder.tsx +12 -9
- package/src/components/form/json-schema-input.tsx +1 -1
- package/src/components/icons/claude.tsx +21 -0
- package/src/components/icons/cursor.tsx +15 -0
- package/src/components/icons/vercel.tsx +14 -0
- package/src/components/icons/vs-code.tsx +24 -0
- package/src/components/icons/windsurf.tsx +15 -0
- package/src/components/traces/timeline/hierarchical-timeline.tsx +3 -3
- package/src/components/ui/color-picker.tsx +47 -0
- package/src/components/ui/dialog.tsx +38 -10
- package/src/components/ui/tabs.tsx +29 -9
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3058.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3411.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4475.js +0 -74
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4881.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/565.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/762.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/824.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8717.js +0 -7
- package/.next/standalone/agents-manage-ui/.next/server/chunks/910.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9682.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/static/chunks/15856-09dd885eb1330cba.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1721-4d8716eb27abc2c8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/17430-81adddca8d7ea403.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/20693-1b34b01549c71fcd.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/21009-32af3656c7538d1b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/22205-1bace94483c408ae.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/26959-ac6be17f7b14778b.js +0 -4
- package/.next/standalone/agents-manage-ui/.next/static/chunks/32848-e368b492419ae6e4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/37058-88c6556ebedb9d47.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/37226-a04406434cd8bb5f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/38474-4ab4ddfcf860813d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/46410.0e8a6975e064d1b2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/47380-98ba7170ef8d47cd.js +0 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/50118.0a75e445f38b54be.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/51397-ed3623cc53c3cd80.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/54339.3d0067056dcd81a1.js +0 -21
- package/.next/standalone/agents-manage-ui/.next/static/chunks/55157-25e4c0b9f9d95f2c.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/static/chunks/5571-7243ce6d41b18de5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/56117-a96a6a5a77f14ba0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/67695.50daf2d55a535621.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/71839-e9ba4ed0b3ce7668.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/78155-b4ada7f3606c9500.js +0 -197
- package/.next/standalone/agents-manage-ui/.next/static/chunks/81385-bf660a5d2d61583a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/85210-7e4bb57822963370.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/91340-6a4c648f7a6b13e5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/9766-12c570d61ec6ab54.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/98117-23cc4134c1bc5526.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/99724-b87437be879a6140.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-d714a4fd03dc2306.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-e8da5303d0df1f6d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-cf48ef911f40e1b0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-2d39e5bec5da14d1.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-fcb1a45f6cf225b4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-cd3eec2d38bfaec1.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-e34ef47a0a056252.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-82bc98ae0bea5273.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-9071c8ddc4ff3843.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-df7b2ca0e2b96bcf.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-152052de97b91e11.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-1bbcd9cde29e316e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-e207f1a9d366dec2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-efadffe3f843917d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-d41caff7520558f0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-f43afc20c7b679cc.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-d5141432493a5eaa.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-fc7bc85c3a758e9a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-df885415e1c2fe8a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-c6e860aa7b2d726b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-33cfcac33a61ad21.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-314a6b9a2162cc11.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/79e788a7e7a93a1e.css +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{i6GLHI_W62QkxURNDKYIc → HarCmbzAumIcjUAzOVpVH}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{i6GLHI_W62QkxURNDKYIc → HarCmbzAumIcjUAzOVpVH}/_ssgManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/chunks/{21f4193d.7ccc1aebbebe4f76.js → 21f4193d-7ccc1aebbebe4f76.js} +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/chunks/{9f915ca0.83c49af9bcc715c2.js → 9f915ca0-83c49af9bcc715c2.js} +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/chunks/{acf92edd.26fc0407d83498c7.js → acf92edd-26fc0407d83498c7.js} +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useParams } from 'next/navigation';
|
|
2
|
+
import { Streamdown } from 'streamdown';
|
|
3
|
+
import { DOCS_BASE_URL } from '@/constants/page-descriptions';
|
|
4
|
+
import { useRuntimeConfig } from '@/contexts/runtime-config-context';
|
|
5
|
+
import { DocsLink, Header } from './guide-header';
|
|
6
|
+
|
|
7
|
+
export function NodeJsGuide() {
|
|
8
|
+
const { PUBLIC_INKEEP_AGENTS_RUN_API_URL } = useRuntimeConfig();
|
|
9
|
+
const apiUrl = `${PUBLIC_INKEEP_AGENTS_RUN_API_URL}/api/chat`;
|
|
10
|
+
const { agentId } = useParams();
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<div>
|
|
14
|
+
<Header.Container>
|
|
15
|
+
<Header.Title title="Node.js Backend" />
|
|
16
|
+
<DocsLink href={`${DOCS_BASE_URL}/talk-to-your-agents/chat-api`} />
|
|
17
|
+
</Header.Container>
|
|
18
|
+
<Streamdown>
|
|
19
|
+
{`Example Next.js API route (\`app/api/chat/route.ts\`):
|
|
20
|
+
|
|
21
|
+
\`\`\`typescript
|
|
22
|
+
export async function POST(req: Request) {
|
|
23
|
+
const { messages, conversationId } = await req.json();
|
|
24
|
+
|
|
25
|
+
const response = await fetch('${apiUrl}', {
|
|
26
|
+
method: 'POST',
|
|
27
|
+
headers: {
|
|
28
|
+
'Authorization': \`Bearer \${process.env.INKEEP_AGENT_API_KEY}\`,
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
'x-emit-operations': 'true',
|
|
31
|
+
},
|
|
32
|
+
body: JSON.stringify({
|
|
33
|
+
messages,
|
|
34
|
+
conversationId,
|
|
35
|
+
}),
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return new Response(response.body, {
|
|
39
|
+
headers: {
|
|
40
|
+
'Content-Type': 'text/event-stream',
|
|
41
|
+
'Cache-Control': 'no-cache',
|
|
42
|
+
'Connection': 'keep-alive',
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
\`\`\`
|
|
47
|
+
|
|
48
|
+
Example response (Server-Sent Events stream):
|
|
49
|
+
|
|
50
|
+
\`\`\`bash
|
|
51
|
+
data: {"type":"data-operation","data":{"type":"agent_initializing","details":{"sessionId":"chatds-12345678910111","agentId":"${agentId}"}}}
|
|
52
|
+
|
|
53
|
+
data: {"type":"text-start","id":"1234567891011-abcdefghi"}
|
|
54
|
+
|
|
55
|
+
data: {"type":"text-delta","id":"1234567891011-abcdefghi","delta":"I answer"}
|
|
56
|
+
|
|
57
|
+
data: {"type":"text-delta","id":"1234567891011-abcdefghi","delta":" technical questions"}
|
|
58
|
+
|
|
59
|
+
data: {"type":"text-end","id":"1234567891011-abcdefghi"}
|
|
60
|
+
|
|
61
|
+
data: [DONE]
|
|
62
|
+
\`\`\`
|
|
63
|
+
`}
|
|
64
|
+
</Streamdown>
|
|
65
|
+
</div>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Streamdown } from 'streamdown';
|
|
2
|
+
import { DOCS_BASE_URL } from '@/constants/page-descriptions';
|
|
3
|
+
import { useRuntimeConfig } from '@/contexts/runtime-config-context';
|
|
4
|
+
import { DocsLink, Header } from './guide-header';
|
|
5
|
+
|
|
6
|
+
export function SdkGuide() {
|
|
7
|
+
const { PUBLIC_INKEEP_AGENTS_RUN_API_URL } = useRuntimeConfig();
|
|
8
|
+
const apiUrl = `${PUBLIC_INKEEP_AGENTS_RUN_API_URL}/api/chat`;
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div>
|
|
12
|
+
<Header.Container>
|
|
13
|
+
<Header.Title title="Vercel SDK" />
|
|
14
|
+
<DocsLink href={`${DOCS_BASE_URL}/talk-to-your-agents/vercel-ai-sdk/use-chat`} />
|
|
15
|
+
</Header.Container>
|
|
16
|
+
<Streamdown>
|
|
17
|
+
{`Install the package:
|
|
18
|
+
|
|
19
|
+
\`\`\`bash
|
|
20
|
+
npm install ai @ai-sdk/react
|
|
21
|
+
\`\`\`
|
|
22
|
+
|
|
23
|
+
Example Next.js implementation using Vercel AI SDK:
|
|
24
|
+
|
|
25
|
+
\`\`\`tsx
|
|
26
|
+
"use client";
|
|
27
|
+
|
|
28
|
+
import { useChat } from "@ai-sdk/react";
|
|
29
|
+
import { DefaultChatTransport } from "ai";
|
|
30
|
+
import { useState } from "react";
|
|
31
|
+
|
|
32
|
+
export default function Page() {
|
|
33
|
+
const { messages, sendMessage } = useChat({
|
|
34
|
+
transport: new DefaultChatTransport({
|
|
35
|
+
api: "${apiUrl}",
|
|
36
|
+
headers: {
|
|
37
|
+
Authorization: "Bearer INKEEP_AGENT_API_KEY",
|
|
38
|
+
},
|
|
39
|
+
}),
|
|
40
|
+
});
|
|
41
|
+
const [input, setInput] = useState("");
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<div className="max-w-2xl mx-auto p-4">
|
|
45
|
+
<div className="space-y-4 mb-4">
|
|
46
|
+
{messages.map((message) => (
|
|
47
|
+
<div key={message.id} className="border rounded p-3">
|
|
48
|
+
<div className="font-semibold mb-2">
|
|
49
|
+
{message.role === "user" ? "👤 User" : "🤖 Assistant"}
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<div className="space-y-2">
|
|
53
|
+
{message.parts.map((part, partIndex) => {
|
|
54
|
+
const partKey = \`\${message.id}-\${part.type}-\${partIndex}\`;
|
|
55
|
+
|
|
56
|
+
if (part.type === "text") {
|
|
57
|
+
return (
|
|
58
|
+
<div key={partKey} className="whitespace-pre-wrap">
|
|
59
|
+
{part.text}
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return null;
|
|
65
|
+
})}
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
))}
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<form
|
|
72
|
+
onSubmit={(e) => {
|
|
73
|
+
e.preventDefault();
|
|
74
|
+
if (input.trim()) {
|
|
75
|
+
sendMessage({ text: input });
|
|
76
|
+
setInput("");
|
|
77
|
+
}
|
|
78
|
+
}}
|
|
79
|
+
className="flex gap-2"
|
|
80
|
+
>
|
|
81
|
+
<input
|
|
82
|
+
value={input}
|
|
83
|
+
onChange={(e) => setInput(e.target.value)}
|
|
84
|
+
placeholder="Type your message..."
|
|
85
|
+
className="flex-1 p-2 border rounded"
|
|
86
|
+
/>
|
|
87
|
+
<button
|
|
88
|
+
type="submit"
|
|
89
|
+
className="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"
|
|
90
|
+
>
|
|
91
|
+
Send
|
|
92
|
+
</button>
|
|
93
|
+
</form>
|
|
94
|
+
</div>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
\`\`\`
|
|
98
|
+
`}
|
|
99
|
+
</Streamdown>
|
|
100
|
+
</div>
|
|
101
|
+
);
|
|
102
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Hexagon,
|
|
3
|
+
Key,
|
|
4
|
+
type LucideProps,
|
|
5
|
+
MessagesSquare,
|
|
6
|
+
RocketIcon,
|
|
7
|
+
SquareTerminal,
|
|
8
|
+
X,
|
|
9
|
+
} from 'lucide-react';
|
|
10
|
+
import Link from 'next/link';
|
|
11
|
+
import { useParams } from 'next/navigation';
|
|
12
|
+
import type { ComponentType } from 'react';
|
|
13
|
+
import { MCPIcon } from '@/components/icons/mcp-icon';
|
|
14
|
+
import { VercelIcon } from '@/components/icons/vercel';
|
|
15
|
+
import { Button } from '@/components/ui/button';
|
|
16
|
+
import {
|
|
17
|
+
Dialog,
|
|
18
|
+
DialogClose,
|
|
19
|
+
DialogContent,
|
|
20
|
+
DialogDescription,
|
|
21
|
+
DialogHeader,
|
|
22
|
+
DialogTitle,
|
|
23
|
+
DialogTrigger,
|
|
24
|
+
} from '@/components/ui/dialog';
|
|
25
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
|
|
26
|
+
import { ApiGuide } from './api-guide';
|
|
27
|
+
import { ChatUIGuide } from './chat-ui-guide/chat-ui-guide';
|
|
28
|
+
import { McpGuide } from './mcp-guide/mcp-guide';
|
|
29
|
+
import { NodeJsGuide } from './node-js-guide';
|
|
30
|
+
import { SdkGuide } from './sdk-guide';
|
|
31
|
+
|
|
32
|
+
const TAB_VALUES = {
|
|
33
|
+
CHAT_UI: 'chat-ui',
|
|
34
|
+
MCP_SERVER: 'mcp-server',
|
|
35
|
+
SDK: 'sdk',
|
|
36
|
+
NODE_JS: 'node-js',
|
|
37
|
+
API: 'api',
|
|
38
|
+
} as const;
|
|
39
|
+
|
|
40
|
+
type TabValue = (typeof TAB_VALUES)[keyof typeof TAB_VALUES];
|
|
41
|
+
|
|
42
|
+
type TabItem = {
|
|
43
|
+
label: string;
|
|
44
|
+
value: TabValue;
|
|
45
|
+
IconComponent?: React.ComponentType<LucideProps>;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const shipModalTabComponents: Record<TabValue, ComponentType> = {
|
|
49
|
+
[TAB_VALUES.CHAT_UI]: ChatUIGuide,
|
|
50
|
+
[TAB_VALUES.MCP_SERVER]: McpGuide,
|
|
51
|
+
[TAB_VALUES.SDK]: SdkGuide,
|
|
52
|
+
[TAB_VALUES.NODE_JS]: NodeJsGuide,
|
|
53
|
+
[TAB_VALUES.API]: ApiGuide,
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const shipModalTabItems: TabItem[] = [
|
|
57
|
+
{
|
|
58
|
+
label: 'Chat UI',
|
|
59
|
+
value: TAB_VALUES.CHAT_UI,
|
|
60
|
+
IconComponent: MessagesSquare,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: 'MCP Server',
|
|
64
|
+
value: TAB_VALUES.MCP_SERVER,
|
|
65
|
+
IconComponent: MCPIcon,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
label: 'Vercel SDK',
|
|
69
|
+
value: TAB_VALUES.SDK,
|
|
70
|
+
IconComponent: VercelIcon,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
label: 'Node JS',
|
|
74
|
+
value: TAB_VALUES.NODE_JS,
|
|
75
|
+
IconComponent: Hexagon,
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
label: 'REST API',
|
|
79
|
+
value: TAB_VALUES.API,
|
|
80
|
+
IconComponent: SquareTerminal,
|
|
81
|
+
},
|
|
82
|
+
];
|
|
83
|
+
|
|
84
|
+
export function ShipModal() {
|
|
85
|
+
const params = useParams();
|
|
86
|
+
const { tenantId, projectId } = params;
|
|
87
|
+
return (
|
|
88
|
+
<Dialog>
|
|
89
|
+
<DialogTrigger asChild>
|
|
90
|
+
<Button variant="outline">
|
|
91
|
+
<RocketIcon className="size-4" />
|
|
92
|
+
Ship
|
|
93
|
+
</Button>
|
|
94
|
+
</DialogTrigger>
|
|
95
|
+
<DialogContent className="max-w-full! w-7xl" position="top" showCloseButton={false}>
|
|
96
|
+
<DialogHeader>
|
|
97
|
+
<div className="flex items-center justify-between w-full gap-2">
|
|
98
|
+
<DialogTitle>Talk to your agent</DialogTitle>
|
|
99
|
+
<div className="flex items-center gap-2">
|
|
100
|
+
<Button asChild variant="outline" size="sm">
|
|
101
|
+
<Link
|
|
102
|
+
href={`/${tenantId}/projects/${projectId}/api-keys`}
|
|
103
|
+
target="_blank"
|
|
104
|
+
rel="noreferrer noopener"
|
|
105
|
+
>
|
|
106
|
+
<Key className="size-4" />
|
|
107
|
+
Create API key
|
|
108
|
+
</Link>
|
|
109
|
+
</Button>
|
|
110
|
+
<DialogClose asChild>
|
|
111
|
+
<Button variant="ghost" className="size-8">
|
|
112
|
+
<X className="size-4 text-muted-foreground" />
|
|
113
|
+
<span className="sr-only">Close</span>
|
|
114
|
+
</Button>
|
|
115
|
+
</DialogClose>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
<DialogDescription className="sr-only">Talk to your agent.</DialogDescription>
|
|
119
|
+
</DialogHeader>
|
|
120
|
+
<Tabs defaultValue={TAB_VALUES.CHAT_UI} className="min-w-0">
|
|
121
|
+
<TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-4">
|
|
122
|
+
{shipModalTabItems.map((tab) => (
|
|
123
|
+
<TabsTrigger
|
|
124
|
+
key={tab.value}
|
|
125
|
+
variant="underline"
|
|
126
|
+
value={tab.value}
|
|
127
|
+
className="text-sm gap-2"
|
|
128
|
+
>
|
|
129
|
+
{tab.IconComponent && <tab.IconComponent className="size-4" />}
|
|
130
|
+
{tab.label}
|
|
131
|
+
</TabsTrigger>
|
|
132
|
+
))}
|
|
133
|
+
</TabsList>
|
|
134
|
+
{Object.entries(shipModalTabComponents).map(([value, Component]) => (
|
|
135
|
+
<TabsContent key={value} value={value} className="py-4">
|
|
136
|
+
<Component />
|
|
137
|
+
</TabsContent>
|
|
138
|
+
))}
|
|
139
|
+
</Tabs>
|
|
140
|
+
</DialogContent>
|
|
141
|
+
</Dialog>
|
|
142
|
+
);
|
|
143
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const replaceTemplatePlaceholders = (
|
|
2
|
+
template: string,
|
|
3
|
+
replacements: Record<string, string>
|
|
4
|
+
): string => {
|
|
5
|
+
let result = template;
|
|
6
|
+
for (const [key, value] of Object.entries(replacements)) {
|
|
7
|
+
result = result.replace(new RegExp(`{{${key}}}`, 'g'), value);
|
|
8
|
+
}
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export function toCamelCase(str: string): string {
|
|
13
|
+
return str
|
|
14
|
+
.toLowerCase()
|
|
15
|
+
.replace(/[^a-zA-Z0-9]+(.)/g, (_, char) => char.toUpperCase())
|
|
16
|
+
.replace(/^[^a-zA-Z]+/, '');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const indentJson = (json: string, spaces: number): string => {
|
|
20
|
+
const indent = ' '.repeat(spaces);
|
|
21
|
+
return json
|
|
22
|
+
.split('\n')
|
|
23
|
+
.map((line, index) => (index === 0 ? line : `${indent}${line}`))
|
|
24
|
+
.join('\n');
|
|
25
|
+
};
|
|
@@ -4,6 +4,7 @@ import { Button } from '@/components/ui/button';
|
|
|
4
4
|
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
|
|
5
5
|
import { useAgentStore } from '@/features/agent/state/use-agent-store';
|
|
6
6
|
import { isMacOs } from '@/lib/utils';
|
|
7
|
+
import { ShipModal } from '../ship/ship-modal';
|
|
7
8
|
|
|
8
9
|
interface ToolbarProps {
|
|
9
10
|
onSubmit: () => void;
|
|
@@ -55,6 +56,7 @@ export function Toolbar({
|
|
|
55
56
|
|
|
56
57
|
return (
|
|
57
58
|
<div className="flex gap-2 flex-wrap justify-end content-start">
|
|
59
|
+
{!inPreviewDisabled && <ShipModal />}
|
|
58
60
|
{dirty || inPreviewDisabled ? (
|
|
59
61
|
<Tooltip>
|
|
60
62
|
<TooltipTrigger asChild>
|
|
@@ -16,15 +16,6 @@ import { Textarea } from '@/components/ui/textarea';
|
|
|
16
16
|
import { updateDataComponent } from '@/lib/api/data-components';
|
|
17
17
|
import { DynamicComponentRenderer } from './dynamic-component-renderer';
|
|
18
18
|
|
|
19
|
-
const StyledTabsTrigger = (props: React.ComponentProps<typeof TabsTrigger>) => {
|
|
20
|
-
return (
|
|
21
|
-
<TabsTrigger
|
|
22
|
-
{...props}
|
|
23
|
-
className="bg-transparent data-[state=active]:border-primary dark:data-[state=active]:border-primary h-full rounded-none border-0 border-b-2 border-transparent data-[state=active]:shadow-none data-[state=active]:text-primary data-[state=active]:bg-transparent uppercase font-mono text-xs mt-0.5 pt-2"
|
|
24
|
-
/>
|
|
25
|
-
);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
19
|
interface ComponentPreviewGeneratorProps {
|
|
29
20
|
tenantId: string;
|
|
30
21
|
projectId: string;
|
|
@@ -306,9 +297,15 @@ export function ComponentRenderGenerator({
|
|
|
306
297
|
<Card className="px-2 py-4 pt-0">
|
|
307
298
|
<Tabs defaultValue="render" className="w-full">
|
|
308
299
|
<TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-2">
|
|
309
|
-
<
|
|
310
|
-
|
|
311
|
-
|
|
300
|
+
<TabsTrigger variant="underline" value="render">
|
|
301
|
+
Render
|
|
302
|
+
</TabsTrigger>
|
|
303
|
+
<TabsTrigger variant="underline" value="code">
|
|
304
|
+
Code
|
|
305
|
+
</TabsTrigger>
|
|
306
|
+
<TabsTrigger variant="underline" value="data">
|
|
307
|
+
Sample Data
|
|
308
|
+
</TabsTrigger>
|
|
312
309
|
</TabsList>
|
|
313
310
|
|
|
314
311
|
<TabsContent value="render">
|
|
@@ -107,12 +107,15 @@ const Property: FC<PropertyProps> = ({ fieldId, depth = 0, prefix }) => {
|
|
|
107
107
|
<>
|
|
108
108
|
<Tooltip>
|
|
109
109
|
<TooltipTrigger asChild>
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
110
|
+
{/* without the wrapping div the checkbox doesn't get the data-state="checked" attribute and the styles are not applied */}
|
|
111
|
+
<div>
|
|
112
|
+
<Checkbox
|
|
113
|
+
checked={Boolean(field.isRequired)}
|
|
114
|
+
onCheckedChange={(checked) =>
|
|
115
|
+
updateField(field.id, { isRequired: checked === true })
|
|
116
|
+
}
|
|
117
|
+
/>
|
|
118
|
+
</div>
|
|
116
119
|
</TooltipTrigger>
|
|
117
120
|
<TooltipContent>Mark this field as required</TooltipContent>
|
|
118
121
|
</Tooltip>
|
|
@@ -180,7 +183,7 @@ const Property: FC<PropertyProps> = ({ fieldId, depth = 0, prefix }) => {
|
|
|
180
183
|
<Button
|
|
181
184
|
type="button"
|
|
182
185
|
onClick={() => addChild(field.id)}
|
|
183
|
-
variant="
|
|
186
|
+
variant="link"
|
|
184
187
|
size="sm"
|
|
185
188
|
className="self-start text-xs"
|
|
186
189
|
style={{ marginLeft: indentStyle + 24 + (prefix ? 82 : 0) }}
|
|
@@ -248,7 +251,7 @@ export const JsonSchemaBuilder: FC<{ value: string; onChange: (newValue: string)
|
|
|
248
251
|
<>
|
|
249
252
|
<Table>
|
|
250
253
|
<TableHeader>
|
|
251
|
-
<TableRow>
|
|
254
|
+
<TableRow noHover>
|
|
252
255
|
<TableHead className="w-[15%] text-center">Type</TableHead>
|
|
253
256
|
<TableHead className="w-[42%] text-center">Name</TableHead>
|
|
254
257
|
<TableHead className="text-center">Description</TableHead>
|
|
@@ -262,7 +265,7 @@ export const JsonSchemaBuilder: FC<{ value: string; onChange: (newValue: string)
|
|
|
262
265
|
<Button
|
|
263
266
|
type="button"
|
|
264
267
|
onClick={() => addChild()}
|
|
265
|
-
variant="
|
|
268
|
+
variant="link"
|
|
266
269
|
size="sm"
|
|
267
270
|
className="self-start text-xs"
|
|
268
271
|
>
|
|
@@ -55,7 +55,7 @@ export function JsonSchemaInput<T extends FieldValues>({
|
|
|
55
55
|
) : (
|
|
56
56
|
<JsonSchemaBuilder value={value} onChange={field.onChange} />
|
|
57
57
|
)}
|
|
58
|
-
<span className="absolute flex items-center end-0 top-
|
|
58
|
+
<span className="absolute flex items-center end-0 -top-[2.5px] gap-2 text-sm font-medium">
|
|
59
59
|
JSON
|
|
60
60
|
<Switch checked={isJsonSchemaModeChecked} onCheckedChange={setJsonSchemaMode} />
|
|
61
61
|
</span>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const ClaudeIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>Claude icon</title>
|
|
7
|
+
<g clipPath="url(#clip0_23_202)">
|
|
8
|
+
<path
|
|
9
|
+
d="M4.704 15.96L9.432 13.32L9.504 13.08L9.432 12.96H9.192L8.4 12.912L5.712 12.84L3.36 12.72L1.08 12.6L0.504 12.48L0 11.76L0.048 11.4L0.528 11.088L1.224 11.136L2.736 11.256L5.016 11.4L6.672 11.496L9.12 11.784H9.504L9.552 11.616L9.432 11.52L9.336 11.424L6.96 9.84L4.416 8.16L3.072 7.176L2.352 6.696L1.992 6.216L1.848 5.208L2.496 4.488L3.384 4.56L3.6 4.608L4.488 5.304L6.408 6.768L8.88 8.64L9.24 8.928L9.384 8.832L9.408 8.76L9.24 8.496L7.92 6L6.48 3.504L5.832 2.472L5.664 1.848C5.592 1.608 5.568 1.368 5.568 1.128L6.288 0.12L6.72 0L7.728 0.144L8.112 0.48L8.736 1.92L9.72 4.152L11.28 7.176L11.76 8.088L12 8.904L12.072 9.144H12.24V9.024L12.36 7.296L12.6 5.208L12.84 2.52L12.912 1.752L13.296 0.84L14.016 0.36L14.64 0.624L15.12 1.32L15.048 1.752L14.784 3.6L14.16 6.504L13.8 8.472H14.016L14.256 8.208L15.24 6.912L16.896 4.848L17.616 4.008L18.48 3.12L19.032 2.688H20.064L20.808 3.816L20.472 4.992L19.416 6.336L18.528 7.464L17.256 9.168L16.488 10.536L16.56 10.632H16.728L19.608 10.008L21.144 9.744L22.968 9.432L23.808 9.816L23.904 10.2L23.568 11.016L21.6 11.496L19.296 11.976L15.864 12.768L15.816 12.792L15.864 12.864L17.4 13.008L18.072 13.056H19.704L22.728 13.296L23.52 13.776L23.976 14.424L23.904 14.904L22.68 15.528L21.048 15.144L17.208 14.232L15.912 13.92H15.72V14.016L16.824 15.096L18.816 16.896L21.36 19.224L21.48 19.8L21.168 20.28L20.832 20.232L18.624 18.552L17.76 17.832L15.84 16.2H15.72V16.368L16.152 17.016L18.504 20.544L18.624 21.624L18.456 21.96L17.832 22.2L17.184 22.056L15.792 20.136L14.352 17.976L13.224 16.008L13.104 16.104L12.408 23.352L12.096 23.712L11.376 24L10.776 23.52L10.44 22.8L10.776 21.312L11.16 19.392L11.472 17.856L11.76 15.96L11.928 15.336V15.288H11.76L10.32 17.28L8.16 20.232L6.432 22.056L6.024 22.224L5.304 21.864L5.376 21.192L5.76 20.64L8.16 17.568L9.6 15.672L10.56 14.568L10.536 14.448H10.464L4.128 18.576L3 18.72L2.52 18.24L2.568 17.52L2.808 17.28L4.728 15.96H4.704Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
</g>
|
|
13
|
+
<defs>
|
|
14
|
+
<clipPath id="clip0_23_202">
|
|
15
|
+
<rect width="24" height="24" fill="white" />
|
|
16
|
+
</clipPath>
|
|
17
|
+
</defs>
|
|
18
|
+
</SvgIcon>
|
|
19
|
+
));
|
|
20
|
+
|
|
21
|
+
ClaudeIcon.displayName = 'ClaudeIcon';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const CursorIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>Cursor icon</title>
|
|
7
|
+
<path
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
d="M22.1323 5.6806L12.5245 0.133623C12.216 -0.0445409 11.8353 -0.0445409 11.5268 0.133623L1.91947 5.6806C1.66012 5.83035 1.5 6.10727 1.5 6.40723V17.5928C1.5 17.8923 1.66012 18.1697 1.91947 18.3194L11.5272 23.8664C11.8358 24.0445 12.2164 24.0445 12.525 23.8664L22.1327 18.3194C22.3921 18.1697 22.5522 17.8927 22.5522 17.5928V6.40723C22.5522 6.10774 22.3921 5.83035 22.1327 5.6806H22.1323ZM21.5288 6.85558L12.2539 22.9201C12.1912 23.0283 12.0257 22.9841 12.0257 22.8587V12.3399C12.0257 12.1297 11.9133 11.9353 11.7311 11.8297L2.62176 6.57052C2.51351 6.50784 2.55771 6.34227 2.6831 6.34227H21.2329C21.4963 6.34227 21.6609 6.6278 21.5292 6.85605H21.5288V6.85558Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
</SvgIcon>
|
|
13
|
+
));
|
|
14
|
+
|
|
15
|
+
CursorIcon.displayName = 'CursorIcon';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const VercelIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>Vercel icon</title>
|
|
7
|
+
<g clipPath="url(#clip0_24_207)">
|
|
8
|
+
<path d="M11.9573 1.5L23.9146 22.2109H0L11.9573 1.5Z" fill="currentColor" />
|
|
9
|
+
</g>
|
|
10
|
+
<defs></defs>
|
|
11
|
+
</SvgIcon>
|
|
12
|
+
));
|
|
13
|
+
|
|
14
|
+
VercelIcon.displayName = 'VercelIcon';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const VSCodeIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>VS Code icon</title>
|
|
7
|
+
<g clipPath="url(#clip0_22_190)">
|
|
8
|
+
<path
|
|
9
|
+
d="M18.0011 0.957249C18.0011 0.203854 17.1576 0.203846 16.7827 0.29802C17.3075 -0.116349 17.9231 -0.0158829 18.1417 0.10968L23.2103 2.59498C23.6933 2.83179 23.9996 3.32452 23.9996 3.86449V20.2141C23.9996 20.7613 23.6851 21.2593 23.1923 21.4923L18.4229 23.7475C18.0948 23.8887 17.3825 24.2372 16.7827 23.7474C17.5325 23.8888 17.9387 23.3551 18.0011 22.9941V0.957249Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
<path
|
|
13
|
+
d="M16.8439 0.285044C17.2418 0.206418 18.0016 0.242881 18.0016 0.957858V6.58559L2.63451 18.2108C2.3659 18.4141 1.98789 18.3803 1.75911 18.1327L0.175313 16.419C-0.0728021 16.1505 -0.0554421 15.7302 0.213964 15.4834L16.783 0.29863L16.8439 0.285044Z"
|
|
14
|
+
fill="currentColor"
|
|
15
|
+
/>
|
|
16
|
+
<path
|
|
17
|
+
d="M18.0016 17.461L2.63451 5.83572C2.3659 5.63251 1.98789 5.66623 1.75911 5.91379L0.175313 7.62757C-0.0728021 7.89602 -0.0554421 8.31628 0.213964 8.56322L16.783 23.7479C17.5329 23.8892 17.9391 23.3555 18.0016 22.9945V17.461Z"
|
|
18
|
+
fill="currentColor"
|
|
19
|
+
/>
|
|
20
|
+
</g>
|
|
21
|
+
</SvgIcon>
|
|
22
|
+
));
|
|
23
|
+
|
|
24
|
+
VSCodeIcon.displayName = 'VSCodeIcon';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const WindsurfIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>Windsurf icon</title>
|
|
7
|
+
<path
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
d="M23.7787 5.00376H23.55C22.3463 5.00188 21.3695 5.97669 21.3695 7.18024V12.0478C21.3695 13.0198 20.566 13.8072 19.6098 13.8072C19.0417 13.8072 18.4746 13.5213 18.138 13.0414L13.1667 5.94109C12.7542 5.35149 12.083 5 11.3564 5C10.223 5 9.20307 5.96357 9.20307 7.15308V12.0488C9.20307 13.0208 8.40623 13.8081 7.44346 13.8081C6.87349 13.8081 6.30724 13.5222 5.97068 13.0424L0.407794 5.09655C0.28217 4.91657 0 5.00564 0 5.22498V9.47015C0 9.68481 0.0656303 9.89291 0.188421 10.0691L5.66319 17.8874C5.98663 18.3495 6.46382 18.6926 7.01408 18.8173C8.39123 19.1303 9.65869 18.0702 9.65869 16.7195V11.8266C9.65869 10.8546 10.4462 10.0672 11.4183 10.0672H11.4211C12.007 10.0672 12.5564 10.3531 12.8929 10.833L17.8652 17.9324C18.2787 18.523 18.9152 18.8735 19.6745 18.8735C20.8332 18.8735 21.826 17.909 21.826 16.7204V11.8257C21.826 10.8537 22.6135 10.0663 23.5856 10.0663H23.7797C23.9015 10.0663 24 9.96787 24 9.84604V5.22402C24 5.10219 23.9015 5.00376 23.7797 5.00376H23.7787Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
</SvgIcon>
|
|
13
|
+
));
|
|
14
|
+
|
|
15
|
+
WindsurfIcon.displayName = 'WindsurfIcon';
|
|
@@ -44,7 +44,7 @@ function TreeNodeItem({
|
|
|
44
44
|
className="absolute left-0 top-0 border-l border-border"
|
|
45
45
|
style={{
|
|
46
46
|
left: node.depth > 0 ? `${(node.depth - 1) * indentSize + 7}px` : '7px',
|
|
47
|
-
bottom: '-
|
|
47
|
+
bottom: '-19px',
|
|
48
48
|
}}
|
|
49
49
|
/>
|
|
50
50
|
)}
|
|
@@ -55,11 +55,11 @@ function TreeNodeItem({
|
|
|
55
55
|
width: `${node.depth * indentSize}px`,
|
|
56
56
|
minWidth: `${node.depth * indentSize}px`,
|
|
57
57
|
}}
|
|
58
|
-
className="relative
|
|
58
|
+
className="relative shrink-0"
|
|
59
59
|
>
|
|
60
60
|
{node.depth > 0 && (
|
|
61
61
|
<div
|
|
62
|
-
className="absolute top-[
|
|
62
|
+
className="absolute top-[19px] border-t border-border"
|
|
63
63
|
style={{
|
|
64
64
|
left: `${(node.depth - 1) * indentSize + 7}px`,
|
|
65
65
|
width: `${indentSize - 7}px`,
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Popover, PopoverContent, PopoverTrigger } from '@radix-ui/react-popover';
|
|
2
|
+
import { HexColorInput, HexColorPicker } from 'react-colorful';
|
|
3
|
+
import { Button } from '@/components/ui/button';
|
|
4
|
+
import { cn } from '@/lib/utils';
|
|
5
|
+
|
|
6
|
+
interface ColorPickerInputProps {
|
|
7
|
+
color: string;
|
|
8
|
+
setColor: (color: string) => void;
|
|
9
|
+
placeholder: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function ColorPickerInput({ placeholder, color, setColor }: ColorPickerInputProps) {
|
|
13
|
+
return (
|
|
14
|
+
<div className="relative flex items-center flex-row max-w-full">
|
|
15
|
+
<div className="absolute left-3 text-sm text-muted-foreground">#</div>
|
|
16
|
+
<HexColorInput
|
|
17
|
+
className={cn(
|
|
18
|
+
'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex 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',
|
|
19
|
+
'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',
|
|
20
|
+
'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive disabled:bg-muted',
|
|
21
|
+
'pl-7 pr-12'
|
|
22
|
+
)}
|
|
23
|
+
color={color}
|
|
24
|
+
onChange={setColor}
|
|
25
|
+
placeholder={placeholder}
|
|
26
|
+
/>
|
|
27
|
+
<div className="z-10 absolute right-3">
|
|
28
|
+
<Popover>
|
|
29
|
+
<PopoverTrigger asChild>
|
|
30
|
+
<Button
|
|
31
|
+
aria-label="color picker"
|
|
32
|
+
className="flex flex-row gap-2 rounded w-6 h-6"
|
|
33
|
+
size="sm"
|
|
34
|
+
variant="ghost"
|
|
35
|
+
style={{ background: color }}
|
|
36
|
+
>
|
|
37
|
+
<span className="sr-only">Color picker</span>
|
|
38
|
+
</Button>
|
|
39
|
+
</PopoverTrigger>
|
|
40
|
+
<PopoverContent className="flex flex-row w-fit p-2">
|
|
41
|
+
<HexColorPicker color={color} onChange={setColor} />
|
|
42
|
+
</PopoverContent>
|
|
43
|
+
</Popover>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
}
|