Skip to content

Commit 6d48444

Browse files
authored
fix(docs): render native block icons instead of the two-letter fallback (#5981)
* fix(docs): render native block icons instead of the two-letter fallback The Table and Logs pages (and every other native resource block) showed a two-letter text fallback because the generated icon map never contained them. Four separate causes in scripts/generate-docs.ts: - The icon-map allowlist had drifted behind NATIVE_RESOURCE_BLOCK_TYPES, the set the docs writer uses. Key the exception off that set so the map cannot fall behind the pages that consume it. - extractIconNameFromContent only matched identifiers ending in `Icon`, so Logs (`icon: Library`) resolved to nothing. Match any identifier, excluding bare JS literals. - The map imported everything from `@/components/icons`, so an icon sourced from `@sim/emcn/icons` could not resolve. Imports are now grouped by the module each icon is actually imported from. - Trigger-only pages (slack_app, twilio) and hand-written pages (a2a) had no entry at all. Seed provider icons from the trigger definitions. Also fixes three regen bugs found while verifying the output: - A comment reading "this becomes `hideFromToolbar: true`" in slack.ts was matched as the property itself, so a clean regen dropped Slack from the integrations catalog and reduced slack.mdx to a 29-line stub. Property probes now run against comment-stripped source. - 16 hand-written *-service-account guides were unregistered, so the stale-doc cleanup deleted them on every regen. Registered them, and cleanup now refuses to delete any page holding MANUAL-CONTENT (this also restores the intros on file.mdx and twilio.mdx). - Trigger outputs referenced as a constant (`outputs: SLACK_TRIGGER_OUTPUTS`) resolved to nothing, dropping whole Output tables. Constants and sibling modules now resolve, which also restores 319 lines on clickup.mdx. Removes the language selector from the docs navbar. Regenerated docs are included; remaining content deltas are tool-definition drift since the last regen. * improvement(docs): drop the preview-gated slack_app page, document managed_agent - slack_oauth is reachable only through the preview-gated slack_v2 block, so documenting it published an unreleased surface under its own slack_app page. Triggers whose every hosting block sets `preview: true` are now excluded from the docs and the icon map. Triggers no block claims are untouched, so standalone webhook providers keep their pages. - Adds the MANUAL-CONTENT intro to managed_agent.mdx, matching the other integration pages. Verified it survives a regen. * fix(docs): stop truncating quoted descriptions, tighten the cleanup guard Review findings from round 1. - parseSubBlockObject read string properties with a single `['"]…[^'"]+…['"]` character class, which ends the match at the first quote of either kind. Any description holding an apostrophe inside a double-quoted string was cut mid-word ("Your app", "Found in your Zoom app"). Matches the opening quote to its own closing quote now, reusing the alternation the tool-description extractor already used. Restores full text across calendly, gmail, google_sheets, hubspot, intercom, whatsapp, and zoom. - The stale-doc cleanup guard tested for a bare `MANUAL-CONTENT-START` substring, so a stray or unterminated marker would pin a stale page that has nothing recoverable. It now gates on what extractManualContent actually returns.
1 parent 54c3e1c commit 6d48444

30 files changed

Lines changed: 1797 additions & 225 deletions

apps/docs/components/icons.tsx

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3683,6 +3683,20 @@ export const AnthropicIcon = (props: SVGProps<SVGSVGElement>) => (
36833683
</svg>
36843684
)
36853685

3686+
export const ClaudeIcon = (props: SVGProps<SVGSVGElement>) => (
3687+
<svg
3688+
{...props}
3689+
fill='currentColor'
3690+
height='1em'
3691+
viewBox='0 0 100 100'
3692+
width='1em'
3693+
xmlns='http://www.w3.org/2000/svg'
3694+
>
3695+
<title>Claude</title>
3696+
<path d='m19.6 66.5 19.7-11 .3-1-.3-.5h-1l-3.3-.2-11.2-.3L14 53l-9.5-.5-2.4-.5L0 49l.2-1.5 2-1.3 2.9.2 6.3.5 9.5.6 6.9.4L38 49.1h1.6l.2-.7-.5-.4-.4-.4L29 41l-10.6-7-5.6-4.1-3-2-1.5-2-.6-4.2 2.7-3 3.7.3.9.2 3.7 2.9 8 6.1L37 36l1.5 1.2.6-.4.1-.3-.7-1.1L33 25l-6-10.4-2.7-4.3-.7-2.6c-.3-1-.4-2-.4-3l3-4.2L28 0l4.2.6L33.8 2l2.6 6 4.1 9.3L47 29.9l2 3.8 1 3.4.3 1h.7v-.5l.5-7.2 1-8.7 1-11.2.3-3.2 1.6-3.8 3-2L61 2.6l2 2.9-.3 1.8-1.1 7.7L59 27.1l-1.5 8.2h.9l1-1.1 4.1-5.4 6.9-8.6 3-3.5L77 13l2.3-1.8h4.3l3.1 4.7-1.4 4.9-4.4 5.6-3.7 4.7-5.3 7.1-3.2 5.7.3.4h.7l12-2.6 6.4-1.1 7.6-1.3 3.5 1.6.4 1.6-1.4 3.4-8.2 2-9.6 2-14.3 3.3-.2.1.2.3 6.4.6 2.8.2h6.8l12.6 1 3.3 2 1.9 2.7-.3 2-5.1 2.6-6.8-1.6-16-3.8-5.4-1.3h-.8v.4l4.6 4.5 8.3 7.5L89 80.1l.5 2.4-1.3 2-1.4-.2-9.2-7-3.6-3-8-6.8h-.5v.7l1.8 2.7 9.8 14.7.5 4.5-.7 1.4-2.6 1-2.7-.6-5.8-8-6-9-4.7-8.2-.5.4-2.9 30.2-1.3 1.5-3 1.2-2.5-2-1.4-3 1.4-6.2 1.6-8 1.3-6.4 1.2-7.9.7-2.6v-.2H49L43 72l-9 12.3-7.2 7.6-1.7.7-3-1.5.3-2.8L24 86l10-12.8 6-7.9 4-4.6-.1-.5h-.3L17.2 77.4l-4.7.6-2-2 .2-3 1-1 8-5.5Z' />
3697+
</svg>
3698+
)
3699+
36863700
export function AzureIcon(props: SVGProps<SVGSVGElement>) {
36873701
const id = useId()
36883702
const gradient0 = `azure_paint0_${id}`
@@ -3823,6 +3837,20 @@ export const ZaiIcon = (props: SVGProps<SVGSVGElement>) => (
38233837
</svg>
38243838
)
38253839

3840+
export const KimiIcon = (props: SVGProps<SVGSVGElement>) => (
3841+
<svg {...props} height='1em' viewBox='0 0 24 24' width='1em' xmlns='http://www.w3.org/2000/svg'>
3842+
<title>Kimi</title>
3843+
<path
3844+
d='M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z'
3845+
fill='#1783FF'
3846+
/>
3847+
<path
3848+
d='M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z'
3849+
fill='currentColor'
3850+
/>
3851+
</svg>
3852+
)
3853+
38263854
export function MetaIcon(props: SVGProps<SVGSVGElement>) {
38273855
const id = useId()
38283856
const gradient1Id = `meta_gradient_1_${id}`
@@ -5723,7 +5751,6 @@ export function SmtpIcon(props: SVGProps<SVGSVGElement>) {
57235751
strokeLinecap='round'
57245752
strokeLinejoin='round'
57255753
/>
5726-
<circle cx='24' cy='6' r='4' fill='currentColor' stroke='none' />
57275754
</svg>
57285755
)
57295756
}

apps/docs/components/navbar/navbar.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import { ChipLink } from '@sim/emcn'
44
import Link from 'next/link'
55
import { usePathname } from 'next/navigation'
6-
import { LanguageDropdown } from '@/components/ui/language-dropdown'
76
import { SearchTrigger } from '@/components/ui/search-trigger'
87
import { SimWordmark } from '@/components/ui/sim-logo'
98
import { ThemeToggle } from '@/components/ui/theme-toggle'
@@ -53,7 +52,6 @@ export function Navbar() {
5352
</div>
5453

5554
<div className='flex items-center gap-2'>
56-
<LanguageDropdown />
5755
<ThemeToggle />
5856
<ChipLink href='https://sim.ai' variant='primary'>
5957
Get started

apps/docs/components/ui/icon-mapping.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
// Maps block types to their icon component references
44

55
import type { ComponentType, SVGProps } from 'react'
6+
import { Library } from '@sim/emcn/icons'
67
import {
8+
A2AIcon,
79
AgentMailIcon,
810
AgentPhoneIcon,
911
AgiloftIcon,
@@ -31,6 +33,7 @@ import {
3133
CalComIcon,
3234
CalendlyIcon,
3335
CirclebackIcon,
36+
ClaudeIcon,
3437
ClayIcon,
3538
ClerkIcon,
3639
ClickHouseIcon,
@@ -184,6 +187,7 @@ import {
184187
RipplingIcon,
185188
RocketlaneIcon,
186189
RootlyIcon,
190+
RssIcon,
187191
S3Icon,
188192
SalesforceIcon,
189193
SapConcurIcon,
@@ -197,6 +201,7 @@ import {
197201
ServiceNowIcon,
198202
SftpIcon,
199203
ShopifyIcon,
204+
SimDeploymentsIcon,
200205
SimilarwebIcon,
201206
SimTriggerIcon,
202207
SixtyfourIcon,
@@ -211,6 +216,7 @@ import {
211216
StagehandIcon,
212217
StripeIcon,
213218
SupabaseIcon,
219+
TableIcon,
214220
TailscaleIcon,
215221
TavilyIcon,
216222
TelegramIcon,
@@ -230,6 +236,7 @@ import {
230236
VideoIcon,
231237
WealthboxIcon,
232238
WebflowIcon,
239+
WebhookIcon,
233240
WhatsAppIcon,
234241
WikipediaIcon,
235242
WizaIcon,
@@ -247,6 +254,7 @@ import {
247254
type IconComponent = ComponentType<SVGProps<SVGSVGElement>>
248255

249256
export const blockTypeToIconMap: Record<string, IconComponent> = {
257+
a2a: A2AIcon,
250258
agentmail: AgentMailIcon,
251259
agentphone: AgentPhoneIcon,
252260
agiloft: AgiloftIcon,
@@ -293,6 +301,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
293301
datadog: DatadogIcon,
294302
datagma: DatagmaIcon,
295303
daytona: DaytonaIcon,
304+
deployments: SimDeploymentsIcon,
296305
devin: DevinIcon,
297306
discord: DiscordIcon,
298307
docusign: DocuSignIcon,
@@ -324,6 +333,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
324333
fireflies_v2: FirefliesIcon,
325334
flint: FlintIcon,
326335
gamma: GammaIcon,
336+
generic: WebhookIcon,
327337
github: GithubIcon,
328338
github_v2: GithubIcon,
329339
gitlab: GitLabIcon,
@@ -352,6 +362,9 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
352362
google_tasks: GoogleTasksIcon,
353363
google_translate: GoogleTranslateIcon,
354364
google_vault: GoogleVaultIcon,
365+
'google-calendar': GoogleCalendarIcon,
366+
'google-drive': GoogleDriveIcon,
367+
'google-sheets': GoogleSheetsIcon,
355368
grafana: GrafanaIcon,
356369
grain: GrainIcon,
357370
grain_v2: GrainIcon,
@@ -374,6 +387,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
374387
jina: JinaAIIcon,
375388
jira: JiraIcon,
376389
jira_service_management: JiraServiceManagementIcon,
390+
jsm: JiraServiceManagementIcon,
377391
jupyter: JupyterIcon,
378392
kalshi: KalshiIcon,
379393
kalshi_v2: KalshiIcon,
@@ -389,10 +403,13 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
389403
linkedin: LinkedInIcon,
390404
linkup: LinkupIcon,
391405
linq: LinqIcon,
406+
logs: Library,
407+
logs_v2: Library,
392408
loops: LoopsIcon,
393409
luma: LumaIcon,
394410
mailchimp: MailchimpIcon,
395411
mailgun: MailgunIcon,
412+
managed_agent: ClaudeIcon,
396413
mem0: Mem0Icon,
397414
memory: BrainIcon,
398415
microsoft_ad: AzureIcon,
@@ -401,6 +418,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
401418
microsoft_excel_v2: MicrosoftExcelIcon,
402419
microsoft_planner: MicrosoftPlannerIcon,
403420
microsoft_teams: MicrosoftTeamsIcon,
421+
'microsoft-teams': MicrosoftTeamsIcon,
404422
millionverifier: MillionVerifierIcon,
405423
mistral_parse: MistralIcon,
406424
mistral_parse_v2: MistralIcon,
@@ -448,6 +466,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
448466
rippling: RipplingIcon,
449467
rocketlane: RocketlaneIcon,
450468
rootly: RootlyIcon,
469+
rss: RssIcon,
451470
s3: S3Icon,
452471
salesforce: SalesforceIcon,
453472
sap_concur: SapConcurIcon,
@@ -478,6 +497,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
478497
stt: STTIcon,
479498
stt_v2: STTIcon,
480499
supabase: SupabaseIcon,
500+
table: TableIcon,
481501
tailscale: TailscaleIcon,
482502
tavily: TavilyIcon,
483503
telegram: TelegramIcon,
@@ -489,6 +509,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
489509
tinybird: TinybirdIcon,
490510
trello: TrelloIcon,
491511
trigger_dev: TriggerDevIcon,
512+
twilio: TwilioIcon,
492513
twilio_sms: TwilioIcon,
493514
twilio_voice: TwilioIcon,
494515
typeform: TypeformIcon,

apps/docs/components/ui/language-dropdown.tsx

Lines changed: 0 additions & 59 deletions
This file was deleted.

apps/docs/content/docs/en/integrations/ashby.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,6 @@ Lists all applications in an Ashby organization with pagination and optional fil
544544
| `perPage` | number | No | Number of results per page \(default 100\) |
545545
| `status` | string | No | Filter by application status: Active, Hired, Archived, or Lead |
546546
| `jobId` | string | No | Filter applications by a specific job UUID |
547-
| `candidateId` | string | No | Filter applications by a specific candidate UUID |
548547
| `createdAfter` | string | No | Filter to applications created after this ISO 8601 timestamp \(e.g. 2024-01-01T00:00:00Z\) |
549548

550549
#### Output

0 commit comments

Comments
 (0)