diff --git a/apps/sim/app/globals.css b/apps/sim/app/globals.css index c1dad3022b..2df9fe5d17 100644 --- a/apps/sim/app/globals.css +++ b/apps/sim/app/globals.css @@ -11,7 +11,7 @@ --panel-width: 244px; --toolbar-triggers-height: 300px; --editor-connections-height: 200px; - --terminal-height: 145px; + --terminal-height: 196px; } .sidebar-container { diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/chat.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/chat.tsx index e41f9948ff..7f2b800dc9 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/chat.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/chat.tsx @@ -569,7 +569,7 @@ export function Chat() { return (
diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx index aade88c6c8..cfee42d06d 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx @@ -288,9 +288,11 @@ export function OutputSelect({ e.preventDefault()} onCloseAutoFocus={(e) => e.preventDefault()} > @@ -298,26 +300,29 @@ export function OutputSelect({ {Object.entries(groupedOutputs).map(([blockName, outputs]) => (
{blockName} - {outputs.map((output) => ( - handleOutputSelection(output.label)} - > -
+ {outputs.map((output) => ( + handleOutputSelection(output.label)} > - - {blockName.charAt(0).toUpperCase()} - -
- {output.path} - {isSelectedValue(output) && } -
- ))} +
+ + {blockName.charAt(0).toUpperCase()} + +
+ {output.path} + {isSelectedValue(output) && } + + ))} +
))} diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/terminal/terminal.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/terminal/terminal.tsx index d7c2d1ebf4..c31db60036 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/terminal/terminal.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/terminal/terminal.tsx @@ -42,7 +42,7 @@ import { useOutputPanelResize, useTerminalFilters, useTerminalResize } from './h */ const MIN_HEIGHT = 30 const NEAR_MIN_THRESHOLD = 40 -const DEFAULT_EXPANDED_HEIGHT = 300 +const DEFAULT_EXPANDED_HEIGHT = 196 /** * Column width constants - numeric values for calculations diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx index 5a94c74720..c5a6f174d9 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx @@ -1,6 +1,6 @@ import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useParams } from 'next/navigation' -import { Handle, type NodeProps, Position } from 'reactflow' +import { Handle, type NodeProps, Position, useUpdateNodeInternals } from 'reactflow' import { Badge } from '@/components/emcn/components/badge/badge' import { Tooltip } from '@/components/emcn/components/tooltip/tooltip' import { getEnv, isTruthy } from '@/lib/env' @@ -689,6 +689,16 @@ export const WorkflowBlock = memo(function WorkflowBlock({ ], }) + /** + * Notify React Flow when handle orientation changes so it can recalculate edge paths. + * This is necessary because toggling handles doesn't change block dimensions, + * so useBlockDimensions won't trigger updateNodeInternals. + */ + const updateNodeInternals = useUpdateNodeInternals() + useEffect(() => { + updateNodeInternals(id) + }, [horizontalHandles, id, updateNodeInternals]) + const showWebhookIndicator = (isStarterBlock || isWebhookTriggerBlock) && isWebhookConfigured const shouldShowScheduleBadge = type === 'schedule' && !isLoadingScheduleInfo && scheduleInfo !== null diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/usage-indicator/usage-indicator.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/usage-indicator/usage-indicator.tsx index 2ed700f9d6..8bd699217d 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/usage-indicator/usage-indicator.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/usage-indicator/usage-indicator.tsx @@ -62,11 +62,14 @@ export function UsageIndicator({ onClick }: UsageIndicatorProps) { if (isLoading) { return ( -
+
{/* Top row skeleton */}
- - +
+ + +
+
{/* Pills skeleton */} @@ -121,25 +124,25 @@ export function UsageIndicator({ onClick }: UsageIndicatorProps) { } return ( -
+
{/* Top row */}
{PLAN_NAMES[planType]} -
+
{isBlocked ? ( <> - Over - limit + Over + limit ) : ( <> - + ${usage.current.toFixed(2)} - / - + / + ${usage.limit} @@ -149,7 +152,7 @@ export function UsageIndicator({ onClick }: UsageIndicatorProps) { {showUpgradeButton && (