diff --git a/apps/sim/app/_styles/globals.css b/apps/sim/app/_styles/globals.css index 013e6b1d45..96a17260c5 100644 --- a/apps/sim/app/_styles/globals.css +++ b/apps/sim/app/_styles/globals.css @@ -391,6 +391,17 @@ color: var(--text-primary); } +/** + * Subblock divider visibility + * Hides dividers when adjacent subblocks render empty content (e.g., schedule-info without data). + * Uses CSS :has() to detect empty .subblock-content elements and hide associated dividers. + * Selectors ordered by ascending specificity: (0,4,0) then (0,5,0) + */ +.subblock-row:has(> .subblock-content:empty) > .subblock-divider, +.subblock-row:has(+ .subblock-row > .subblock-content:empty) > .subblock-divider { + display: none; +} + /** * Dark mode specific overrides */ diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/mcp-dynamic-args/mcp-dynamic-args.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/mcp-dynamic-args/mcp-dynamic-args.tsx index 62630afc5a..787248134f 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/mcp-dynamic-args/mcp-dynamic-args.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/mcp-dynamic-args/mcp-dynamic-args.tsx @@ -537,7 +537,7 @@ export function McpDynamicArgs({ } return ( -
+
{/* Hidden dummy inputs to prevent browser password manager autofill */} - {toolSchema.properties && - Object.entries(toolSchema.properties).map(([paramName, paramSchema]) => { - const inputType = getInputType(paramSchema as any) - const showLabel = inputType !== 'switch' - - return ( -
- {showLabel && ( - - )} - {renderParameterInput(paramName, paramSchema as any)} -
- ) - })} +
+ {toolSchema.properties && + Object.entries(toolSchema.properties).map(([paramName, paramSchema]) => { + const inputType = getInputType(paramSchema as any) + const showLabel = inputType !== 'switch' + + return ( +
+ {showLabel && ( + + )} + {renderParameterInput(paramName, paramSchema as any)} +
+ ) + })} +
) } diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/sub-block.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/sub-block.tsx index 3954dac453..310c3df0dd 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/sub-block.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/sub-block.tsx @@ -866,7 +866,7 @@ function SubBlockComponent({ } return ( -
+
{renderLabel( config, isValidJson, diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx index 017f9f91ce..181732e956 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx @@ -341,7 +341,7 @@ export function Editor() { ) return ( -
+
{index < subBlocks.length - 1 && ( -
+