diff --git a/apps/sim/app/(auth)/login/loading.tsx b/apps/sim/app/(auth)/login/loading.tsx index 74f7bece6c9..dc95e136385 100644 --- a/apps/sim/app/(auth)/login/loading.tsx +++ b/apps/sim/app/(auth)/login/loading.tsx @@ -3,22 +3,22 @@ import { Skeleton } from '@sim/emcn' export default function LoginLoading() { return (
- +
- - + +
- - + +
- - + +
- - + +
- +
) } diff --git a/apps/sim/app/(auth)/reset-password/loading.tsx b/apps/sim/app/(auth)/reset-password/loading.tsx index d1910ac0425..ec447a579db 100644 --- a/apps/sim/app/(auth)/reset-password/loading.tsx +++ b/apps/sim/app/(auth)/reset-password/loading.tsx @@ -3,14 +3,14 @@ import { Skeleton } from '@sim/emcn' export default function ResetPasswordLoading() { return (
- - + +
- - + +
- - + +
) } diff --git a/apps/sim/app/(auth)/signup/loading.tsx b/apps/sim/app/(auth)/signup/loading.tsx index c1190c8385e..d7fd260a032 100644 --- a/apps/sim/app/(auth)/signup/loading.tsx +++ b/apps/sim/app/(auth)/signup/loading.tsx @@ -3,26 +3,26 @@ import { Skeleton } from '@sim/emcn' export default function SignupLoading() { return (
- +
- - + +
- - + +
- - + +
- - + +
- - + +
- +
) } diff --git a/apps/sim/app/(auth)/sso/loading.tsx b/apps/sim/app/(auth)/sso/loading.tsx index 116e47c136b..6b6c3cf5e42 100644 --- a/apps/sim/app/(auth)/sso/loading.tsx +++ b/apps/sim/app/(auth)/sso/loading.tsx @@ -3,14 +3,14 @@ import { Skeleton } from '@sim/emcn' export default function SSOLoading() { return (
- - + +
- - + +
- - + +
) } diff --git a/apps/sim/app/(auth)/verify/loading.tsx b/apps/sim/app/(auth)/verify/loading.tsx index d884048905a..5227fc028b4 100644 --- a/apps/sim/app/(auth)/verify/loading.tsx +++ b/apps/sim/app/(auth)/verify/loading.tsx @@ -3,10 +3,10 @@ import { Skeleton } from '@sim/emcn' export default function VerifyLoading() { return (
- - - - + + + +
) } diff --git a/apps/sim/app/(auth)/verify/verify-content.tsx b/apps/sim/app/(auth)/verify/verify-content.tsx index 88d1c2e9d67..b13d3ce432d 100644 --- a/apps/sim/app/(auth)/verify/verify-content.tsx +++ b/apps/sim/app/(auth)/verify/verify-content.tsx @@ -149,8 +149,8 @@ function VerificationFormFallback() { return (
-
-
+
+
) diff --git a/apps/sim/app/(interfaces)/chat/[identifier]/loading.tsx b/apps/sim/app/(interfaces)/chat/[identifier]/loading.tsx index 405a06bc0e7..8393900a280 100644 --- a/apps/sim/app/(interfaces)/chat/[identifier]/loading.tsx +++ b/apps/sim/app/(interfaces)/chat/[identifier]/loading.tsx @@ -8,10 +8,10 @@ export default function ChatLoading() {
- - + +
- +
@@ -24,16 +24,16 @@ export default function ChatLoading() {
- +
- +
- +
diff --git a/apps/sim/app/(interfaces)/chat/components/input/input.tsx b/apps/sim/app/(interfaces)/chat/components/input/input.tsx index 0554b38bed5..0555fe6411a 100644 --- a/apps/sim/app/(interfaces)/chat/components/input/input.tsx +++ b/apps/sim/app/(interfaces)/chat/components/input/input.tsx @@ -172,7 +172,7 @@ export const ChatInput: React.FC<{ {attachedFiles.map((file) => ( -
+
{file.dataUrl ? (
- +
- +
diff --git a/apps/sim/app/(interfaces)/chat/components/message/components/markdown-renderer.tsx b/apps/sim/app/(interfaces)/chat/components/message/components/markdown-renderer.tsx index dd6199e063e..616dfda617e 100644 --- a/apps/sim/app/(interfaces)/chat/components/message/components/markdown-renderer.tsx +++ b/apps/sim/app/(interfaces)/chat/components/message/components/markdown-renderer.tsx @@ -101,7 +101,7 @@ const COMPONENTS = { }, inlineCode: ({ children }: { children?: React.ReactNode }) => ( - + {children} ), diff --git a/apps/sim/app/(interfaces)/chat/components/message/message.tsx b/apps/sim/app/(interfaces)/chat/components/message/message.tsx index 9458ed16be7..95cb39bf938 100644 --- a/apps/sim/app/(interfaces)/chat/components/message/message.tsx +++ b/apps/sim/app/(interfaces)/chat/components/message/message.tsx @@ -192,7 +192,7 @@ export const ClientChatMessage = memo(function ClientChatMessage({ /> ) : ( <> -
+
{getFileIcon(attachment.type)}
diff --git a/apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/loading.tsx b/apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/loading.tsx index 37d6027a3cb..e725843d701 100644 --- a/apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/loading.tsx +++ b/apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/loading.tsx @@ -5,34 +5,34 @@ export default function ResumeLoading() {
- - + +
- + {Array.from({ length: 3 }).map((_, i) => ( - + ))}
-
- - +
+ +
- - + +
- - + +
- - + +
diff --git a/apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/resume-page-client.tsx b/apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/resume-page-client.tsx index bb09919dc63..15c8d2ee86a 100644 --- a/apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/resume-page-client.tsx +++ b/apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/resume-page-client.tsx @@ -158,7 +158,7 @@ function renderStructuredValuePreview(value: unknown) { const { text: stringValue, truncated } = truncateForPreview(String(value)) return (
-
+
{truncated ? `${stringValue}…` : stringValue}
{truncated && ( @@ -800,7 +800,7 @@ export default function ResumeExecutionPage({ {/* Main Layout */}
{/* Pause Points List */} -
+
@@ -832,17 +832,17 @@ export default function ResumeExecutionPage({ {/* Detail Panel */}
{loadingDetail && !selectedDetail ? ( -
+
Loading…
) : !selectedContextId ? ( -
+
Select a pause point
) : !selectedDetail ? ( -
+
Could not load details @@ -850,7 +850,7 @@ export default function ResumeExecutionPage({ ) : (
{/* Status Header */} -
+

@@ -868,7 +868,7 @@ export default function ResumeExecutionPage({

{selectedDetail.pausePoint.automaticResumeWaitingReason && ( -
+

{selectedDetail.pausePoint.automaticResumeWaitingReason} @@ -881,7 +881,7 @@ export default function ResumeExecutionPage({ {/* Already resolved - show form fields with submitted values */} {selectedStatus === 'resumed' || selectedStatus === 'failed' ? ( -

+
@@ -932,7 +932,7 @@ export default function ResumeExecutionPage({ <> {/* Display Data */} {responseStructureRows.length > 0 ? ( -
+
@@ -958,7 +958,7 @@ export default function ResumeExecutionPage({
) : ( -
+
@@ -972,7 +972,7 @@ export default function ResumeExecutionPage({ {/* Resume Form */} {isHumanMode && hasInputFormat ? ( -
+
@@ -1001,7 +1001,7 @@ export default function ResumeExecutionPage({
) : ( -
+
diff --git a/apps/sim/app/_styles/globals.css b/apps/sim/app/_styles/globals.css index 78b947eac66..2e265b5b08e 100644 --- a/apps/sim/app/_styles/globals.css +++ b/apps/sim/app/_styles/globals.css @@ -191,6 +191,9 @@ --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); + --radius-xl: 0.75rem; + --radius-2xl: 1rem; + --radius-3xl: 1.5rem; /** * These names intentionally match the app's own `:root` custom properties, so diff --git a/apps/sim/app/cli/auth/cli-auth-view.tsx b/apps/sim/app/cli/auth/cli-auth-view.tsx index f7865af95da..33469cc3306 100644 --- a/apps/sim/app/cli/auth/cli-auth-view.tsx +++ b/apps/sim/app/cli/auth/cli-auth-view.tsx @@ -94,7 +94,7 @@ export function CliAuthView() { description='Approve only if the code below matches the one in your terminal.' />
-
+
{/* `pl` offsets the trailing letter-space `tracking` adds after the last glyph, which would otherwise pull the code left of optical center. */} {request.pairing} diff --git a/apps/sim/app/cli/auth/loading.tsx b/apps/sim/app/cli/auth/loading.tsx index e6a96d20127..911ae79010e 100644 --- a/apps/sim/app/cli/auth/loading.tsx +++ b/apps/sim/app/cli/auth/loading.tsx @@ -11,11 +11,11 @@ import { AuthShell } from '@/app/(auth)/components' export function CliAuthLoading() { return (
- - - - - + + + + +
) } diff --git a/apps/sim/app/invite/[id]/loading.tsx b/apps/sim/app/invite/[id]/loading.tsx index b26abbbaf59..31e3d619994 100644 --- a/apps/sim/app/invite/[id]/loading.tsx +++ b/apps/sim/app/invite/[id]/loading.tsx @@ -3,11 +3,11 @@ import { Skeleton } from '@sim/emcn' export default function InviteLoading() { return (
- - - - - + + + + +
) } diff --git a/apps/sim/app/unsubscribe/loading.tsx b/apps/sim/app/unsubscribe/loading.tsx index 5f625c75bbd..e5a3aa10a8f 100644 --- a/apps/sim/app/unsubscribe/loading.tsx +++ b/apps/sim/app/unsubscribe/loading.tsx @@ -3,11 +3,11 @@ import { Skeleton } from '@sim/emcn' export default function UnsubscribeLoading() { return (
- - - - - + + + + +
) } diff --git a/apps/sim/app/workspace/[workspaceId]/components/folders/use-row-drag-ghost.ts b/apps/sim/app/workspace/[workspaceId]/components/folders/use-row-drag-ghost.ts index ee37ca45a8c..a7bc8d07fc3 100644 --- a/apps/sim/app/workspace/[workspaceId]/components/folders/use-row-drag-ghost.ts +++ b/apps/sim/app/workspace/[workspaceId]/components/folders/use-row-drag-ghost.ts @@ -11,7 +11,7 @@ import { useCallback, useEffect, useMemo, useRef } from 'react' * the label inherit the app font and match the row it was lifted from. */ const DRAG_GHOST_STYLE = - 'position:fixed;top:-500px;left:0;display:inline-flex;align-items:center;padding:4px 10px;background:var(--surface-active);border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text-body);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-medium);z-index:var(--z-toast)' + 'position:fixed;top:-500px;left:0;display:inline-flex;align-items:center;padding:4px 10px;background:var(--surface-active);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:13px;color:var(--text-body);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-medium);z-index:var(--z-toast)' const DRAG_GHOST_LABEL_STYLE = 'max-width:200px;overflow:hidden;text-overflow:ellipsis' diff --git a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/image.tsx b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/image.tsx index d6623e648d6..7f9ac01de9c 100644 --- a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/image.tsx +++ b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/image.tsx @@ -286,7 +286,7 @@ export function ResizableImageView({ node, selected, editor, getPos }: ReactNode onPointerDown={startResize} className='absolute right-0 bottom-0 flex size-10 cursor-nwse-resize touch-none items-end justify-end p-1 sm:size-8' > - + )} diff --git a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/menus/suggestion-menu-chrome.ts b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/menus/suggestion-menu-chrome.ts index 918934aa0e1..353c615db0d 100644 --- a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/menus/suggestion-menu-chrome.ts +++ b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/menus/suggestion-menu-chrome.ts @@ -17,7 +17,7 @@ export const SUGGESTION_SCROLL_CLASS = 'max-h-[240px] scroll-py-1.5 overflow-y-a /** A selectable row: icon + label, 14px icon in `--text-icon`, truncating label. The `img` rules * size custom-block image icons (rendered as ``, so the `svg` rules never reach them). */ export const SUGGESTION_ITEM_CLASS = - 'relative flex w-full min-w-0 cursor-pointer select-none items-center gap-2 rounded-[5px] px-2 py-1.5 text-left text-[var(--text-body)] text-caption outline-hidden transition-colors [&>span]:min-w-0 [&>span]:truncate [&_svg]:pointer-events-none [&_svg]:size-[14px] [&_svg]:shrink-0 [&_svg]:text-[var(--text-icon)] [&_img]:pointer-events-none [&_img]:size-[14px] [&_img]:shrink-0' + 'relative flex w-full min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-left text-[var(--text-body)] text-caption outline-hidden transition-colors [&>span]:min-w-0 [&>span]:truncate [&_svg]:pointer-events-none [&_svg]:size-[14px] [&_svg]:shrink-0 [&_svg]:text-[var(--text-icon)] [&_img]:pointer-events-none [&_img]:size-[14px] [&_img]:shrink-0' /** A group heading above a run of rows. */ export const SUGGESTION_GROUP_LABEL_CLASS = diff --git a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/rich-markdown-editor.css b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/rich-markdown-editor.css index 3b6cc3f2b85..5f02b74d874 100644 --- a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/rich-markdown-editor.css +++ b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/rich-markdown-editor.css @@ -28,7 +28,7 @@ .rich-markdown-nodes img { max-width: 100%; height: auto; - border-radius: 8px; + border-radius: var(--radius-lg); border: var(--border-width) solid var(--border); } @@ -37,7 +37,7 @@ .rich-markdown-nodes .ProseMirror-selectednode { outline: 2px solid var(--brand-secondary); outline-offset: 2px; - border-radius: 4px; + border-radius: var(--radius-sm); } /* An image is its own framed element; ring the image itself so the indicator hugs the picture @@ -226,7 +226,7 @@ height: 16px; margin: 0; border: var(--border-width) solid var(--border-1); - border-radius: 3px; + border-radius: var(--radius-sm); background: transparent; cursor: pointer; } @@ -258,7 +258,7 @@ font-family: var(--font-martian-mono, ui-monospace, monospace); font-size: 0.875em; background: var(--surface-5); - border-radius: 4px; + border-radius: var(--radius-sm); padding: 0.125rem 0.375rem; } @@ -279,7 +279,7 @@ .rich-markdown-prose pre, .rich-markdown-prose .mermaid-diagram-frame { background: var(--surface-5); - border-radius: 8px; + border-radius: var(--radius-lg); padding: 1rem; overflow-x: auto; } @@ -341,12 +341,12 @@ } .rich-markdown-nodes .raw-markdown-block { - border-radius: 8px; + border-radius: var(--radius-lg); padding: 0.75rem 1rem; } .rich-markdown-nodes .raw-markdown-inline { - border-radius: 4px; + border-radius: var(--radius-sm); padding: 0.0625rem 0.3rem; } @@ -373,7 +373,7 @@ .rich-markdown-nodes img.rich-leaf-in-selection { outline: 2px solid var(--selection-bg); outline-offset: 2px; - border-radius: 4px; + border-radius: var(--radius-sm); } /* Borders, padding, typography, and header fill come from document-table.css — the chrome shared @@ -442,7 +442,7 @@ .rich-markdown-nodes mark { background-color: color-mix(in srgb, var(--color-amber-400) 40%, transparent); color: inherit; - border-radius: 2px; + border-radius: var(--radius-xs); padding: 0 0.1em; margin: 0 -0.1em; box-decoration-break: clone; @@ -513,7 +513,7 @@ left: -1px; width: 8px; height: 5px; - border-radius: 2px 2px 2px 0; + border-radius: var(--radius-xs) var(--radius-xs) var(--radius-xs) 0; background-color: var(--caret-color); transition: opacity 0.2s ease; } @@ -551,7 +551,7 @@ max-width: 10rem; overflow: hidden; padding: 0.1rem 0.35rem; - border-radius: 2px 2px 2px 0; + border-radius: var(--radius-xs) var(--radius-xs) var(--radius-xs) 0; /* 11px = the `text-xs` the canvas/tables presence tags use, for pixel parity. */ font-size: 11px; font-weight: 500; @@ -576,13 +576,13 @@ .rich-markdown-nodes .collaboration-carets__caret--flip .collaboration-carets__label { left: auto; right: -1px; - border-radius: 2px 2px 0 2px; + border-radius: var(--radius-xs) var(--radius-xs) 0 var(--radius-xs); } /* Remote text selection: a rounded translucent tint of the collaborator's identity * color (the alpha fill is set inline by selectionRender). */ .rich-markdown-nodes .collaboration-carets__selection { - border-radius: 2px; + border-radius: var(--radius-xs); pointer-events: none; } @@ -591,7 +591,7 @@ .rich-markdown-nodes .rich-find-match { background-color: var(--highlight-match-bg); color: var(--highlight-match-text); - border-radius: 2px; + border-radius: var(--radius-xs); } /* The active hit is a stronger fill of the same hue, never a ring: an outline drawn diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/agent-group/browser-agent-icon.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/agent-group/browser-agent-icon.tsx index 5bf1c53ac4d..925e6451401 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/agent-group/browser-agent-icon.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/agent-group/browser-agent-icon.tsx @@ -127,7 +127,7 @@ function BrowserAgentFavicon({ url, canLoad }: BrowserAgentFaviconProps) { referrerPolicy='no-referrer' alt='' className={cn( - 'size-full rounded-[3px]', + 'size-full rounded-sm', status !== 'loaded' && 'pointer-events-none absolute opacity-0' )} onLoad={() => setStatus('loaded')} diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/chat-content.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/chat-content.tsx index 958b6b893bf..cdd5a769f06 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/chat-content.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/chat-content.tsx @@ -334,7 +334,7 @@ const MARKDOWN_COMPONENTS = { className={cn( 'text-[var(--text-primary)]', kind - ? 'not-prose inline-flex items-baseline gap-1 rounded-[5px] bg-[var(--surface-5)] px-[5px] no-underline transition-colors hover-hover:bg-[var(--surface-6)]' + ? 'not-prose inline-flex items-baseline gap-1 rounded-sm bg-[var(--surface-5)] px-[5px] no-underline transition-colors hover-hover:bg-[var(--surface-6)]' : 'underline decoration-dashed underline-offset-4' )} onClick={(e) => { @@ -415,7 +415,7 @@ const MARKDOWN_COMPONENTS = { }, inlineCode({ children }: { children?: React.ReactNode }) { return ( - + {children} ) diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/external-link.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/external-link.tsx index fd9661d2151..11829e5bef2 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/external-link.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/external-link.tsx @@ -71,7 +71,7 @@ export function ExternalLink({ href, hostname, children }: ExternalLinkProps) { diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/message-sources/message-sources.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/message-sources/message-sources.tsx index 305a02b97fe..1f1d029d321 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/message-sources/message-sources.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/message-sources/message-sources.tsx @@ -7,7 +7,7 @@ import type { SourceTagData } from '@/app/workspace/[workspaceId]/home/component /** The action-row button, matching the copy and vote buttons beside it with room for a count. */ const BUTTON_CLASSES = - 'flex h-[26px] items-center gap-1 rounded-[6px] px-1.5 text-[var(--text-icon)] text-caption transition-colors hover-hover:bg-[var(--surface-hover)] focus-visible:outline-hidden data-[state=open]:bg-[var(--surface-active)] data-[state=open]:hover-hover:bg-[var(--surface-active)]' + 'flex h-[26px] items-center gap-1 rounded-md px-1.5 text-[var(--text-icon)] text-caption transition-colors hover-hover:bg-[var(--surface-hover)] focus-visible:outline-hidden data-[state=open]:bg-[var(--surface-active)] data-[state=open]:hover-hover:bg-[var(--surface-active)]' interface MessageSourcesProps { sources: readonly SourceTagData[] diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/resource-mention.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/resource-mention.tsx index a6f685cd35f..0e72032d065 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/resource-mention.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/resource-mention.tsx @@ -9,7 +9,7 @@ interface ResourceMentionProps { export function ResourceMention({ icon, title, onSelect }: ResourceMentionProps) { const classes = - 'inline-flex items-baseline gap-1 rounded-[5px] bg-[var(--surface-5)] px-[5px] align-baseline font-[inherit] text-[inherit] leading-[inherit]' + 'inline-flex items-baseline gap-1 rounded-sm bg-[var(--surface-5)] px-[5px] align-baseline font-[inherit] text-[inherit] leading-[inherit]' const content = ( <> {icon} diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/source-card/source-card.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/source-card/source-card.tsx index b339c1a91fc..3729be3d831 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/source-card/source-card.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/source-card/source-card.tsx @@ -145,7 +145,7 @@ export function SourceCard({ source, query, onSummarize, dense = false }: Source ) : null diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/source-chip/source-chip.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/source-chip/source-chip.tsx index 8d4540d4b9e..31332c215dd 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/source-chip/source-chip.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/source-chip/source-chip.tsx @@ -75,7 +75,7 @@ export function SourceChip({ source }: SourceChipProps) { ) : null} diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-chat/components/mothership-chat-skeleton/mothership-chat-skeleton.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-chat/components/mothership-chat-skeleton/mothership-chat-skeleton.tsx index 9b32c21b1dd..8c4714a5c1e 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-chat/components/mothership-chat-skeleton/mothership-chat-skeleton.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-chat/components/mothership-chat-skeleton/mothership-chat-skeleton.tsx @@ -27,24 +27,24 @@ export function MothershipChatSkeleton({ return (
- +
- - - - + + + +
- +
- - - + + +
) diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-chat/mothership-chat.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-chat/mothership-chat.tsx index 07254879b4f..e57b3c8f0f2 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-chat/mothership-chat.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-chat/mothership-chat.tsx @@ -142,7 +142,7 @@ const LAYOUT_STYLES = { rowGap: 'pb-6', userRow: 'flex flex-col items-end gap-[6px] pt-3', attachmentWidth: 'max-w-[70%]', - userBubble: 'max-w-[70%] overflow-hidden rounded-[16px] bg-[var(--surface-5)] px-3.5 py-2', + userBubble: 'max-w-[70%] overflow-hidden rounded-2xl bg-[var(--surface-5)] px-3.5 py-2', assistantRow: 'group/msg', footer: 'shrink-0 px-[24px] pb-[16px]', footerInner: 'mx-auto max-w-chat', @@ -154,7 +154,7 @@ const LAYOUT_STYLES = { rowGap: 'pb-4', userRow: 'flex flex-col items-end gap-[6px] pt-2', attachmentWidth: 'max-w-[85%]', - userBubble: 'max-w-[85%] overflow-hidden rounded-[16px] bg-[var(--surface-5)] px-3 py-2', + userBubble: 'max-w-[85%] overflow-hidden rounded-2xl bg-[var(--surface-5)] px-3 py-2', assistantRow: 'group/msg', footer: 'shrink-0 px-3 pb-3', footerInner: '', diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-page-issue.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-page-issue.tsx index 199aa2b8be9..6c8299d27a0 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-page-issue.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-page-issue.tsx @@ -148,7 +148,7 @@ export function BrowserPageIssueView({ issue, onReload, focusRecovery }: Browser

{copy.headline} diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-session.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-session.tsx index f3aa734a126..da9baa8aa3d 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-session.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-session.tsx @@ -117,7 +117,7 @@ function BrowserSuggestionIcon({ suggestion }: { suggestion: UrlSuggestion }) { setFailed(true)} /> ) diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/resource-content.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/resource-content.tsx index 5b6560b4eae..ed7e839a13d 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/resource-content.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/resource-content.tsx @@ -804,7 +804,7 @@ function EmbeddedFolder({ workspaceId, folderId }: EmbeddedFolderProps) { key={w.id} type='button' onClick={() => openInternalLink(`/workspace/${workspaceId}/w/${w.id}`)} - className='flex items-center gap-2 rounded-[6px] px-3 py-2 text-left transition-colors hover:bg-[var(--surface-4)]' + className='flex items-center gap-2 rounded-md px-3 py-2 text-left transition-colors hover:bg-[var(--surface-4)]' > diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-registry/browser-tab-icon.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-registry/browser-tab-icon.tsx index cb0d6042c20..432ea7f74e9 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-registry/browser-tab-icon.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-registry/browser-tab-icon.tsx @@ -64,7 +64,7 @@ export function BrowserTabIcon({ tabId, scopeId, className }: BrowserTabIconProp src={faviconUrl(hostname, 32)} alt='' className={cn( - 'size-[16px] rounded-[3px]', + 'size-[16px] rounded-sm', !faviconLoaded && 'pointer-events-none absolute opacity-0' )} onLoad={() => setFavicon({ hostname, status: 'loaded' })} diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/queued-messages/queued-messages.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/queued-messages/queued-messages.tsx index 466afe3e7de..57a8c63949b 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/queued-messages/queued-messages.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/queued-messages/queued-messages.tsx @@ -49,7 +49,7 @@ export function QueuedMessages({ return (
-
-

+ name={tag.displayName} + typeLabel={FIELD_TYPE_LABELS[tag.fieldType] || tag.fieldType} + detail={formatValueForDisplay(tag.value, tag.fieldType)} + truncateDetail + removeLabel='Remove tag' + onRemove={(e) => { + e.stopPropagation() + handleRemoveTag(index) + }} + /> {editingTagIndex === index && (
diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/base-tags-modal/base-tags-modal.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/base-tags-modal/base-tags-modal.tsx index 46163ac91ea..8278f269f57 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/base-tags-modal/base-tags-modal.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/base-tags-modal/base-tags-modal.tsx @@ -14,7 +14,6 @@ import { type ComboboxOption, handleKeyboardActivation, } from '@sim/emcn' -import { Trash } from '@sim/emcn/icons' import { createLogger } from '@sim/logger' import { getDocumentIcon } from '@/components/icons/document-icons' import type { TagUsageData } from '@/lib/api/contracts/knowledge' @@ -24,6 +23,7 @@ import { SUPPORTED_FIELD_TYPES, TAG_SLOT_CONFIG, } from '@/lib/knowledge/constants' +import { KnowledgeTagRow } from '@/app/workspace/[workspaceId]/knowledge/components/knowledge-tag-row' import { type TagDefinition, useKnowledgeBaseTagDefinitions, @@ -270,41 +270,28 @@ export function BaseTagsModal({ open, onOpenChange, knowledgeBaseId }: BaseTagsM {kbTagDefinitions.map((tag) => { const usage = getTagUsage(tag.tagSlot) return ( -
handleViewDocuments(tag)} onKeyDown={(event) => { if (event.target !== event.currentTarget) return handleKeyboardActivation(event, () => handleViewDocuments(tag)) }} - > - - {tag.displayName} - - - {FIELD_TYPE_LABELS[tag.fieldType] || tag.fieldType} - -
- - {usage.documentCount} document{usage.documentCount !== 1 ? 's' : ''} - -
- -
-
+ name={tag.displayName} + typeLabel={FIELD_TYPE_LABELS[tag.fieldType] || tag.fieldType} + detail={ + <> + {usage.documentCount} document{usage.documentCount !== 1 ? 's' : ''} + + } + removeLabel='Delete Tag' + onRemove={(e) => { + e.stopPropagation() + handleDeleteTagClick(tag) + }} + /> ) })} diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/components/knowledge-tag-row.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/components/knowledge-tag-row.tsx new file mode 100644 index 00000000000..69539708cc0 --- /dev/null +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/components/knowledge-tag-row.tsx @@ -0,0 +1,55 @@ +import type { HTMLAttributes, MouseEventHandler, ReactNode } from 'react' +import { Button, cn } from '@sim/emcn' +import { Trash } from '@sim/emcn/icons' + +interface KnowledgeTagRowProps + extends Omit, 'children' | 'className'> { + name: string + typeLabel: string + detail: ReactNode + truncateDetail?: boolean + removeLabel: string + onRemove: MouseEventHandler +} + +/** Shared tag summary; callers retain activation, keyboard and removal behavior. */ +export function KnowledgeTagRow({ + name, + typeLabel, + detail, + truncateDetail = false, + removeLabel, + onRemove, + ...props +}: KnowledgeTagRowProps) { + return ( +
+ {name} + + {typeLabel} + +
+ + {detail} + +
+ +
+
+ ) +} diff --git a/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/components/status-bar/status-bar.tsx b/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/components/status-bar/status-bar.tsx index b4010129495..14f5f928171 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/components/status-bar/status-bar.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/components/status-bar/status-bar.tsx @@ -85,7 +85,7 @@ function StatusBarInner({ role='button' tabIndex={0} aria-pressed={isSelected} - className={`h-6 flex-1 rounded-[3px] ${color} ${hoverBrightness} cursor-pointer transition-all ${ + className={`h-6 flex-1 rounded-sm ${color} ${hoverBrightness} cursor-pointer transition-all ${ isSelected ? 'relative z-10 scale-105 shadow-xs ring-1 ring-[var(--text-secondary)]' : 'relative z-0' diff --git a/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/components/workflows-list/workflows-list.tsx b/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/components/workflows-list/workflows-list.tsx index 36c542bc386..8ada4a5fad7 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/components/workflows-list/workflows-list.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/components/workflows-list/workflows-list.tsx @@ -28,7 +28,7 @@ function WorkflowsListInner({ return (
{/* Table header */} -
+
Workflow diff --git a/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/dashboard.tsx b/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/dashboard.tsx index 9a009452d21..f816e380cfc 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/dashboard.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/dashboard.tsx @@ -408,7 +408,7 @@ function DashboardInner({ stats, isLoading, error, searchQuery }: DashboardProps )}
-
+
{globalDetails ? ( )}
-
+
{globalDetails ? ( )}
-
+
{globalDetails ? ( diff --git a/apps/sim/app/workspace/[workspaceId]/logs/logs.tsx b/apps/sim/app/workspace/[workspaceId]/logs/logs.tsx index a1dd5a25dfe..8e46423c8f0 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/logs.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/logs.tsx @@ -195,7 +195,7 @@ function getColorIcon(color: string): React.ComponentType<{ className?: string } const ColorIcon = ({ className }: { className?: string }) => (
{selectedStatusColor && (
)} diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/sandboxes/components/sandbox-editor.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/sandboxes/components/sandbox-editor.tsx index 595ca1e45c7..0ae26090ab8 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/sandboxes/components/sandbox-editor.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/sandboxes/components/sandbox-editor.tsx @@ -242,7 +242,7 @@ export function SandboxStatus({ {showLog ? 'Hide log' : 'Show log'} {showLog && ( -
+                
                   {sandbox.errorDetail}
                 
)} diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/components/no-organization-view/no-organization-view.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/components/no-organization-view/no-organization-view.tsx index 82c1009e63d..02f9d04c382 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/components/no-organization-view/no-organization-view.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/components/no-organization-view/no-organization-view.tsx @@ -84,7 +84,7 @@ export function NoOrganizationView({
-
+
sim.ai/team/
{ e.currentTarget.style.display = 'none' }} diff --git a/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/column-header-menu.tsx b/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/column-header-menu.tsx index 6ba6ebfa820..19ab7b1c0c3 100644 --- a/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/column-header-menu.tsx +++ b/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/column-header-menu.tsx @@ -178,7 +178,7 @@ export const ColumnHeaderMenu = React.memo(function ColumnHeaderMenu({ ghost.textContent = ghostLabel ghost.className = 'text-small' ghost.style.cssText = - 'position:absolute;top:-9999px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;white-space:nowrap;color:var(--text-primary)' + 'position:absolute;top:-9999px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;color:var(--text-primary)' document.body.appendChild(ghost) e.dataTransfer.setDragImage(ghost, ghost.offsetWidth / 2, ghost.offsetHeight / 2) requestAnimationFrame(() => ghost.parentNode?.removeChild(ghost)) diff --git a/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/workflow-group-meta-cell.tsx b/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/workflow-group-meta-cell.tsx index 69c159e585b..0c760235c2b 100644 --- a/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/workflow-group-meta-cell.tsx +++ b/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/workflow-group-meta-cell.tsx @@ -475,7 +475,7 @@ export function WorkflowGroupMetaCell({ ghost.textContent = name ghost.className = 'text-xs' ghost.style.cssText = - 'position:absolute;top:-9999px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;white-space:nowrap;color:var(--text-primary)' + 'position:absolute;top:-9999px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;color:var(--text-primary)' document.body.appendChild(ghost) e.dataTransfer.setDragImage(ghost, ghost.offsetWidth / 2, ghost.offsetHeight / 2) requestAnimationFrame(() => ghost.parentNode?.removeChild(ghost)) diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/chat-message/chat-message.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/chat-message/chat-message.tsx index f0389e64ad4..65069778cbd 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/chat-message/chat-message.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/chat-message/chat-message.tsx @@ -79,7 +79,7 @@ export function ChatMessage({ message }: ChatMessageProps) { )} {formattedContent && !formattedContent.startsWith('Uploaded') && ( -
+
diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/diff-controls/diff-controls.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/diff-controls/diff-controls.tsx index adc95e4e4ef..7b80ab05388 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/diff-controls/diff-controls.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/diff-controls/diff-controls.tsx @@ -95,7 +95,7 @@ export const DiffControls = memo(function DiffControls() { }} > Accept - + ⇧⌘ diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/condition-input/condition-input.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/condition-input/condition-input.tsx index 5169f4697fd..67aeef659ff 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/condition-input/condition-input.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/condition-input/condition-input.tsx @@ -946,10 +946,10 @@ export function ConditionInput({ className={cn( 'flex items-center justify-between overflow-hidden bg-transparent px-2.5 py-[5px]', isRouterMode - ? 'rounded-t-[4px] border-[var(--border-1)] border-b' + ? 'rounded-t-sm border-[var(--border-1)] border-b' : isElseConditionTitle(block.title) ? 'rounded-sm border-0' - : 'rounded-t-[4px] border-[var(--border-1)] border-b' + : 'rounded-t-sm border-[var(--border-1)] border-b' )} > @@ -1020,12 +1020,12 @@ export function ConditionInput({ + */ + 'ghost-destructive': 'text-[var(--text-error)] hover-hover:text-[var(--text-error)]', + /** + * Muted destructive action that turns red on hover. + * @example + */ + 'ghost-destructive-muted': 'text-[var(--text-muted)] hover-hover:text-[var(--text-error)]', subtle: 'text-[var(--text-body)] hover-hover:text-[var(--text-body)] hover-hover:bg-[var(--surface-4)]', 'ghost-secondary': 'text-[var(--text-muted)] hover-hover:text-[var(--text-primary)]', diff --git a/packages/workflow-renderer/src/note/note-block-view.tsx b/packages/workflow-renderer/src/note/note-block-view.tsx index 6b71def6fb5..b62759366c8 100644 --- a/packages/workflow-renderer/src/note/note-block-view.tsx +++ b/packages/workflow-renderer/src/note/note-block-view.tsx @@ -108,7 +108,7 @@ const NOTE_REMARK_PLUGINS = [remarkGfm, remarkBreaks] */ const NOTE_TASK_CHECKBOX_CLASS = [ 'mt-[3px] inline-grid size-[16px] shrink-0 appearance-none place-content-center', - 'rounded-[3px] border border-[var(--border-1)] bg-transparent', + 'rounded-sm border border-[var(--border-1)] bg-transparent', 'checked:border-[var(--text-primary)] checked:bg-[var(--text-primary)]', "checked:after:size-[10px] checked:after:bg-[var(--surface-2)] checked:after:content-['']", 'checked:after:[clip-path:polygon(14%_44%,0_65%,50%_100%,100%_16%,80%_0%,43%_62%)]', @@ -251,14 +251,14 @@ const NOTE_COMPONENTS = { /> ), inlineCode: ({ children }: { children?: ReactNode }) => ( - + {children} ), code: ({ children, className, ...props }: { children?: ReactNode; className?: string }) => ( {children} diff --git a/packages/workflow-renderer/src/workflow-block/workflow-block-view.tsx b/packages/workflow-renderer/src/workflow-block/workflow-block-view.tsx index cae87070f2f..f9a6414258b 100644 --- a/packages/workflow-renderer/src/workflow-block/workflow-block-view.tsx +++ b/packages/workflow-renderer/src/workflow-block/workflow-block-view.tsx @@ -957,7 +957,7 @@ export function WorkflowBlockView({ )} {showErrorRow && (
event.stopPropagation()}