fix(suggested-actions): swap unaudited filled icons for EMCN outline set (#5548)

* fix(suggested-actions): swap unaudited filled icons for EMCN outline set

Suggested-action template icons on the home page mixed filled/solid
icons in with the app's outline icon convention. Swapped them for
consistent outline icons and removed the unused filled Card icon.

- gmail.ts: Card -> ClipboardList
- clickhouse.ts, sftp.ts: Trash -> TrashOutline
- ssh.ts: TerminalWindow (emcn) -> SshTerminalIcon (moved to
  components/icons.tsx alongside the other block/brand icons)
- deleted unused packages/emcn/src/icons/card.tsx
- regenerated docs

* fix(docs): revert jira.mdx regen regression

generate-docs.ts is dropping the Configuration and generic-webhook
Output tables for Jira triggers even though the trigger schemas still
define those fields (caught by Greptile review). Unrelated to the
icon changes in this PR, so reverting jira.mdx to its prior content
rather than debugging the generator here.

* fix(build): remove last Card icon consumer in playground gallery

apps/sim/app/playground/page.tsx imported Card from the top-level
@sim/emcn barrel for the icon showcase grid, which I missed when
auditing @sim/emcn/icons consumers. Broke the production build after
card.tsx was deleted. Removed the import and its gallery entry.
Verified with a local `bun run build`.
This commit is contained in:
Waleed
2026-07-09 15:55:58 -07:00
committed by GitHub
parent ce32993c76
commit aa5b1d5569
13 changed files with 140 additions and 52 deletions
+77
View File
@@ -3687,6 +3687,62 @@ export const SakanaIcon = (props: SVGProps<SVGSVGElement>) => (
</svg>
)
export function MetaIcon(props: SVGProps<SVGSVGElement>) {
const id = useId()
const gradient1Id = `meta_gradient_1_${id}`
const gradient2Id = `meta_gradient_2_${id}`
return (
<svg
{...props}
height='1em'
viewBox='0 -48.28 287.56 287.56'
width='1em'
xmlns='http://www.w3.org/2000/svg'
>
<title>Meta</title>
<defs>
<linearGradient
id={gradient1Id}
x1='61'
x2='259'
y1='117'
y2='127'
gradientUnits='userSpaceOnUse'
>
<stop offset='0' stopColor='#0064e1' />
<stop offset='0.4' stopColor='#0064e1' />
<stop offset='0.83' stopColor='#0073ee' />
<stop offset='1' stopColor='#0082fb' />
</linearGradient>
<linearGradient
id={gradient2Id}
x1='45'
x2='45'
y1='139'
y2='66'
gradientUnits='userSpaceOnUse'
>
<stop offset='0' stopColor='#0082fb' />
<stop offset='1' stopColor='#0064e0' />
</linearGradient>
</defs>
<path
d='m31.06,125.96c0,10.98 2.41,19.41 5.56,24.51 4.13,6.68 10.29,9.51 16.57,9.51 8.1,0 15.51-2.01 29.79-21.76 11.44-15.83 24.92-38.05 33.99-51.98l15.36-23.6c10.67-16.39 23.02-34.61 37.18-46.96 11.56-10.08 24.03-15.68 36.58-15.68 21.07,0 41.14,12.21 56.5,35.11 16.81,25.08 24.97,56.67 24.97,89.27 0,19.38-3.82,33.62-10.32,44.87-6.28,10.88-18.52,21.75-39.11,21.75l0-31.02c17.63,0 22.03-16.2 22.03-34.74 0-26.42-6.16-55.74-19.73-76.69-9.63-14.86-22.11-23.94-35.84-23.94-14.85,0-26.8,11.2-40.23,31.17-7.14,10.61-14.47,23.54-22.7,38.13l-9.06,16.05c-18.2,32.27-22.81,39.62-31.91,51.75-15.95,21.24-29.57,29.29-47.5,29.29-21.27,0-34.72-9.21-43.05-23.09-6.8-11.31-10.14-26.15-10.14-43.06z'
fill='#0081fb'
/>
<path
d='m24.49,37.3c14.24-21.95 34.79-37.3 58.36-37.3 13.65,0 27.22,4.04 41.39,15.61 15.5,12.65 32.02,33.48 52.63,67.81l7.39,12.32c17.84,29.72 27.99,45.01 33.93,52.22 7.64,9.26 12.99,12.02 19.94,12.02 17.63,0 22.03-16.2 22.03-34.74l27.4-.86c0,19.38-3.82,33.62-10.32,44.87-6.28,10.88-18.52,21.75-39.11,21.75-12.8,0-24.14-2.78-36.68-14.61-9.64-9.08-20.91-25.21-29.58-39.71l-25.79-43.08c-12.94-21.62-24.81-37.74-31.68-45.04-7.39-7.85-16.89-17.33-32.05-17.33-12.27,0-22.69,8.61-31.41,21.78z'
fill={`url(#${gradient1Id})`}
/>
<path
d='m82.35,31.23c-12.27,0-22.69,8.61-31.41,21.78-12.33,18.61-19.88,46.33-19.88,72.95 0,10.98 2.41,19.41 5.56,24.51l-26.48,17.44c-6.8-11.31-10.14-26.15-10.14-43.06 0-30.75 8.44-62.8 24.49-87.55 14.24-21.95 34.79-37.3 58.36-37.3z'
fill={`url(#${gradient2Id})`}
/>
</svg>
)
}
export function GeminiIcon(props: SVGProps<SVGSVGElement>) {
const id = useId()
const gradientId = `gemini_gradient_${id}`
@@ -5572,6 +5628,27 @@ export function SshIcon(props: SVGProps<SVGSVGElement>) {
)
}
export function SshTerminalIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
width='16'
height='14'
viewBox='0 0 16 14'
fill='none'
>
<path
d='M3 0C1.34 0 0 1.34 0 3V11C0 12.66 1.34 14 3 14H13C14.66 14 16 12.66 16 11V3C16 1.34 14.66 0 13 0H3ZM1 3C1 1.9 1.9 1 3 1H13C14.1 1 15 1.9 15 3V4H1V3ZM1 5H15V11C15 12.1 14.1 13 13 13H3C1.9 13 1 12.1 1 11V5Z'
fill='currentColor'
/>
<circle cx='3.5' cy='2.5' r='0.75' fill='currentColor' />
<circle cx='5.75' cy='2.5' r='0.75' fill='currentColor' />
<circle cx='8' cy='2.5' r='0.75' fill='currentColor' />
</svg>
)
}
export function SftpIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
@@ -1109,6 +1109,7 @@ Trigger workflow when a new application is submitted
| ↳ `currentInterviewStage` | object | currentInterviewStage output from the tool |
| ↳ `id` | string | Current interview stage UUID |
| ↳ `title` | string | Current interview stage title |
| ↳ `stageType` | string | Current interview stage type \(e.g., Lead, Applied, Interview, Offer\) |
| ↳ `job` | object | job output from the tool |
| ↳ `id` | string | Job UUID |
| ↳ `title` | string | Job title |
@@ -1163,6 +1164,7 @@ Trigger workflow when a candidate is hired
| ↳ `currentInterviewStage` | object | currentInterviewStage output from the tool |
| ↳ `id` | string | Current interview stage UUID |
| ↳ `title` | string | Current interview stage title |
| ↳ `stageType` | string | Current interview stage type \(e.g., Lead, Applied, Interview, Offer\) |
| ↳ `job` | object | job output from the tool |
| ↳ `id` | string | Job UUID |
| ↳ `title` | string | Job title |
@@ -1204,6 +1206,7 @@ Trigger workflow when a candidate changes interview stages
| ↳ `currentInterviewStage` | object | currentInterviewStage output from the tool |
| ↳ `id` | string | Current interview stage UUID |
| ↳ `title` | string | Current interview stage title |
| ↳ `stageType` | string | Current interview stage type \(e.g., Lead, Applied, Interview, Offer\) |
| ↳ `job` | object | job output from the tool |
| ↳ `id` | string | Job UUID |
| ↳ `title` | string | Job title |
@@ -1231,7 +1234,7 @@ Trigger workflow when a new job is created
| ↳ `title` | string | Job title |
| ↳ `confidential` | boolean | Whether the job is confidential |
| ↳ `status` | string | Job status \(Open, Closed, Draft, Archived\) |
| ↳ `employmentType` | string | Employment type \(Full-time, Part-time, etc.\) |
| ↳ `employmentType` | string | Employment type \(FullTime, PartTime, Intern, Contract\) |
---
@@ -1254,8 +1257,8 @@ Trigger workflow when a new offer is created
| `offer` | object | offer output from the tool |
| ↳ `id` | string | Offer UUID |
| ↳ `applicationId` | string | Associated application UUID |
| ↳ `acceptanceStatus` | string | Offer acceptance status \(Accepted, Declined, Pending, Created, Cancelled, WaitingOnResponse\) |
| ↳ `offerStatus` | string | Offer process status \(WaitingOnApprovalStart, WaitingOnOfferApproval, WaitingOnCandidateResponse, CandidateAccepted, CandidateRejected, OfferCancelled\) |
| ↳ `acceptanceStatus` | string | Offer acceptance status \(Accepted, Declined, Pending, Created, Cancelled\) |
| ↳ `offerStatus` | string | Offer process status \(WaitingOnApprovalStart, WaitingOnOfferApproval, WaitingOnApprovalDefinition, WaitingOnCandidateResponse, CandidateRejected, CandidateAccepted, OfferCancelled\) |
| ↳ `decidedAt` | string | Offer decision timestamp \(ISO 8601\). Typically null at creation; populated after candidate responds. |
| ↳ `latestVersion` | object | latestVersion output from the tool |
| ↳ `id` | string | Latest offer version UUID |
@@ -882,6 +882,7 @@ Trigger workflow when an issue is opened, updated, or closed in GitLab
| ↳ `description` | string | Issue description |
| ↳ `confidential` | boolean | Whether the issue is confidential |
| ↳ `url` | string | Issue URL |
| ↳ `work_item_type` | string | Work item type \(e.g. Issue, Incident, Task\); GitLab 17.2+ only |
---
@@ -912,7 +913,8 @@ Trigger workflow when a merge request is opened, updated, or merged in GitLab
| ↳ `action` | string | Action \(open, close, reopen, update, merge, etc.\) |
| ↳ `source_branch` | string | Source branch |
| ↳ `target_branch` | string | Target branch |
| ↳ `merge_status` | string | Merge status |
| ↳ `merge_status` | string | Merge status \(deprecated by GitLab\) |
| ↳ `detailed_merge_status` | string | Detailed merge status |
| ↳ `draft` | boolean | Whether the merge request is a draft |
| ↳ `url` | string | Merge request URL |
@@ -351,7 +351,7 @@ Triggers when new emails are received in Gmail (requires Gmail credentials)
| ↳ `date` | string | Email date in ISO format |
| ↳ `bodyText` | string | Plain text email body |
| ↳ `bodyHtml` | string | HTML email body |
| ↳ `labels` | string | Email labels array |
| ↳ `labels` | array | Email labels array |
| ↳ `hasAttachments` | boolean | Whether email has attachments |
| ↳ `attachments` | file[] | Array of email attachments as files \(if includeAttachments is enabled\) |
| `timestamp` | string | Event timestamp |