diff --git a/src/frontend/src/alerts/notice/index.tsx b/src/frontend/src/alerts/notice/index.tsx
index c77a4bcd6..62cb6c73c 100644
--- a/src/frontend/src/alerts/notice/index.tsx
+++ b/src/frontend/src/alerts/notice/index.tsx
@@ -1,8 +1,8 @@
import { Transition } from "@headlessui/react";
-import { Info } from "lucide-react";
import { useEffect, useState } from "react";
import { Link } from "react-router-dom";
import { NoticeAlertType } from "../../types/alerts";
+import IconComponent from "../../components/genericIconComponent";
export default function NoticeAlert({
title,
@@ -40,7 +40,12 @@ export default function NoticeAlert({
>
-
+
{title}
diff --git a/src/frontend/src/alerts/success/index.tsx b/src/frontend/src/alerts/success/index.tsx
index 60dba1e93..90b181a77 100644
--- a/src/frontend/src/alerts/success/index.tsx
+++ b/src/frontend/src/alerts/success/index.tsx
@@ -1,7 +1,7 @@
import { Transition } from "@headlessui/react";
-import { CheckCircle2 } from "lucide-react";
import { useEffect, useState } from "react";
import { SuccessAlertType } from "../../types/alerts";
+import IconComponent from "../../components/genericIconComponent";
export default function SuccessAlert({
title,
@@ -38,7 +38,12 @@ export default function SuccessAlert({
>
-
+
{title}
diff --git a/src/frontend/src/components/cardComponent/index.tsx b/src/frontend/src/components/cardComponent/index.tsx
index 285aa91b7..8cee9c031 100644
--- a/src/frontend/src/components/cardComponent/index.tsx
+++ b/src/frontend/src/components/cardComponent/index.tsx
@@ -1,4 +1,3 @@
-import { Trash2 } from "lucide-react";
import { useContext } from "react";
import { TabsContext } from "../../contexts/tabsContext";
import { FlowType } from "../../types/flow";
@@ -10,6 +9,7 @@ import {
CardHeader,
CardTitle,
} from "../ui/card";
+import IconComponent from "../genericIconComponent";
export const CardComponent = ({
flow,
@@ -37,7 +37,11 @@ export const CardComponent = ({
{flow.name}
{onDelete && (
)}
diff --git a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx
index 09ab90ff7..25279f504 100644
--- a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx
+++ b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx
@@ -1,5 +1,4 @@
import { Transition } from "@headlessui/react";
-import { Zap } from "lucide-react";
import { useContext, useState } from "react";
import Loading from "../../../components/ui/loading";
import { useSSE } from "../../../contexts/SSEContext";
@@ -11,6 +10,7 @@ import { validateNodes } from "../../../utils";
import { TabsContext } from "../../../contexts/tabsContext";
import RadialProgressComponent from "../../RadialProgress";
+import IconComponent from "../../genericIconComponent";
export default function BuildTrigger({
open,
@@ -190,9 +190,10 @@ export default function BuildTrigger({
className="build-trigger-loading-icon"
/>
) : (
-
)}
diff --git a/src/frontend/src/components/chatComponent/chatTrigger/index.tsx b/src/frontend/src/components/chatComponent/chatTrigger/index.tsx
index c0cd53550..cc05270fc 100644
--- a/src/frontend/src/components/chatComponent/chatTrigger/index.tsx
+++ b/src/frontend/src/components/chatComponent/chatTrigger/index.tsx
@@ -1,5 +1,4 @@
import { Transition } from "@headlessui/react";
-import { MessagesSquare } from "lucide-react";
import { useContext } from "react";
import {
@@ -9,6 +8,7 @@ import {
FLOW_NOT_BUILT_TITLE,
} from "../../../constants";
import { alertContext } from "../../../contexts/alertContext";
+import IconComponent from "../../genericIconComponent";
export default function ChatTrigger({ open, setOpen, isBuilt, canOpen }) {
const { setErrorData } = useContext(alertContext);
@@ -50,15 +50,15 @@ export default function ChatTrigger({ open, setOpen, isBuilt, canOpen }) {
}
>
-
diff --git a/src/frontend/src/components/codeAreaComponent/index.tsx b/src/frontend/src/components/codeAreaComponent/index.tsx
index 966d8f26d..7bb4373f0 100644
--- a/src/frontend/src/components/codeAreaComponent/index.tsx
+++ b/src/frontend/src/components/codeAreaComponent/index.tsx
@@ -3,7 +3,7 @@ import { PopUpContext } from "../../contexts/popUpContext";
import CodeAreaModal from "../../modals/codeAreaModal";
import { TextAreaComponentType } from "../../types/components";
-import { ExternalLink } from "lucide-react";
+import IconComponent from "../genericIconComponent";
export default function CodeAreaComponent({
value,
@@ -70,9 +70,10 @@ export default function CodeAreaComponent({
}}
>
{!editNode && (
-
-
@@ -99,8 +101,10 @@ export default function Dropdown({
"dropdown-component-choosal"
)}
>
- ;
+ return ;
}
-export function IconFromSvg({ name }: IconProps): JSX.Element {
+export function IconFromSvg({
+ name,
+ style
+}: IconProps): JSX.Element {
const TargetSvg = svgIcons[name] ?? nodeIconsLucide["unknown"];
- return ;
+ return ;
}
export default function IconComponent({
method,
name,
- className,
+ style,
}: IconComponentProps): JSX.Element {
switch (method) {
case "SVG":
- return ;
+ return ;
case "LUCIDE":
- return ;
+ return ;
default:
console.error("IconComponent: invalid method");
- return ;
+ return ;
}
}
diff --git a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx
index b362307e7..0a66b7970 100644
--- a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx
+++ b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx
@@ -1,11 +1,3 @@
-import {
- ChevronDown,
- ChevronLeft,
- Plus,
- Redo,
- Settings2,
- Undo,
-} from "lucide-react";
import { useContext } from "react";
import { PopUpContext } from "../../../../contexts/popUpContext";
import { TabsContext } from "../../../../contexts/tabsContext";
@@ -22,6 +14,7 @@ import { alertContext } from "../../../../contexts/alertContext";
import { undoRedoContext } from "../../../../contexts/undoRedoContext";
import FlowSettingsModal from "../../../../modals/flowSettingsModal";
import { Button } from "../../../ui/button";
+import IconComponent from "../../../genericIconComponent";
export const MenuBar = ({ flows, tabId }) => {
const { updateFlow, setTabId, addFlow } = useContext(TabsContext);
@@ -46,7 +39,11 @@ export const MenuBar = ({ flows, tabId }) => {
return (
-
+
@@ -54,7 +51,11 @@ export const MenuBar = ({ flows, tabId }) => {
@@ -66,7 +67,11 @@ export const MenuBar = ({ flows, tabId }) => {
}}
className="cursor-pointer"
>
-
+
New
{
}}
className="cursor-pointer"
>
-
+
Settings
{
}}
className="cursor-pointer"
>
-
+
Undo
{
}}
className="cursor-pointer"
>
-
+
Redo
{/* */}
diff --git a/src/frontend/src/components/headerComponent/index.tsx b/src/frontend/src/components/headerComponent/index.tsx
index 8f8618eff..c76e9ce16 100644
--- a/src/frontend/src/components/headerComponent/index.tsx
+++ b/src/frontend/src/components/headerComponent/index.tsx
@@ -1,4 +1,3 @@
-import { Bell, Home, MoonIcon, SunIcon, Users2 } from "lucide-react";
import { useContext, useEffect, useState } from "react";
import { FaDiscord, FaGithub, FaTwitter } from "react-icons/fa";
import { Link, useLocation, useParams } from "react-router-dom";
@@ -13,6 +12,7 @@ import { getRepoStars } from "../../controllers/API";
import { Button } from "../ui/button";
import { Separator } from "../ui/separator";
import MenuBar from "./components/menuBar";
+import IconComponent from "../genericIconComponent";
export default function Header() {
const { flows, addFlow, tabId } = useContext(TabsContext);
@@ -51,7 +51,11 @@ export default function Header() {
variant={location.pathname === "/" ? "primary" : "secondary"}
size="sm"
>
-
+
{USER_PROJECTS_HEADER}
@@ -63,7 +67,11 @@ export default function Header() {
}
size="sm"
>
-
+
Community Examples
@@ -105,9 +113,17 @@ export default function Header() {
}}
>
{dark ? (
-
+
) : (
-
+
)}
diff --git a/src/frontend/src/components/inputFileComponent/index.tsx b/src/frontend/src/components/inputFileComponent/index.tsx
index 7316566ae..f92479ec5 100644
--- a/src/frontend/src/components/inputFileComponent/index.tsx
+++ b/src/frontend/src/components/inputFileComponent/index.tsx
@@ -1,9 +1,9 @@
-import { FileSearch2 } from "lucide-react";
import { useContext, useEffect, useState } from "react";
import { alertContext } from "../../contexts/alertContext";
import { TabsContext } from "../../contexts/tabsContext";
import { uploadFile } from "../../controllers/API";
import { FileComponentType } from "../../types/components";
+import IconComponent from "../genericIconComponent";
export default function InputFileComponent({
value,
@@ -108,9 +108,10 @@ export default function InputFileComponent({
) : (
)}
diff --git a/src/frontend/src/components/promptComponent/index.tsx b/src/frontend/src/components/promptComponent/index.tsx
index 22384c299..f3c3ab6fb 100644
--- a/src/frontend/src/components/promptComponent/index.tsx
+++ b/src/frontend/src/components/promptComponent/index.tsx
@@ -4,9 +4,9 @@ import GenericModal from "../../modals/genericModal";
import { TextAreaComponentType } from "../../types/components";
import { TypeModal } from "../../utils";
-import { ExternalLink } from "lucide-react";
import { typesContext } from "../../contexts/typesContext";
import { postValidatePrompt } from "../../controllers/API";
+import IconComponent from "../genericIconComponent";
export default function PromptAreaComponent({
field_name,
@@ -106,9 +106,10 @@ export default function PromptAreaComponent({
}}
>
{!editNode && (
-
{!editNode && (
- ,
@@ -20,7 +20,11 @@ const Checkbox = React.forwardRef<
-
+
));
diff --git a/src/frontend/src/components/ui/dialog.tsx b/src/frontend/src/components/ui/dialog.tsx
index 2ad709f48..7353502ca 100644
--- a/src/frontend/src/components/ui/dialog.tsx
+++ b/src/frontend/src/components/ui/dialog.tsx
@@ -1,7 +1,7 @@
import * as DialogPrimitive from "@radix-ui/react-dialog";
-import { X } from "lucide-react";
import * as React from "react";
import { cn } from "../../utils";
+import IconComponent from "../genericIconComponent";
const Dialog = DialogPrimitive.Root;
@@ -51,7 +51,11 @@ const DialogContent = React.forwardRef<
>
{children}
-
+
Close
diff --git a/src/frontend/src/components/ui/dropdown-menu.tsx b/src/frontend/src/components/ui/dropdown-menu.tsx
index 0e5468e6e..34c53ca9b 100644
--- a/src/frontend/src/components/ui/dropdown-menu.tsx
+++ b/src/frontend/src/components/ui/dropdown-menu.tsx
@@ -1,9 +1,9 @@
"use client";
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
-import { Check, ChevronRight, Circle } from "lucide-react";
import * as React from "react";
import { cn } from "../../utils";
+import IconComponent from "../genericIconComponent";
const DropdownMenu = DropdownMenuPrimitive.Root;
@@ -33,7 +33,11 @@ const DropdownMenuSubTrigger = React.forwardRef<
{...props}
>
{children}
-
+
));
DropdownMenuSubTrigger.displayName =
@@ -106,7 +110,11 @@ const DropdownMenuCheckboxItem = React.forwardRef<
>
-
+
{children}
@@ -129,7 +137,11 @@ const DropdownMenuRadioItem = React.forwardRef<
>
-
+
{children}
diff --git a/src/frontend/src/components/ui/menubar.tsx b/src/frontend/src/components/ui/menubar.tsx
index 0a3362ca6..36672d68d 100644
--- a/src/frontend/src/components/ui/menubar.tsx
+++ b/src/frontend/src/components/ui/menubar.tsx
@@ -1,10 +1,10 @@
"use client";
import * as MenubarPrimitive from "@radix-ui/react-menubar";
-import { Check, ChevronRight, Circle } from "lucide-react";
import * as React from "react";
import { cn } from "../../utils";
+import IconComponent from "../genericIconComponent";
const MenubarMenu = MenubarPrimitive.Menu;
@@ -62,7 +62,11 @@ const MenubarSubTrigger = React.forwardRef<
{...props}
>
{children}
-
+
));
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
@@ -140,7 +144,11 @@ const MenubarCheckboxItem = React.forwardRef<
>
-
+
{children}
@@ -162,7 +170,11 @@ const MenubarRadioItem = React.forwardRef<
>
-
+
{children}
diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx
index f3f84a9ac..7eb7bebd3 100644
--- a/src/frontend/src/modals/ApiModal/index.tsx
+++ b/src/frontend/src/modals/ApiModal/index.tsx
@@ -5,7 +5,7 @@ import "ace-builds/src-noconflict/theme-twilight";
import { useContext, useEffect, useRef, useState } from "react";
import { PopUpContext } from "../../contexts/popUpContext";
// import "ace-builds/webpack-resolver";
-import { Check, Clipboard, Code2 } from "lucide-react";
+import { Check, Clipboard } from "lucide-react";
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
import { oneDark } from "react-syntax-highlighter/dist/cjs/styles/prism";
import AccordionComponent from "../../components/AccordionComponent";
@@ -52,6 +52,7 @@ import { darkContext } from "../../contexts/darkContext";
import { TabsContext } from "../../contexts/tabsContext";
import { FlowType } from "../../types/flow/index";
import { buildTweaks, classNames } from "../../utils";
+import IconComponent from "../../components/genericIconComponent";
export default function ApiModal({ flow }: { flow: FlowType }) {
const [open, setOpen] = useState(true);
@@ -271,8 +272,10 @@ export default function ApiModal({ flow }: { flow: FlowType }) {
Code
-
diff --git a/src/frontend/src/modals/EditNodeModal/index.tsx b/src/frontend/src/modals/EditNodeModal/index.tsx
index 84d85014d..3e78e00c9 100644
--- a/src/frontend/src/modals/EditNodeModal/index.tsx
+++ b/src/frontend/src/modals/EditNodeModal/index.tsx
@@ -1,4 +1,3 @@
-import { Variable } from "lucide-react";
import { useContext, useRef, useState } from "react";
import CodeAreaComponent from "../../components/codeAreaComponent";
import Dropdown from "../../components/dropdownComponent";
@@ -34,6 +33,7 @@ import { TabsContext } from "../../contexts/tabsContext";
import { typesContext } from "../../contexts/typesContext";
import { NodeDataType } from "../../types/flow";
import { classNames, limitScrollFieldsModal } from "../../utils";
+import IconComponent from "../../components/genericIconComponent";
export default function EditNodeModal({ data }: { data: NodeDataType }) {
const [open, setOpen] = useState(true);
@@ -109,7 +109,11 @@ export default function EditNodeModal({ data }: { data: NodeDataType }) {
{data.node?.description}
-
+
Parameters
diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx
index c61af4ff4..25189cf23 100644
--- a/src/frontend/src/modals/NodeModal/index.tsx
+++ b/src/frontend/src/modals/NodeModal/index.tsx
@@ -1,5 +1,4 @@
import { Dialog, Transition } from "@headlessui/react";
-import { X } from "lucide-react";
import { Fragment, useContext, useRef, useState } from "react";
import { PopUpContext } from "../../contexts/popUpContext";
import { typesContext } from "../../contexts/typesContext";
@@ -12,6 +11,7 @@ import {
toTitleCase,
} from "../../utils";
import ModalField from "./components/ModalField";
+import IconComponent from "../../components/genericIconComponent";
export default function NodeModal({ data }: { data: NodeDataType }) {
const [open, setOpen] = useState(true);
@@ -69,7 +69,12 @@ export default function NodeModal({ data }: { data: NodeDataType }) {
}}
>
Close
-
+
diff --git a/src/frontend/src/modals/codeAreaModal/index.tsx b/src/frontend/src/modals/codeAreaModal/index.tsx
index cc0495977..588caf460 100644
--- a/src/frontend/src/modals/codeAreaModal/index.tsx
+++ b/src/frontend/src/modals/codeAreaModal/index.tsx
@@ -4,7 +4,6 @@ import "ace-builds/src-noconflict/ext-language_tools";
import "ace-builds/src-noconflict/mode-python";
import "ace-builds/src-noconflict/theme-github";
import "ace-builds/src-noconflict/theme-twilight";
-import { TerminalSquare } from "lucide-react";
import { useContext, useState } from "react";
import AceEditor from "react-ace";
import { Button } from "../../components/ui/button";
@@ -15,6 +14,7 @@ import { PopUpContext } from "../../contexts/popUpContext";
import { postValidateCode } from "../../controllers/API";
import { APIClassType } from "../../types/api";
import BaseModal from "../baseModal";
+import IconComponent from "../../components/genericIconComponent";
export default function CodeAreaModal({
value,
@@ -83,9 +83,10 @@ export default function CodeAreaModal({
Edit Code
-
diff --git a/src/frontend/src/modals/exportModal/index.tsx b/src/frontend/src/modals/exportModal/index.tsx
index fb6867811..5be244ce0 100644
--- a/src/frontend/src/modals/exportModal/index.tsx
+++ b/src/frontend/src/modals/exportModal/index.tsx
@@ -1,4 +1,3 @@
-import { Download } from "lucide-react";
import { useContext, useRef, useState } from "react";
import EditFlowSettings from "../../components/EditFlowSettingsComponent";
import { Button } from "../../components/ui/button";
@@ -17,6 +16,7 @@ import { alertContext } from "../../contexts/alertContext";
import { PopUpContext } from "../../contexts/popUpContext";
import { TabsContext } from "../../contexts/tabsContext";
import { removeApiKeys } from "../../utils";
+import IconComponent from "../../components/genericIconComponent";
export default function ExportModal() {
const [open, setOpen] = useState(true);
@@ -46,9 +46,10 @@ export default function ExportModal() {
Export
-
diff --git a/src/frontend/src/modals/flowSettingsModal/index.tsx b/src/frontend/src/modals/flowSettingsModal/index.tsx
index 44f82e331..e27a82cf9 100644
--- a/src/frontend/src/modals/flowSettingsModal/index.tsx
+++ b/src/frontend/src/modals/flowSettingsModal/index.tsx
@@ -1,4 +1,3 @@
-import { Settings2 } from "lucide-react";
import { useContext, useRef, useState } from "react";
import EditFlowSettings from "../../components/EditFlowSettingsComponent";
import { Button } from "../../components/ui/button";
@@ -15,6 +14,7 @@ import { SETTINGS_DIALOG_SUBTITLE } from "../../constants";
import { alertContext } from "../../contexts/alertContext";
import { PopUpContext } from "../../contexts/popUpContext";
import { TabsContext } from "../../contexts/tabsContext";
+import IconComponent from "../../components/genericIconComponent";
export default function FlowSettingsModal() {
const [open, setOpen] = useState(true);
@@ -51,7 +51,11 @@ export default function FlowSettingsModal() {
Settings
-
+
{SETTINGS_DIALOG_SUBTITLE}
diff --git a/src/frontend/src/modals/formModal/chatInput/index.tsx b/src/frontend/src/modals/formModal/chatInput/index.tsx
index ec62c0505..3ceb2a1fd 100644
--- a/src/frontend/src/modals/formModal/chatInput/index.tsx
+++ b/src/frontend/src/modals/formModal/chatInput/index.tsx
@@ -1,6 +1,6 @@
-import { Lock, LucideSend, Sparkles } from "lucide-react";
import { useEffect } from "react";
import { classNames } from "../../../utils";
+import IconComponent from "../../../components/genericIconComponent";
export default function ChatInput({
lockChat,
@@ -77,11 +77,26 @@ export default function ChatInput({
onClick={() => sendMessage()}
>
{lockChat ? (
-
+
) : noInput ? (
-
+
) : (
-
+
)}
diff --git a/src/frontend/src/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx
index 8cbf0877c..279ee8d72 100644
--- a/src/frontend/src/modals/formModal/chatMessage/index.tsx
+++ b/src/frontend/src/modals/formModal/chatMessage/index.tsx
@@ -1,5 +1,4 @@
import Convert from "ansi-to-html";
-import { ChevronDown } from "lucide-react";
import { useMemo, useState } from "react";
import ReactMarkdown from "react-markdown";
import rehypeMathjax from "rehype-mathjax";
@@ -13,6 +12,7 @@ import { ChatMessageType } from "../../../types/chat";
import { classNames } from "../../../utils";
import FileCard from "../fileComponent";
import { CodeBlock } from "./codeBlock";
+import IconComponent from "../../../components/genericIconComponent";
export default function ChatMessage({
chat,
lockChat,
@@ -160,10 +160,12 @@ export default function ChatMessage({
}}
>
Display Prompt
-
diff --git a/src/frontend/src/modals/formModal/fileComponent/index.tsx b/src/frontend/src/modals/formModal/fileComponent/index.tsx
index 6ede4e136..610a56bca 100644
--- a/src/frontend/src/modals/formModal/fileComponent/index.tsx
+++ b/src/frontend/src/modals/formModal/fileComponent/index.tsx
@@ -1,6 +1,6 @@
import * as base64js from "base64-js";
-import { DownloadCloud, File } from "lucide-react";
import { useState } from "react";
+import IconComponent from "../../../components/genericIconComponent";
export default function FileCard({ fileName, content, fileType }) {
const handleDownload = () => {
@@ -41,7 +41,11 @@ export default function FileCard({ fileName, content, fileType }) {
className="file-card-modal-image-button "
onClick={handleDownload}
>
-
+
)}
@@ -60,14 +64,22 @@ export default function FileCard({ fileName, content, fileType }) {
className="h-8 w-8"
/>
) : (
-