langflow/src/frontend/src/utils/styleUtils.ts

498 lines
11 KiB
TypeScript

import {
AlertCircle,
ArrowBigUp,
ArrowLeft,
ArrowUpToLine,
Bell,
Binary,
BookMarked,
BookmarkPlus,
Bot,
Boxes,
Braces,
BrainCircuit,
Check,
CheckCircle2,
ChevronDown,
ChevronLeft,
ChevronRight,
ChevronRightSquare,
ChevronUp,
ChevronsLeft,
ChevronsRight,
ChevronsUpDown,
Circle,
CircleDot,
Clipboard,
Code,
Code2,
Combine,
Command,
Compass,
Copy,
Cpu,
Database,
Delete,
Dot,
Download,
DownloadCloud,
Edit,
Eraser,
ExternalLink,
Eye,
EyeOff,
File,
FileClock,
FileDown,
FileSearch,
FileSearch2,
FileSliders,
FileText,
FileType2,
FileUp,
FlaskConical,
FolderPlus,
FormInput,
Forward,
Gift,
GitBranchPlus,
GitFork,
GithubIcon,
Group,
Hammer,
Heart,
HelpCircle,
Home,
Info,
Key,
Laptop2,
Layers,
Link,
Loader2,
Lock,
LogIn,
LucideSend,
Maximize2,
Menu,
MessageCircle,
MessageSquare,
MessageSquareMore,
MessagesSquare,
Minimize2,
Minus,
MoonIcon,
MoreHorizontal,
Network,
Package2,
Paperclip,
Pencil,
PencilLine,
Pin,
Play,
Plus,
PlusCircle,
PlusSquare,
PocketKnife,
Redo,
RefreshCcw,
Repeat,
Save,
SaveAll,
Scissors,
ScreenShare,
Search,
Settings2,
Share,
Share2,
Shield,
Sliders,
Snowflake,
Sparkles,
Square,
SquarePen,
Store,
SunIcon,
TerminalIcon,
TerminalSquare,
TextCursorInput,
ToyBrick,
Trash2,
Type,
Undo,
Ungroup,
Unplug,
Upload,
User,
UserCog2,
UserMinus2,
UserPlus2,
Users2,
Variable,
Wand2,
Workflow,
X,
XCircle,
Zap,
} from "lucide-react";
import { FaApple, FaGithub } from "react-icons/fa";
import { AWSIcon } from "../icons/AWS";
import { AirbyteIcon } from "../icons/Airbyte";
import { AnthropicIcon } from "../icons/Anthropic";
import { AstraDBIcon } from "../icons/AstraDB";
import { AzureIcon } from "../icons/Azure";
import { BingIcon } from "../icons/Bing";
import { BotMessageSquareIcon } from "../icons/BotMessageSquare";
import { ChromaIcon } from "../icons/ChromaIcon";
import { CohereIcon } from "../icons/Cohere";
import { ElasticsearchIcon } from "../icons/ElasticsearchStore";
import { EvernoteIcon } from "../icons/Evernote";
import { FBIcon } from "../icons/FacebookMessenger";
import { GitBookIcon } from "../icons/GitBook";
import { GoogleIcon } from "../icons/Google";
import {
GradientInfinity,
GradientSave,
GradientUngroup,
} from "../icons/GradientSparkles";
import { HuggingFaceIcon } from "../icons/HuggingFace";
import { IFixIcon } from "../icons/IFixIt";
import { MetaIcon } from "../icons/Meta";
import { MidjourneyIcon } from "../icons/Midjorney";
import { MongoDBIcon } from "../icons/MongoDB";
import { NotionIcon } from "../icons/Notion";
import { OllamaIcon } from "../icons/Ollama";
import { OpenAiIcon } from "../icons/OpenAi";
import { PineconeIcon } from "../icons/Pinecone";
import { PostgresIcon } from "../icons/Postgres";
import { PythonIcon } from "../icons/Python";
import { QDrantIcon } from "../icons/QDrant";
import { QianFanChatIcon } from "../icons/QianFanChat";
import { RedisIcon } from "../icons/Redis";
import { SearxIcon } from "../icons/Searx";
import { ShareIcon } from "../icons/Share";
import { Share2Icon } from "../icons/Share2";
import SvgSlackIcon from "../icons/Slack/SlackIcon";
import { VectaraIcon } from "../icons/VectaraIcon";
import { VertexAIIcon } from "../icons/VertexAI";
import { WeaviateIcon } from "../icons/Weaviate";
import SvgWikipedia from "../icons/Wikipedia/Wikipedia";
import SvgWolfram from "../icons/Wolfram/Wolfram";
import { HackerNewsIcon } from "../icons/hackerNews";
import { SupabaseIcon } from "../icons/supabase";
import { iconsType } from "../types/components";
export const gradients = [
"bg-gradient-to-br from-gray-800 via-rose-700 to-violet-900",
"bg-gradient-to-br from-green-200 via-green-300 to-blue-500",
"bg-gradient-to-br from-yellow-200 via-yellow-400 to-yellow-700",
"bg-gradient-to-br from-green-200 via-green-400 to-purple-700",
"bg-gradient-to-br from-blue-100 via-blue-300 to-blue-500",
"bg-gradient-to-br from-purple-400 to-yellow-400",
"bg-gradient-to-br from-red-800 via-yellow-600 to-yellow-500",
"bg-gradient-to-br from-blue-300 via-green-200 to-yellow-300",
"bg-gradient-to-br from-blue-700 via-blue-800 to-gray-900",
"bg-gradient-to-br from-green-300 to-purple-400",
"bg-gradient-to-br from-yellow-200 via-pink-200 to-pink-400",
"bg-gradient-to-br from-green-500 to-green-700",
"bg-gradient-to-br from-rose-400 via-fuchsia-500 to-indigo-500",
"bg-gradient-to-br from-sky-400 to-blue-500",
"bg-gradient-to-br from-green-200 via-green-400 to-green-500",
"bg-gradient-to-br from-red-400 via-gray-300 to-blue-500",
"bg-gradient-to-br from-gray-900 to-gray-600 bg-gradient-to-r",
"bg-gradient-to-br from-rose-500 via-red-400 to-red-500",
"bg-gradient-to-br from-fuchsia-600 to-pink-600",
"bg-gradient-to-br from-emerald-500 to-lime-600",
"bg-gradient-to-br from-rose-500 to-indigo-700",
"bg-gradient-to-br bg-gradient-to-tr from-violet-500 to-orange-300",
"bg-gradient-to-br from-gray-900 via-purple-900 to-violet-600",
"bg-gradient-to-br from-yellow-200 via-red-500 to-fuchsia-500",
"bg-gradient-to-br from-sky-400 to-indigo-900",
"bg-gradient-to-br from-amber-200 via-violet-600 to-sky-900",
"bg-gradient-to-br from-amber-700 via-orange-300 to-rose-800",
"bg-gradient-to-br from-gray-300 via-fuchsia-600 to-orange-600",
"bg-gradient-to-br from-fuchsia-500 via-red-600 to-orange-400",
"bg-gradient-to-br from-sky-400 via-rose-400 to-lime-400",
"bg-gradient-to-br from-lime-600 via-yellow-300 to-red-600",
];
export const nodeColors: { [char: string]: string } = {
inputs: "#9AAE42",
outputs: "#AA2411",
data: "#6344BE",
prompts: "#4367BF",
models: "#AA2411",
model_specs: "#6344BE",
chains: "#FE7500",
Document: "#7AAE42",
list: "#9AAE42",
agents: "#903BBE",
tools: "#FF3434",
memories: "#F5B85A",
saved_components: "#a5B85A",
advanced: "#000000",
chat: "#198BF6",
thought: "#272541",
embeddings: "#42BAA7",
documentloaders: "#7AAE42",
vectorstores: "#AA8742",
textsplitters: "#B47CB5",
toolkits: "#DB2C2C",
wrappers: "#E6277A",
helpers: "#31A3CC",
experimental: "#E6277A",
langchain_utilities: "#31A3CC",
output_parsers: "#E6A627",
str: "#31a3cc",
Text: "#31a3cc",
retrievers: "#e6b25a",
unknown: "#9CA3AF",
custom_components: "#ab11ab",
};
export const nodeNames: { [char: string]: string } = {
inputs: "Inputs",
outputs: "Outputs",
data: "Data",
prompts: "Prompts",
models: "Models",
model_specs: "Model Specs",
chains: "Chains",
agents: "Agents",
tools: "Tools",
memories: "Memories",
saved_components: "Saved",
advanced: "Advanced",
chat: "Chat",
embeddings: "Embeddings",
documentloaders: "Loaders",
vectorstores: "Vector Stores",
toolkits: "Toolkits",
wrappers: "Wrappers",
textsplitters: "Text Splitters",
retrievers: "Retrievers",
helpers: "Helpers",
experimental: "Experimental",
langchain_utilities: "Utilities",
output_parsers: "Output Parsers",
custom_components: "Custom",
unknown: "Other",
};
export const nodeIconsLucide: iconsType = {
X: X,
Notify: Bell,
ListFlows: Group,
ClearMessageHistory: FileClock,
Python: PythonIcon,
ChatOutput: BotMessageSquareIcon,
ChatInput: MessagesSquare,
inputs: Download,
outputs: Upload,
data: Database,
AzureChatOpenAi: AzureIcon,
Ollama: OllamaIcon,
ChatOllama: OllamaIcon,
AzureOpenAiEmbeddings: AzureIcon,
Azure: AzureIcon,
OllamaEmbeddings: OllamaIcon,
ChatOllamaModel: OllamaIcon,
Faiss: MetaIcon,
FaissSearch: MetaIcon,
AzureOpenAiModel: AzureIcon,
Redis: RedisIcon,
RedisSearch: RedisIcon,
PostgresChatMessageHistory: PostgresIcon,
BaiduQianfan: QianFanChatIcon,
Play,
Vectara: VectaraIcon,
ArrowUpToLine: ArrowUpToLine,
Chroma: ChromaIcon,
AirbyteJSONLoader: AirbyteIcon,
AmazonBedrockEmbeddings: AWSIcon,
Amazon: AWSIcon,
Anthropic: AnthropicIcon,
ChatAnthropic: AnthropicIcon,
AstraDB: AstraDBIcon,
BingSearchAPIWrapper: BingIcon,
BingSearchRun: BingIcon,
Cohere: CohereIcon,
CohereEmbeddings: CohereIcon,
EverNoteLoader: EvernoteIcon,
FacebookChatLoader: FBIcon,
GitbookLoader: GitBookIcon,
GoogleSearchAPIWrapper: GoogleIcon,
GoogleSearchResults: GoogleIcon,
GoogleSearchRun: GoogleIcon,
Google: GoogleIcon,
HNLoader: HackerNewsIcon,
HuggingFaceHub: HuggingFaceIcon,
HuggingFace: HuggingFaceIcon,
HuggingFaceEmbeddings: HuggingFaceIcon,
IFixitLoader: IFixIcon,
Meta: MetaIcon,
Midjorney: MidjourneyIcon,
MongoDBAtlasVectorSearch: MongoDBIcon,
MongoDB: MongoDBIcon,
MongoDBChatMessageHistory: MongoDBIcon,
NotionDirectoryLoader: NotionIcon,
ChatOpenAI: OpenAiIcon,
AzureChatOpenAI: OpenAiIcon,
OpenAI: OpenAiIcon,
OpenAIEmbeddings: OpenAiIcon,
Pinecone: PineconeIcon,
Qdrant: QDrantIcon,
ElasticsearchStore: ElasticsearchIcon,
Weaviate: WeaviateIcon,
Searx: SearxIcon,
SlackDirectoryLoader: SvgSlackIcon,
SupabaseVectorStore: SupabaseIcon,
Supabase: SupabaseIcon,
VertexAI: VertexAIIcon,
ChatVertexAI: VertexAIIcon,
VertexAIEmbeddings: VertexAIIcon,
Share3: ShareIcon,
Share4: Share2Icon,
agents: Bot,
Workflow,
User,
WikipediaAPIWrapper: SvgWikipedia,
chains: Link,
memories: Cpu,
models: BrainCircuit,
model_specs: FileSliders,
prompts: TerminalSquare,
tools: Hammer,
advanced: Laptop2,
chat: MessageCircle,
embeddings: Binary,
saved_components: GradientSave,
documentloaders: Paperclip,
vectorstores: Layers,
toolkits: Package2,
textsplitters: Scissors,
wrappers: Gift,
helpers: Wand2,
experimental: FlaskConical,
langchain_utilities: PocketKnife,
WolframAlphaAPIWrapper: SvgWolfram,
output_parsers: Compass,
retrievers: FileSearch,
unknown: HelpCircle,
WikipediaQueryRun: SvgWikipedia,
WolframAlphaQueryRun: SvgWolfram,
custom_components: GradientInfinity,
group_components: GradientUngroup,
custom: Edit,
Trash2,
Boxes,
Network,
X,
XCircle,
Info,
CheckCircle2,
SquarePen,
Zap,
MessagesSquare,
ExternalLink,
ChevronsUpDown,
Check,
Home,
Users2,
SunIcon,
MoonIcon,
Bell,
ChevronLeft,
ChevronDown,
ArrowLeft,
Shield,
Plus,
Redo,
Settings2,
FileType2,
Undo,
FileSearch2,
ChevronRight,
Circle,
CircleDot,
Clipboard,
PlusCircle,
PlusSquare,
Code2,
Variable,
Snowflake,
Store,
Download,
Eraser,
Lock,
LucideSend,
Sparkles,
DownloadCloud,
File,
FileText,
FolderPlus,
GitFork,
GithubIcon,
FileDown,
FileUp,
Menu,
Save,
Search,
Copy,
Upload,
MessageSquare,
MoreHorizontal,
UserMinus2,
UserPlus2,
Pencil,
ChevronsRight,
ChevronsLeft,
FaGithub,
FaApple,
EyeOff,
Eye,
UserCog2,
Key,
Unplug,
Group,
LogIn,
ChevronUp,
PencilLine,
Ungroup,
BookMarked,
Minus,
Square,
Minimize2,
Maximize2,
FormInput,
ChevronRightSquare,
SaveAll,
MessageSquareMore,
Forward,
Share2,
Share,
GitBranchPlus,
Loader2,
BookmarkPlus,
Heart,
Pin,
Link,
ToyBrick,
RefreshCcw,
Combine,
TerminalIcon,
TerminalSquare,
TextCursorInput,
Repeat,
Sliders,
ScreenShare,
Code,
Type,
Braces,
FlaskConical,
AlertCircle,
Bot,
Delete,
Command,
ArrowBigUp,
Dot,
};