Commit Graph

171 Commits

Author SHA1 Message Date
Malay Vasa d8ec506ec8 fix docs Decimal widget loading (#3575)
## Summary
- stop loading the Decimal widget globally from the docs root layout
- load the Decimal script only when the user clicks Ask AI or uses the
shortcut
- preserve Decimal theme syncing after the widget has loaded

## Why
Slack/GSC investigation pointed at mobile CLS regressions on docs pages.
Lighthouse trace comparison isolated the layout shift to the Decimal
iframe/sidebar; blocking Decimal took /docs CLS from ~0.302 to 0, while
blocking PostHog did not change CLS.

## Validation
- bun run types:check
- bunx eslint app/layout.tsx components/ask-ai-button.tsx
components/custom-search-dialog.tsx components/decimal-widget.ts
- bun run test
- local Playwright check on http://localhost:3000/docs: no getdecimal
scripts or requests before interaction; after clicking Ask AI the
Decimal script loads and the sidebar opens

## Notes
- full `bun run lint` is still red on existing unrelated docs lint
issues on next, including @next/next/no-html-link-for-pages and
react-hooks compiler rules in other files
2026-06-15 18:10:36 -07:00
Malay Vasa e1ec52bbca docs: dark mode, navbar polish, scroll reset, platform→dashboard rename (#3465)
## Summary

- **Dark/light theme switcher** in the navbar. Drops `forcedTheme:
'light'` so the toggle actually flips themes; sidebar footer toggle
stays disabled so there's only one switcher.
- **Dark mode color pass.** `--composio-brand` lifts to a muted
`#5B8BF0` (the deep `#0007cd` brand reads as unlit text on `#0f0f0f`).
Card / muted greys nudge to `#1c1c1c` / `#1f1f1f`. Borders drop from 10%
white to 6% so card edges sit back. `--border` / `--sidebar-border`
follow suit.
- **Square navbar.** Search input and the new theme toggle render with
`border-radius: 0` to match the rest of the navbar.
- **Welcome-page scroll reset.** New `ScrollReset` client component
wired into the root layout. Next.js App Router skips its built-in scroll
reset when the new route resolves to the same dynamic `page.tsx` segment
— every link from the welcome page to a `/docs/*` page hits this case,
so users were landing mid-page on the new route. Now `usePathname()`
change ⇒ `window.scrollTo(0, 0)` (skips first render and any
hash-bearing navigation).
- **`platform.composio.dev` → `dashboard.composio.dev`** across docs
content + the direct-execution LLM guardrail (28 files).
`docs/public/openapi*.json` left alone — auto-generated, and the
surviving reference is literally to the legacy dashboard.

## Test plan

- [ ] Toggle theme from the navbar; verify both light and dark render
- [ ] In dark mode, confirm "Docs" nav active state, chip icons,
"CONNECTED" labels, and Ask AI button read clearly against `#0f0f0f`
- [ ] Scroll to the bottom of `/docs`, click any link in HomeResources /
HomeSurfaces / HomeFeatures — the new page should land at scroll 0
- [ ] Click a TOC `#anchor` link inside a docs page — should still
scroll to the anchor (not get clobbered to 0)
- [ ] Spot-check a few rewritten URLs in cookbooks / quickstart — all
`platform.composio.dev` should now be `dashboard.composio.dev`

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-05-20 00:06:06 -07:00
Malay Vasa d84557ca21 docs: rework welcome page with v2 hero and homepage sections (#3464)
## Summary

Reworks the docs welcome page (`/docs`) into a two-column hero with an
animated agent chat mock + tool overlay, plus four restructured homepage
sections.

### Hero (`DocsHeroV2`)
- Left: headline (`Start building with Composio.`), short sub,
brand-blue chip column (Quickstart, API reference, Toolkits).
- Right (lg+ only): mock chat panel with the v1 hero's per-agent skin
(`Claude Cowork` / `ChatGPT Codex` / `Your AI Agent`), step-by-step
timeline-driven animation (user prompt → thinking dots → tool-trail
items → assistant response), and a floating "active tool" card layered
over the chat's left edge.
- L-shape SVG connector between chat and overlay: muted grey resting
state + brand-blue glow + bright line that re-draw via `pathLength` on
every tool change.
- Mock chat hidden below lg.

### Homepage sections
- **`HomeFeatures`** — `Everything you need to ship production agents.`
2×2 grid with bespoke visuals per pillar: 8×2 toolkit grid with `+1K`
cell, sessions panel (`USER_ID` + connected apps), triggers feed (`LIVE`
indicator + recent events), and a workbench mock with animated 4×2 CPU
lights. `auto-rows-fr` on `sm:` so cards equalize on tablet/desktop but
breathe on mobile.
- **`HomeSurfaces`** — `Three ways to use Composio.` bento: Developer
card spans full width (`md:col-span-3`) and shows 8 provider logos
(Anthropic, OpenAI, Vercel AI, Google, LangChain, CrewAI, LlamaIndex,
Mastra). Row 2: For You (with Claude / Codex / Cursor / Windsurf /
OpenClaw client logos), CLI (with `curl ... | bash` install snippet and
functional copy button), Agents.
- **`HomeResources`** — `Reach for the rest.` six-card footer row with
Quickstart, API reference, Cookbooks, Changelog, Toolkits,
Troubleshooting.

### Other
- Ports the landing-page hero into `components/landing-hero/` (kept
under the original `DocsHero` for easy revert; commented out, V2 wired
in).
- Theme-aware `--hero-*` CSS vars for chat-skin colors so the chat reads
in both light and dark.
- Removes the old `Works with your stack` provider grid (the providers
now live inside the Developer surface card).

## Test plan
- [ ] Verify hero animation cycles through 3 examples on desktop
- [ ] Verify L-shape connector pulses in brand blue on every tool change
- [ ] Verify chat mock is hidden on mobile and left column reads on its
own
- [ ] Verify dark mode (chat skins, connector, card surfaces, code
blocks)
- [ ] Verify CLI install copy button copies and toggles the icon to ✓
- [ ] Verify all chip / card hrefs resolve

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 22:06:35 -07:00
Rahul Tarak 3411c39adc docs: update CLI and reference navigation (#3462)
## Summary
- Rework the CLI docs around Composio for You / Claude Code usage, with
sections for knowledge work, `run`/sub-agents, trigger listening,
developer workflows, and unsupported direct CLI embedding.
- Move CLI into the top of Other topics and remove single-toolkit MCP
from the Docs sidebar.
- Move Changelog into Reference after Errors, with a grouped single-page
changelog, scroll-based date anchors, and redirects from old
`/docs/changelog` URLs.
- Add the Claude logo to the “Open in Claude” page action.

## Tests
- `cd docs && bun run lint:links`
- `cd docs && bun test tests/static/navigation.test.ts`
- `cd docs && bun run build`
2026-05-19 17:01:58 -07:00
Rahul Tarak e842e68e4b docs: merge and group guide content (#3456)
## Summary
- Stack this PR on top of #3455 (`docs/love-fixes`).
- Rework the former Core Concepts / Getting Started / Guides / Features
area into a smaller set of sections:
  - Build with sessions
  - Authenticate users
  - Triggers and webhooks
  - Direct Tool Execution Guides (Legacy)
  - Other topics
- Move conceptual session pages (`how-composio-works`, users/sessions,
tools/toolkits, authentication, workbench, triggers) into the
appropriate grouped sections.
- Merge duplicated custom-auth content into `Managed vs custom auth`
(`/docs/custom-app-vs-managed-app`) and redirect the old
`/docs/using-custom-auth-configuration` URL.
- Trim repeated OAuth-app setup from white-labeling docs so that page
focuses on branding, callback-domain routing, and post-auth redirect UX.
- Clean up “What to read next” cards so non-legacy pages no longer point
at direct-execution docs and first point to the next item in their
section where possible.
- Fix the session lifecycle contradiction in `how-composio-works` so it
matches the current persisted/reusable session model.

## Checks
- `cd docs && bun run lint:links`
- `cd docs && bun test tests/static/navigation.test.ts`
2026-05-19 05:17:31 -07:00
Rahul Tarak 9acfa852b2 docs: tidy welcome page, fix playground link, hide ugly Ask AI tab (#3455)
## Summary

Three small docs polishes:

- **Hide the disgusting "Ask AI" side tab.** The Decimal widget renders
its own `.decimal-widget-sidebar-tab` launcher (vertical pill with
sideways text) on every page. We already trigger the widget from our own
"Ask AI" button in the nav, so the third-party launcher is redundant
*and* ugly. Hidden via CSS in `app/global.css`.
- **Fix the Playground nav link.** It pointed at
`platform.composio.dev/auth?next_page=/tool-router` — which (a) hits a
dead host now that platform has moved to `dashboard.composio.dev`, and
(b) lost the playground's connect check on the redirect. Repointed to
`https://dashboard.composio.dev/~/project/playground`, which is the
dashboard's smart-resolver route: it handles login (`?next=`), looks up
`last_visited` / default org+project, and lands the user on
`/{org}/{project}/playground` with the connect step intact. Same fix
applied to the toolkits landing CTA and the welcome-page Playground
card.
- **Trim the welcome page.** Dropped the duplicated intro Cards row, the
"Get Started" / "Explore" / "Features" / "Community" headers, and the
secondary Features grid. Now it's: intro → AIToolsBanner → Quickstart →
Toolkits + Playground → Providers. Much cleaner.

## Test plan

- [ ] `bun run scripts/validate-links.ts` passes (already verified
locally — 0 errors)
- [ ] On preview deploy, the side "Ask AI" tab is gone
- [ ] Clicking "Playground" in the nav (logged out) lands on login →
playground; (logged in) lands on `/{org}/{project}/playground`
- [ ] Welcome page renders without missing-icon errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 04:09:48 -07:00
Rahul Tarak 18c3b98de6 docs: reapply Algolia docs search (#3454)
## Summary
- Re-apply the Algolia docs search migration after the previous PR was
merged and reverted.
- Keep the existing Fumadocs search UI while using Algolia API when
search keys are configured, with `/api/search` fallback for local
development and tests.
- Add a first-party Algolia index builder/sync script that creates
section-sized docs records from MDX/OpenAPI/toolkit/changelog content,
configures index relevance settings, and replaces index objects without
relying on Algolia Crawler.
- Add Algolia Insights view/click events and a terminal search relevance
test script.
- Clean search breadcrumbs so results show labels like `Toolkit` and
`Cookbook` instead of duplicated `toolkits > Gmail` formatting.

## Tests
- `cd docs && bun run types:check`
- `cd docs && bun run sync:search --dry-run`
- `cd docs && bunx eslint components/custom-search-dialog.tsx
lib/search-index.ts scripts/sync-algolia-search.ts
scripts/test-algolia-search.ts`

## Notes
- Live Algolia sync requires `ALGOLIA_ADMIN_API_KEY`.
- Live search relevance tests require `ALGOLIA_SEARCH_API_KEY` or
`NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY`.
2026-05-19 02:27:40 -07:00
Rahul Tarak 5f400fc5f7 Revert "docs: migrate search to Algolia" (#3453)
Reverts ComposioHQ/composio#3452
2026-05-19 01:34:36 -07:00
Rahul Tarak 7bd3e0669c docs: migrate search to Algolia (#3452)
## Summary
- Switch docs search dialog to Algolia when public Algolia env vars are
configured, with local `/api/search` fallback for development/tests
- Add a shared docs search index builder plus `bun run sync:search` to
publish records to Algolia
- Add a GitHub Actions workflow to dry-run and sync the Algolia index on
`next` docs changes when secrets are configured
- Document required Algolia env vars and sync command

## Tests
- `cd docs && bun run types:check`
- `cd docs && bun run sync:search --dry-run`
- `cd docs && bun test tests/static/`
- `cd docs && bunx eslint components/custom-search-dialog.tsx
lib/search-index.ts scripts/sync-algolia-search.ts`
- `cd docs && bun run build`

## Notes
- `bun run lint` still fails on existing unrelated repo-wide lint errors
in files outside this change (for example `app/global-error.tsx`,
`components/ask-ai-button.tsx`, `components/version-selector.tsx`). The
changed search files pass targeted ESLint.
- Production search requires `NEXT_PUBLIC_ALGOLIA_APP_ID`,
`NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY`, and optionally
`NEXT_PUBLIC_ALGOLIA_INDEX_NAME` (default `composio_docs`). Index
syncing requires `ALGOLIA_APP_ID`/`ALGOLIA_ADMIN_API_KEY` secrets.
2026-05-19 01:33:26 -07:00
Sushmitha Mallesh b14810b3a4 docs: dual API version reference (v3.1 + v3.0) (#3179) 2026-04-11 15:26:24 -07:00
Sushmithamallesh db3760a816 fix: resolve mobile scrolling issues across docs site
Use overflow-x: clip instead of hidden on body to avoid iOS Safari scroll
blocking, and replace all vh units with dvh for proper mobile viewport handling.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 22:20:22 -07:00
Sushmitha Mallesh fb161d2640 docs: support additionalProperties in tool schema rendering
Schemas using additionalProperties (e.g. JIRA_GET_ISSUE_CREATE_METADATA's
FieldMetadata map) were silently dropped, rendering as empty "object" types.
Now they display as [key: string] entries with full nested structure, matching
the fumadocs-openapi convention.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 11:31:35 -07:00
Sushmitha Mallesh 99df5f7910 fix: use @2xl container breakpoint for AI tools banner columns
The @md container breakpoint (448px) was too small — the banner was
still wider than that with the sidebar open. Bump to @2xl (672px) so
columns only go side-by-side when the banner genuinely has enough room.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:03:59 -07:00
Sushmitha Mallesh ddfce2c71f fix: use container queries for AI tools banner two-column layout
Media queries respond to viewport width, not the actual container width.
When the Decimal push-sidebar is open the viewport stays wide but the
content area shrinks, keeping the two-column layout even when there is
not enough room. Switch to @container / @md: so the columns stack based
on the banner's own width.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:58:51 -07:00
Sushmitha Mallesh 28d643916d fix: Ask AI widget toggle and layout stability
- Add overflow-x:hidden and max-width transition to body so the Decimal
  push-sidebar animates smoothly without horizontal scroll
- Replace stale module-level widgetOpen flag with DOM query
  (`.decimal-widget-sidebar.open`) so toggle stays in sync when the
  widget is closed by the user directly
- Bump AI tools banner two-column breakpoint from sm to md so it stacks
  gracefully when the sidebar squeezes the content area

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:58:37 -07:00
Sushmitha Mallesh 16eaf39ad5 docs: fix React state mutation in managed-auth-list
Spread array before sorting to avoid mutating state directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:21:43 -07:00
Sushmitha Mallesh 5f660d3eb3 docs: fix prose link color leaking into PageActions on toolkit pages
Move back link, title, and PageActions outside the prose wrapper so
anchor styles don't override the component's own styling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:16:44 -07:00
Sushmitha Mallesh a032fb8edc docs: add managed auth list page and improve toolkits landing
Add searchable managed auth page at /toolkits/managed-auth with tabs
for managed vs unmanaged OAuth toolkits, copy slugs, and auto-tab
switching on search. Use fumadocs Cards on toolkits landing page.
Add server-side markdown generation for LLM view. Fix title/back-link
ordering for toolkit MDX pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:05:35 -07:00
Sushmitha Mallesh 7edefd0958 fix(docs): add timer cleanup and aria-hidden to AIToolsBanner
- Add timerRef with clearTimeout to prevent copy indicator race condition
- Add aria-hidden="true" to all decorative icons (Bot, ExternalLink,
  Terminal, FileText) to prevent redundant screen reader announcements

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:14:10 -07:00
Sushmitha Mallesh 182f9b709f docs: use PromptBanner-style blobs instead of gradient for AIToolsBanner
Switch from linear gradient to bg-fd-card with subtle orange radial
blobs, matching the PromptBanner visual treatment on quickstart.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:11:00 -07:00
Sushmitha Mallesh 9d1e03ef61 Merge branch 'next' into docs/for-ai-tools 2026-03-09 15:03:49 -07:00
Sushmitha Mallesh ce87458476 fix: use overflow-y-auto on search scroll container for default links
The wrapper used overflow-hidden which clipped the default links list
on small mobile viewports. Change to overflow-y-auto so both the
default links and search results branches are scrollable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:58:32 -07:00
Sushmitha Mallesh bdf3459103 docs: redesign AIToolsBanner with warm gradient, two-column layout
Replaces the grid-pattern background with a warm orange gradient,
adds two-column Skills+CLI layout, compact spacing, and proper
async clipboard handling matching the PromptBanner style.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:55:55 -07:00
Sushmitha Mallesh ceaffc5484 fix: target search results with wrapper class instead of data-empty
The previous CSS used div[data-empty] to target the SearchDialogList,
which is a fumadocs internal attribute. Replace with a controlled
wrapper div (.search-scroll-container) around the results area so the
flex-shrink and max-height overrides apply regardless of list state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:53:41 -07:00
Sushmitha Mallesh 3aea37c302 fix: enable mobile scrolling in search dialog
The search results list was unscrollable on mobile because the dialog
had no max-height constraint and the inner list used a fixed max-h of
460px that exceeded the viewport when the keyboard was open. Constrain
the dialog to 100dvh on mobile with flex layout so the list shrinks to
fit the available space.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:37:38 -07:00
Sushmitha Mallesh 6bbfb34ba2 fix(docs): address Claude review — aria-hidden on SVG, mobile wrap
- Add aria-hidden="true" to decorative sparkle SVG
- Add flex-wrap on mobile, flex-nowrap on sm+ to prevent overflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 00:18:39 -08:00
Sushmitha Mallesh 7d366f90e2 fix(docs): improve PromptBanner robustness
- Await clipboard.writeText and only show success on fulfilled promise
- Clean up setTimeout on unmount and debounce rapid clicks via timerRef
- Extract pure DOM helpers (detectLang, getTabLabel, extractSteps) outside component
- Eliminate duplicate querySelector('code') call in extractSteps loop

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 00:05:31 -08:00
Sushmitha Mallesh cb6e1172ed docs: rewrite prompt code extraction to fix Radix tab leak
- Walk up from pre to step boundary only (not past it) to find tab panels
- Match tab panel to trigger by index position in sibling panels/tabs
- Improve language detection (data-language, data-lang, content heuristics)
- Broader step title selector (h2-h4, class patterns)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:57:46 -08:00
Sushmitha Mallesh 6ebdcb34ee docs: fix Radix tab ID leak in copied prompt — use aria-labelledby to find trigger text
The tab panel's data-value contains Radix internal IDs like
"radix _r_1k_ trigger python". Instead, look up the tab trigger
element via aria-labelledby to get the clean label ("Python").

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:56:11 -08:00
Sushmitha Mallesh 4b2040f4d4 docs: improve prompt quality — language detection, tab labels, cleanup
- Detect code block language from data-language attr, class, or content
- Label code blocks with their tab name (Python/TypeScript) when in tabs
- Remove redundant "Latest docs" URL from all 6 prompts
- Drop prose paragraphs from extraction (just step titles + code)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:51:18 -08:00
Sushmitha Mallesh ecd602c2b0 docs: reorder copied prompt — code first, rules after
Restructure the copy output so code examples come right after the
context intro, with key concepts, rules, and verify checklist at
the end as guardrails. Remove redundant "code examples included
below" line.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:50:28 -08:00
Sushmitha Mallesh ca8f87207e docs: fix innerText on hidden element — use sr-only instead of hidden
Cursor Bugbot correctly flagged that `innerText` on a `display: none`
element falls back to `textContent`, losing line breaks. Using `sr-only`
keeps the element rendered (position: absolute, 1px) so `innerText`
preserves formatting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:48:07 -08:00
Sushmitha Mallesh caf085fce6 docs: extract Steps code properly for prompt copy, improve prompt text
- PromptBanner now extracts code blocks from sibling Steps with proper
  fenced markdown formatting instead of dumping raw innerText
- Update prompt intro line to clarify code examples are appended below

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:46:56 -08:00
Sushmitha Mallesh 3bc7565db4 Merge branch 'next' into docs/quickstart-prompts 2026-03-06 23:34:07 -08:00
Sushmitha Mallesh 005e5939fe docs: upgrade PromptBanner with shader gradient background and fix TOC
- Replace sparkle SVGs with radial gradient blobs for a mesh shader effect
- Fix TOC pollution by converting markdown headings in prompt content to bold text
- Move banner text left with flex-1, use slant arrow (↗) on Skills button

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:32:17 -08:00
Sushmitha Mallesh 2ff8570e14 docs: add PromptBanner with copyable AI coding prompts to quickstart
Add a banner component to each quickstart integration flow with
"Skills" link and "Copy prompt" button. Includes 6 detailed prompts
(OpenAI Agents, Claude Agent SDK, Vercel AI × Native/MCP) with
complete working code, install commands, rules, and verify checklists.
The PromptBanner is stripped from .md output for LLM readers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:21:11 -08:00
Sushmitha Mallesh c2965f86ae docs: fix required indicators, clean stale fields, remove examples
- Fix required parameter badges by reading JSON Schema `required` array
  from parent level instead of per-property boolean (was always undefined)
- Remove stale category/categoryLabel fields from meta-tools.json
- Align meta.json sidebar order with generator script (alphabetical)
- Remove examples display from meta tool detail component

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 22:23:48 -08:00
Sushmitha Mallesh 788255f030 docs: add Meta Tools reference section
Add a programmatic Meta Tools reference under Reference > Meta Tools,
powered by data fetched from the Tool Router API.

- Generator script fetches tool schemas from API, produces JSON + MDX
- CI auto-updates via docs-update-data.yml on Apollo deploys
- Individual tool pages show tags, input parameters, and response schemas
- .md endpoint renders full parameter details for LLM consumers
- Updated existing docs to include COMPOSIO_GET_TOOL_SCHEMAS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 22:07:05 -08:00
Sushmitha Mallesh 44dee62db7 fix(docs): improve Connect page dark mode styling
- Add iconDark prop support to ConnectClientOption (dark:hidden/dark:block pattern)
- Create dark variants for mcp.svg and notion.svg (black fills → white)
- Improve selected tab contrast in dark mode (dark:bg-fd-accent/60)
- Extract shared ClientIcon component for consistent dark mode handling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 17:50:51 -08:00
Sushmitha Mallesh fb613a42f3 fix(docs): use correct ARIA menu roles for connect dropdown
- aria-haspopup="menu" (was "listbox")
- role="menu" on popup container
- role="menuitem" on each dropdown button

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 17:15:03 -08:00
Sushmitha Mallesh 96ff90b0e3 docs: render client headings from component to keep them out of TOC
ConnectClientOption now renders an <h2> heading from its name prop.
This keeps client names visible on the page but out of the TOC, since
fumadocs only extracts markdown ## headings for TOC, not React-rendered ones.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 16:50:43 -08:00
Sushmitha Mallesh afa1ef9af1 fix(docs): add aria attributes and Escape handler to connect dropdown
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 16:46:32 -08:00
Sushmitha Mallesh b94f1f70f0 docs: add Composio Connect page with MCP setup instructions
Add a new documentation page for Composio Connect — a consumer-facing
guide for adding Composio tools to AI agents via MCP. Includes setup
instructions for 13 clients (Claude Code, Codex, OpenClaw, Claude
Desktop, ChatGPT, Cursor, Notion, VS Code, Windsurf, Cline, Agent
Builder, n8n, and generic MCP URL).

- New ConnectFlow component with popular tabs + dropdown for other clients
- Client logos copied from dashboard repo
- Fix LLM markdown output: move brace-stripping regex inside
  code-block-aware loop to preserve JSON code blocks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 16:43:36 -08:00
karthikeya-meesala 331b2a940c fix(docs): update "Try toolkit" button to link to marketplace page
The button was linking to auth?next_page=/tool-router which redirects
to a generic "building smarter agents" page with no toolkit context.
Now links directly to platform.composio.dev/marketplace/{slug}.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:47:00 -08:00
Sushmitha Mallesh da86e230e2 docs: only show quickstart label/link when inside quickstart portal
IntegrationTabs is also used on openai.mdx for "Responses API" / "Chat
Completions" tabs. The "Choose your integration type" label and guide
link only apply to the quickstart Native Tools vs MCP context. Now only
renders the portal version (with label, divider, link) when using the
default tabs; custom tabs get plain inline rendering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 12:35:47 -08:00
Sushmitha Mallesh b05a34ec2e docs: fix portal timing bug for integration tabs header
The IntegrationTabsHeader useEffect ran with empty deps before the
portal target div existed (frameworks register asynchronously). Use a
MutationObserver to wait for the target to appear in the DOM.

Also remove redundant text-left on the "Other providers" link.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 12:16:19 -08:00
Sushmitha Mallesh 475ad48deb Merge branch 'next' into docs/quickstart-selector-ux 2026-03-05 11:51:19 -08:00
Sushmitha Mallesh 83b274bfc5 docs: improve quickstart selector discoverability
Users were missing the framework and integration type selectors on the
quickstart page. Wrap both in a single bordered card with labels
("Choose your framework", "Choose your integration type") and add an
"Other providers" link card pointing to /docs/providers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 11:50:33 -08:00
Sushmitha Mallesh d77d7c23da docs: fix inconsistent OAuth detection between UI and markdown
Use toolkit.authSchemes as the single source of truth for hasOAuth
in both the UI badge and markdown export, instead of the UI deriving
it from filtered authConfigDetails which could diverge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 23:01:45 -08:00
Sushmitha Mallesh f08433caf0 docs: show Composio Managed App availability on toolkit pages
Surface the `composioManagedAuthSchemes` field from the API on toolkit
pages so users know upfront whether they can use Composio's managed
OAuth or need to provide their own credentials.

- Add `composioManagedAuthSchemes` to Toolkit type and generate script
- Show badge next to Authentication Details heading (OAuth toolkits only)
- Include managed app status in markdown/LLM export and toolkits index
- Regenerate toolkits.json with managed auth data (114/980 toolkits)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:50:39 -08:00