Feat: Adjust the style of the toolbar at the bottom of the agent canvas #10703 (#10807)

### What problem does this PR solve?

Feat: Adjust the style of the toolbar at the bottom of the agent canvas
#10703
### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu
2025-10-27 17:04:32 +08:00
committed by GitHub
parent 5acc407240
commit fd1ad18489
4 changed files with 38 additions and 24 deletions

View File

@ -93,7 +93,9 @@ function InnerButtonEdge({
}, [data?.isHovered, isTargetPlaceholder, sourceHandleId, target]);
const activeMarkerEnd =
selected || !isEmpty(showHighlight) ? 'url(#selected-marker)' : markerEnd;
selected || !isEmpty(showHighlight) || isTargetPlaceholder
? 'url(#selected-marker)'
: markerEnd;
return (
<>

View File

@ -311,7 +311,11 @@ function AgentCanvas({ drawerVisible, hideDrawer }: IProps) {
>
<AgentBackground></AgentBackground>
<Spotlight className="z-0" opcity={0.7} coverage={70} />
<Controls position={'bottom-center'} orientation="horizontal">
<Controls
position={'bottom-center'}
orientation="horizontal"
className="bg-bg-base px-4 py-2 h-auto w-auto [&>button]:bg-transparent [&>button]:border-0 [&>button]:text-text-primary [&>button]:hover:bg-bg-base-hover [&>button]:hover:text-text-primary [&>button]:active:bg-bg-base-active [&>button]:p-0 [&>button]:size-4 gap-2.5 rounded-md"
>
<ControlButton>
<Tooltip>
<TooltipTrigger asChild>

View File

@ -6,10 +6,18 @@ import {
} from '@/components/ui/accordion';
import { Operator } from '@/constants/agent';
import useGraphStore from '@/pages/agent/store';
import { useCallback, useMemo } from 'react';
import { PropsWithChildren, useCallback, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { OperatorItemList } from './operator-item-list';
function OperatorAccordionTrigger({ children }: PropsWithChildren) {
return (
<AccordionTrigger className="text-xs text-text-secondary hover:no-underline items-center">
<span className="h-4 translate-y-1"> {children}</span>
</AccordionTrigger>
);
}
export function AccordionOperators({
isCustomDropdown = false,
mousePosition,
@ -26,10 +34,10 @@ export function AccordionOperators({
defaultValue={['item-1', 'item-2', 'item-3', 'item-4', 'item-5']}
>
<AccordionItem value="item-1">
<AccordionTrigger className="text-xl">
<OperatorAccordionTrigger>
{t('flow.foundation')}
</AccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-balance">
</OperatorAccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-text-primary">
<OperatorItemList
operators={[Operator.Agent, Operator.Retrieval]}
isCustomDropdown={isCustomDropdown}
@ -38,10 +46,8 @@ export function AccordionOperators({
</AccordionContent>
</AccordionItem>
<AccordionItem value="item-2">
<AccordionTrigger className="text-xl">
{t('flow.dialog')}
</AccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-balance">
<OperatorAccordionTrigger>{t('flow.dialog')}</OperatorAccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-text-primary">
<OperatorItemList
operators={[Operator.Message, Operator.UserFillUp]}
isCustomDropdown={isCustomDropdown}
@ -50,10 +56,8 @@ export function AccordionOperators({
</AccordionContent>
</AccordionItem>
<AccordionItem value="item-3">
<AccordionTrigger className="text-xl">
{t('flow.flow')}
</AccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-balance">
<OperatorAccordionTrigger>{t('flow.flow')}</OperatorAccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-text-primary">
<OperatorItemList
operators={[
Operator.Switch,
@ -66,10 +70,10 @@ export function AccordionOperators({
</AccordionContent>
</AccordionItem>
<AccordionItem value="item-4">
<AccordionTrigger className="text-xl">
<OperatorAccordionTrigger>
{t('flow.dataManipulation')}
</AccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-balance">
</OperatorAccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-text-primary">
<OperatorItemList
operators={[Operator.Code, Operator.StringTransform]}
isCustomDropdown={isCustomDropdown}
@ -78,10 +82,8 @@ export function AccordionOperators({
</AccordionContent>
</AccordionItem>
<AccordionItem value="item-5">
<AccordionTrigger className="text-xl">
{t('flow.tools')}
</AccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-balance">
<OperatorAccordionTrigger>{t('flow.tools')}</OperatorAccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-text-primary">
<OperatorItemList
operators={[
Operator.TavilySearch,
@ -180,8 +182,10 @@ export function PipelineAccordionOperators({
defaultValue="item-1"
>
<AccordionItem value="item-1">
<AccordionTrigger>Chunker</AccordionTrigger>
<AccordionContent className="flex flex-col gap-4 text-balance">
<AccordionTrigger className="translate-y-2 hover:no-underline text-text-primary font-normal">
Chunker
</AccordionTrigger>
<AccordionContent className="flex flex-col gap-4">
<OperatorItemList
operators={chunkerOperators}
isCustomDropdown={isCustomDropdown}

View File

@ -96,5 +96,9 @@ export function OperatorItemList({
);
};
return <ul className="space-y-2">{operators.map(renderOperatorItem)}</ul>;
return (
<ul className="space-y-2 text-text-primary font-normal">
{operators.map(renderOperatorItem)}
</ul>
);
}