diff --git a/frontend/chains/editor/styles.js b/frontend/chains/editor/styles.js index f984c7fc..b830fae7 100644 --- a/frontend/chains/editor/styles.js +++ b/frontend/chains/editor/styles.js @@ -20,6 +20,9 @@ import { ChainNode } from "chains/flow/ChainNode"; import { BranchNode } from "chains/flow/BranchNode"; import { MapNode } from "chains/flow/MapNode"; import { RootNode } from "chains/flow/RootNode"; +import { LoopIcon } from "icons/LoopIcon"; +import { SplitIcon } from "icons/SplitIcon"; +import { MergeIcon } from "icons/MergeIcon"; export const NODE_STYLES = { llm: { @@ -35,7 +38,9 @@ export const NODE_STYLES = { component: ChainNode, }, flow: { - icon: faList, + icon: { + component: LoopIcon, + }, component: ChainNode, }, memory: { @@ -92,11 +97,15 @@ export const NODE_STYLES = { icon: faBrain, }, branch: { - icon: faArrowRightFromBracket, + icon: { + component: SplitIcon, + }, component: BranchNode, }, map: { - icon: faArrowRightToBracket, + icon: { + component: MergeIcon, + }, component: MapNode, }, root: { diff --git a/frontend/chains/flow/ConfigNode.js b/frontend/chains/flow/ConfigNode.js index 844eb445..e030ef30 100644 --- a/frontend/chains/flow/ConfigNode.js +++ b/frontend/chains/flow/ConfigNode.js @@ -1,5 +1,5 @@ import React, { useCallback, useContext, useMemo } from "react"; -import { Box, Flex, Heading, VStack } from "@chakra-ui/react"; +import { Box, Flex, Heading, HStack, Text, VStack } from "@chakra-ui/react"; import { Handle, useEdges, useReactFlow } from "reactflow"; import { faTrash } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; @@ -232,10 +232,12 @@ export const ConfigNode = ({ id, data, selected }) => { className="drag-handle" > - + {" "} - {node.name || type?.name || node.class_path.split(".").pop()} - + + {node.name || type?.name || node.class_path.split(".").pop()} + + diff --git a/frontend/icons/ChatHistoryIcon.js b/frontend/icons/ChatHistoryIcon.js new file mode 100644 index 00000000..2e758166 --- /dev/null +++ b/frontend/icons/ChatHistoryIcon.js @@ -0,0 +1,23 @@ +import React from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faMessage, faClock } from "@fortawesome/free-solid-svg-icons"; +import { useColorMode } from "@chakra-ui/color-mode"; +import { Box } from "@chakra-ui/layout"; +import { StackableIcon } from "icons/StackableIcon"; +import { IndicatorIcon } from "icons/IndicatorIcon"; + +const ChatHistoryIcon = () => { + const { colorMode } = useColorMode(); + const iconColor = colorMode === "light" ? "gray.200" : "black"; + + return ( + + + + + + + ); +}; + +export default ChatHistoryIcon; diff --git a/frontend/icons/IndicatorIcon.js b/frontend/icons/IndicatorIcon.js index 965da103..4ef0f3a0 100644 --- a/frontend/icons/IndicatorIcon.js +++ b/frontend/icons/IndicatorIcon.js @@ -11,8 +11,8 @@ export const IndicatorIcon = ({ children, color, indicatorSize }) => { bottom: 0, right: 0, transform: "translate(40%, 0%)", - width: indicatorSize + 2 + "px", // Adjust size as needed - height: indicatorSize + 2 + "px", // Adjust size as needed + width: (indicatorSize || 11) + 2 + "px", // Adjust size as needed + height: (indicatorSize || 11) + 2 + "px", // Adjust size as needed borderRadius: "50%", display: "flex", justifyContent: "center", diff --git a/frontend/icons/LoopIcon.js b/frontend/icons/LoopIcon.js new file mode 100644 index 00000000..7567c798 --- /dev/null +++ b/frontend/icons/LoopIcon.js @@ -0,0 +1,13 @@ +import React from "react"; +import SVGIcon from "icons/SVGIcon"; + +export const LoopIcon = ({ ...props }) => { + return ( + + + + ); +}; diff --git a/frontend/icons/MergeIcon.js b/frontend/icons/MergeIcon.js new file mode 100644 index 00000000..4301e866 --- /dev/null +++ b/frontend/icons/MergeIcon.js @@ -0,0 +1,13 @@ +import React from "react"; +import SVGIcon from "icons/SVGIcon"; + +export const MergeIcon = ({ ...props }) => { + return ( + + + + ); +}; diff --git a/frontend/icons/SVGIcon.js b/frontend/icons/SVGIcon.js new file mode 100644 index 00000000..7b4f311b --- /dev/null +++ b/frontend/icons/SVGIcon.js @@ -0,0 +1,22 @@ +import React from "react"; +import { Box, useToken } from "@chakra-ui/react"; + +export const SVGIcon = ({ color, bg, children, svgProps, ...props }) => { + const colorToken = useToken("colors", color || "white"); + + return ( + + + {children} + + + ); +}; + +export default SVGIcon; diff --git a/frontend/icons/SplitIcon.js b/frontend/icons/SplitIcon.js new file mode 100644 index 00000000..6e739c2c --- /dev/null +++ b/frontend/icons/SplitIcon.js @@ -0,0 +1,10 @@ +import React from "react"; +import SVGIcon from "icons/SVGIcon"; + +export const SplitIcon = ({ ...props }) => { + return ( + + + + ); +}; diff --git a/frontend/site/Navigation.js b/frontend/site/Navigation.js index 2257eef2..59074b8b 100644 --- a/frontend/site/Navigation.js +++ b/frontend/site/Navigation.js @@ -6,6 +6,7 @@ import { Link } from "react-router-dom"; import { useColorMode } from "@chakra-ui/color-mode"; import { SecretsMenuItem } from "secrets/SecretsMenuItem"; import { MenuItem } from "site/MenuItem"; +import ChatHistoryIcon from "icons/ChatHistoryIcon"; function Navigation() { const { colorMode } = useColorMode(); @@ -25,7 +26,7 @@ function Navigation() { - + {false && (