fix: Resolve DOM validation & React lifecycle warnings (#5205)

📝 (frontend): Update AlertDropdown component to use 'asChild' prop for PopoverTrigger
📝 (frontend): Refactor ShadTooltip component to use forwardRef and add displayName
📝 (frontend): Update AppHeaderComponent to remove unnecessary aria-hidden attribute
📝 (frontend): Refactor SelectOptions component to improve code structure and readability
📝 (frontend): Update SideBarFoldersButtonsComponent to add getRandomKeyByssmm function and improve code structure

📝 (AWS.jsx): Update fill color condition to use stringToBool function for props.isdark
📝 (index.tsx): Convert isdark value to string before passing it to SvgAWS component
📝 (AstraDB.jsx): Update fill color condition to use stringToBool function for props.isdark

 (icons): Convert 'isdark' variable to string to ensure consistent type
♻️ (icons): Refactor 'fill-rule' and 'clip-rule' attributes to 'fillRule' and 'clipRule' for consistency
♻️ (nvidia): Refactor 'enable-background' attribute to 'enableBackground' for consistency
♻️ (nvidia): Refactor 'fill' attribute to use 'stringToBool' function for consistent boolean conversion
📝 (utils): Add 'stringToBool' function to convert string to boolean for reusability
This commit is contained in:
Cristhian Zanforlin Lousa 2024-12-11 14:48:12 -03:00 committed by GitHub
commit dfcb3a5b04
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 2991 additions and 2968 deletions

View file

@ -46,7 +46,7 @@ export default function AlertDropdown({
}
}}
>
<PopoverTrigger>{children}</PopoverTrigger>
<PopoverTrigger asChild>{children}</PopoverTrigger>
<PopoverContent
ref={notificationRef}
data-testid="notification-dropdown-content"

View file

@ -1,46 +1,54 @@
import React from "react";
import React, { forwardRef } from "react";
import { ShadToolTipType } from "../../../types/components";
import { cn } from "../../../utils/utils";
import { Tooltip, TooltipContent, TooltipTrigger } from "../../ui/tooltip";
const ShadTooltip: React.FC<ShadToolTipType> = ({
content,
side,
asChild = true,
children,
styleClasses,
delayDuration = 500,
open,
align,
setOpen,
avoidCollisions = false,
}) => {
if (!content) {
return <>{children}</>;
}
const ShadTooltip = forwardRef<HTMLDivElement, ShadToolTipType>(
(
{
content,
side,
asChild = true,
children,
styleClasses,
delayDuration = 500,
open,
align,
setOpen,
avoidCollisions = false,
},
ref,
) => {
if (!content) {
return <>{children}</>;
}
return (
<Tooltip
defaultOpen={!children}
open={open}
onOpenChange={setOpen}
delayDuration={delayDuration}
>
<TooltipTrigger asChild={asChild}>{children}</TooltipTrigger>
<TooltipContent
className={cn(
"z-[99] max-w-96 bg-tooltip text-[12px] text-tooltip-foreground",
styleClasses,
)}
side={side}
avoidCollisions={avoidCollisions}
align={align}
sticky="always"
return (
<Tooltip
defaultOpen={!children}
open={open}
onOpenChange={setOpen}
delayDuration={delayDuration}
>
{content}
</TooltipContent>
</Tooltip>
);
};
<TooltipTrigger asChild={asChild}>{children}</TooltipTrigger>
<TooltipContent
ref={ref}
className={cn(
"z-[99] max-w-96 bg-tooltip text-[12px] text-tooltip-foreground",
styleClasses,
)}
side={side}
avoidCollisions={avoidCollisions}
align={align}
sticky="always"
>
{content}
</TooltipContent>
</Tooltip>
);
},
);
ShadTooltip.displayName = "ShadTooltip";
export default ShadTooltip;

View file

@ -121,7 +121,6 @@ export default function AppHeader(): JSX.Element {
<ForwardedIconComponent
name="Bell"
className="side-bar-button-size h-[18px] w-[18px]"
aria-hidden="true"
/>
<span className="hidden whitespace-nowrap 2xl:inline">
Notifications
@ -175,7 +174,6 @@ export default function AppHeader(): JSX.Element {
<ForwardedIconComponent
name="book-open-text"
className="side-bar-button-size h-[18px] w-[18px]"
aria-hidden="true"
/>
<span className="hidden whitespace-nowrap 2xl:inline">
Docs

View file

@ -27,54 +27,52 @@ export const SelectOptions = ({
checkPathName: (folderId: string) => boolean;
}) => {
return (
<>
<Select
onValueChange={(value) =>
handleSelectChange(
value,
item,
handleDeleteFolder,
handleDownloadFolder,
handleSelectFolderToRename,
)
}
value=""
>
<ShadTooltip content="Options" side="right" styleClasses="z-50">
<SelectTrigger
className="w-fit"
id={`options-trigger-${item.name}`}
data-testid="more-options-button"
<Select
onValueChange={(value) =>
handleSelectChange(
value,
item,
handleDeleteFolder,
handleDownloadFolder,
handleSelectFolderToRename,
)
}
value=""
>
<ShadTooltip content="Options" side="right" styleClasses="z-50">
<SelectTrigger
className={cn(
"w-fit p-0",
checkPathName(item.id!) ? "block" : "hidden",
)}
id={`options-trigger-${item.name}`}
data-testid="more-options-button"
>
<IconComponent
name="MoreHorizontal"
className="w-4 stroke-[1.5] px-0 text-muted-foreground group-hover/menu-button:text-foreground"
/>
</SelectTrigger>
</ShadTooltip>
<SelectContent align="end" alignOffset={-16} position="popper">
{item.name !== "My Projects" && (
<SelectItem
id="rename-button"
value="rename"
data-testid="btn-rename-folder"
>
<IconComponent
name={"MoreHorizontal"}
className={cn(
`w-4 stroke-[1.5] px-0 text-muted-foreground group-hover/menu-button:block group-hover/menu-button:text-foreground`,
checkPathName(item.id!) ? "block" : "hidden",
)}
/>
</SelectTrigger>
</ShadTooltip>
<SelectContent align="end" alignOffset={-16} position="popper">
{item.name !== "My Projects" && (
<SelectItem
id="rename-button"
value="rename"
data-testid="btn-rename-folder"
>
<FolderSelectItem name="Rename" iconName="SquarePen" />
</SelectItem>
)}
<SelectItem value="download" data-testid="btn-download-folder">
<FolderSelectItem name="Download Content" iconName="Download" />
<FolderSelectItem name="Rename" iconName="SquarePen" />
</SelectItem>
{index > 0 && (
<SelectItem value="delete" data-testid="btn-delete-folder">
<FolderSelectItem name="Delete" iconName="Trash2" />
</SelectItem>
)}
</SelectContent>
</Select>
</>
)}
<SelectItem value="download" data-testid="btn-download-folder">
<FolderSelectItem name="Download Content" iconName="Download" />
</SelectItem>
{index > 0 && (
<SelectItem value="delete" data-testid="btn-delete-folder">
<FolderSelectItem name="Delete" iconName="Trash2" />
</SelectItem>
)}
</SelectContent>
</Select>
);
};

View file

@ -28,7 +28,7 @@ import useAlertStore from "../../../../../stores/alertStore";
import useFlowsManagerStore from "../../../../../stores/flowsManagerStore";
import { useFolderStore } from "../../../../../stores/foldersStore";
import { handleKeyDown } from "../../../../../utils/reactflowUtils";
import { cn } from "../../../../../utils/utils";
import { cn, getRandomKeyByssmm } from "../../../../../utils/utils";
import useFileDrop from "../../hooks/use-on-file-drop";
import { SidebarFolderSkeleton } from "../sidebarFolderSkeleton";
import { HeaderButtons } from "./components/header-buttons";
@ -356,46 +356,53 @@ const SideBarFoldersButtonsComponent = ({
(folder) => folder.name === item.name,
)[0];
return (
<SidebarMenuItem>
<SidebarMenuButton
size="md"
onDragOver={(e) => dragOver(e, item.id!)}
onDragEnter={(e) => dragEnter(e, item.id!)}
onDragLeave={dragLeave}
onDrop={(e) => onDrop(e, item.id!)}
key={item.id}
data-testid={`sidebar-nav-${item.name}`}
isActive={checkPathName(item.id!)}
onClick={() => handleChangeFolder!(item.id!)}
className={cn(
"group/menu-button",
checkHoveringFolder(item.id!),
)}
>
<div
onDoubleClick={(event) => {
handleDoubleClick(event, item);
}}
className="flex w-full items-center justify-between gap-2"
<SidebarMenuItem key={getRandomKeyByssmm()}>
<div className="relative flex w-full">
<SidebarMenuButton
size="md"
onDragOver={(e) => dragOver(e, item.id!)}
onDragEnter={(e) => dragEnter(e, item.id!)}
onDragLeave={dragLeave}
onDrop={(e) => onDrop(e, item.id!)}
key={item.id}
data-testid={`sidebar-nav-${item.name}`}
isActive={checkPathName(item.id!)}
onClick={() => handleChangeFolder!(item.id!)}
className={cn(
"group/menu-button flex-grow pr-8", // Added padding-right to make room for options
checkHoveringFolder(item.id!),
)}
>
<div className="flex flex-1 items-center gap-2">
{editFolderName?.edit && !isUpdatingFolder ? (
<InputEditFolderName
handleEditFolderName={handleEditFolderName}
item={item}
refInput={refInput}
handleKeyDownFn={handleKeyDownFn}
handleEditNameFolder={handleEditNameFolder}
editFolderName={editFolderName}
foldersNames={foldersNames}
handleKeyDown={handleKeyDown}
/>
) : (
<span className="block w-0 grow truncate text-[13px] opacity-100">
{item.name}
</span>
)}
<div
onDoubleClick={(event) => {
handleDoubleClick(event, item);
}}
className="flex w-full items-center justify-between gap-2"
>
<div className="flex flex-1 items-center gap-2">
{editFolderName?.edit && !isUpdatingFolder ? (
<InputEditFolderName
handleEditFolderName={handleEditFolderName}
item={item}
refInput={refInput}
handleKeyDownFn={handleKeyDownFn}
handleEditNameFolder={handleEditNameFolder}
editFolderName={editFolderName}
foldersNames={foldersNames}
handleKeyDown={handleKeyDown}
/>
) : (
<span className="block w-0 grow truncate text-[13px] opacity-100">
{item.name}
</span>
)}
</div>
</div>
</SidebarMenuButton>
<div
className="absolute right-2 top-[0.45rem] flex items-center hover:text-foreground"
onClick={(e) => e.stopPropagation()} // Prevent click from triggering parent button
>
<SelectOptions
item={item}
index={index}
@ -407,7 +414,7 @@ const SideBarFoldersButtonsComponent = ({
checkPathName={checkPathName}
/>
</div>
</SidebarMenuButton>
</div>
</SidebarMenuItem>
);
})

View file

@ -1,3 +1,5 @@
import { stringToBool } from "@/utils/utils";
const SvgAWS = (props) => (
<svg
xmlns="http://www.w3.org/2000/svg"
@ -14,7 +16,7 @@ const SvgAWS = (props) => (
<style>{".st1{fill-rule:evenodd;clip-rule:evenodd;fill:#f90}"}</style>
<path
d="M86.4 66.4c0 3.7.4 6.7 1.1 8.9.8 2.2 1.8 4.6 3.2 7.2.5.8.7 1.6.7 2.3 0 1-.6 2-1.9 3L83.2 92c-.9.6-1.8.9-2.6.9-1 0-2-.5-3-1.4-1.4-1.5-2.6-3.1-3.6-4.7-1-1.7-2-3.6-3.1-5.9-7.8 9.2-17.6 13.8-29.4 13.8-8.4 0-15.1-2.4-20-7.2-4.9-4.8-7.4-11.2-7.4-19.2 0-8.5 3-15.4 9.1-20.6 6.1-5.2 14.2-7.8 24.5-7.8 3.4 0 6.9.3 10.6.8 3.7.5 7.5 1.3 11.5 2.2v-7.3c0-7.6-1.6-12.9-4.7-16-3.2-3.1-8.6-4.6-16.3-4.6-3.5 0-7.1.4-10.8 1.3-3.7.9-7.3 2-10.8 3.4-1.6.7-2.8 1.1-3.5 1.3-.7.2-1.2.3-1.6.3-1.4 0-2.1-1-2.1-3.1v-4.9c0-1.6.2-2.8.7-3.5.5-.7 1.4-1.4 2.8-2.1 3.5-1.8 7.7-3.3 12.6-4.5C41 1.9 46.2 1.3 51.7 1.3c11.9 0 20.6 2.7 26.2 8.1 5.5 5.4 8.3 13.6 8.3 24.6v32.4zM45.8 81.6c3.3 0 6.7-.6 10.3-1.8 3.6-1.2 6.8-3.4 9.5-6.4 1.6-1.9 2.8-4 3.4-6.4.6-2.4 1-5.3 1-8.7v-4.2c-2.9-.7-6-1.3-9.2-1.7-3.2-.4-6.3-.6-9.4-.6-6.7 0-11.6 1.3-14.9 4-3.3 2.7-4.9 6.5-4.9 11.5 0 4.7 1.2 8.2 3.7 10.6 2.4 2.5 5.9 3.7 10.5 3.7zm80.3 10.8c-1.8 0-3-.3-3.8-1-.8-.6-1.5-2-2.1-3.9L96.7 10.2c-.6-2-.9-3.3-.9-4 0-1.6.8-2.5 2.4-2.5h9.8c1.9 0 3.2.3 3.9 1 .8.6 1.4 2 2 3.9l16.8 66.2 15.6-66.2c.5-2 1.1-3.3 1.9-3.9.8-.6 2.2-1 4-1h8c1.9 0 3.2.3 4 1 .8.6 1.5 2 1.9 3.9l15.8 67 17.3-67c.6-2 1.3-3.3 2-3.9.8-.6 2.1-1 3.9-1h9.3c1.6 0 2.5.8 2.5 2.5 0 .5-.1 1-.2 1.6-.1.6-.3 1.4-.7 2.5l-24.1 77.3c-.6 2-1.3 3.3-2.1 3.9-.8.6-2.1 1-3.8 1h-8.6c-1.9 0-3.2-.3-4-1-.8-.7-1.5-2-1.9-4L156 23l-15.4 64.4c-.5 2-1.1 3.3-1.9 4-.8.7-2.2 1-4 1h-8.6zm128.5 2.7c-5.2 0-10.4-.6-15.4-1.8-5-1.2-8.9-2.5-11.5-4-1.6-.9-2.7-1.9-3.1-2.8-.4-.9-.6-1.9-.6-2.8v-5.1c0-2.1.8-3.1 2.3-3.1.6 0 1.2.1 1.8.3.6.2 1.5.6 2.5 1 3.4 1.5 7.1 2.7 11 3.5 4 .8 7.9 1.2 11.9 1.2 6.3 0 11.2-1.1 14.6-3.3 3.4-2.2 5.2-5.4 5.2-9.5 0-2.8-.9-5.1-2.7-7-1.8-1.9-5.2-3.6-10.1-5.2L246 52c-7.3-2.3-12.7-5.7-16-10.2-3.3-4.4-5-9.3-5-14.5 0-4.2.9-7.9 2.7-11.1 1.8-3.2 4.2-6 7.2-8.2 3-2.3 6.4-4 10.4-5.2 4-1.2 8.2-1.7 12.6-1.7 2.2 0 4.5.1 6.7.4 2.3.3 4.4.7 6.5 1.1 2 .5 3.9 1 5.7 1.6 1.8.6 3.2 1.2 4.2 1.8 1.4.8 2.4 1.6 3 2.5.6.8.9 1.9.9 3.3v4.7c0 2.1-.8 3.2-2.3 3.2-.8 0-2.1-.4-3.8-1.2-5.7-2.6-12.1-3.9-19.2-3.9-5.7 0-10.2.9-13.3 2.8-3.1 1.9-4.7 4.8-4.7 8.9 0 2.8 1 5.2 3 7.1 2 1.9 5.7 3.8 11 5.5l14.2 4.5c7.2 2.3 12.4 5.5 15.5 9.6 3.1 4.1 4.6 8.8 4.6 14 0 4.3-.9 8.2-2.6 11.6-1.8 3.4-4.2 6.4-7.3 8.8-3.1 2.5-6.8 4.3-11.1 5.6-4.5 1.4-9.2 2.1-14.3 2.1z"
fill={props.isdark ? "#ffffff" : "#252f3e"}
fill={stringToBool(props.isdark) ? "#ffffff" : "#252f3e"}
/>
<path
d="M273.5 143.7c-32.9 24.3-80.7 37.2-121.8 37.2-57.6 0-109.5-21.3-148.7-56.7-3.1-2.8-.3-6.6 3.4-4.4 42.4 24.6 94.7 39.5 148.8 39.5 36.5 0 76.6-7.6 113.5-23.2 5.5-2.5 10.2 3.6 4.8 7.6z"

View file

@ -4,7 +4,7 @@ import SvgAWS from "./AWS";
export const AWSIcon = forwardRef<SVGSVGElement, React.PropsWithChildren<{}>>(
(props, ref) => {
const isdark = useDarkStore((state) => state.dark);
const isdark = useDarkStore((state) => state.dark).toString();
return <SvgAWS ref={ref} isdark={isdark} {...props} />;
},
);

View file

@ -1,3 +1,5 @@
import { stringToBool } from "@/utils/utils";
const AstraSVG = (props) => (
<svg
{...props}
@ -9,11 +11,11 @@ const AstraSVG = (props) => (
>
<path
d="M60.2338 0.25H0.000244141V67.75H60.2338L75.365 56.0752V11.9248L60.2338 0.25ZM11.6732 11.9248H63.692V56.0874H11.6732V11.9248Z"
fill={props.isdark ? "#ffffff" : "#0A0A0A"}
fill={stringToBool(props.isdark) ? "#ffffff" : "#0A0A0A"}
/>
<path
d="M162.038 12.415V1H106.964L92.0097 12.415V28.088L106.964 39.503H154.962V55.585H94.9883V67H151.546L166.5 55.585V39.503L151.546 28.088H103.547V12.415H162.038Z"
fill={props.isdark ? "#ffffff" : "#0A0A0A"}
fill={stringToBool(props.isdark) ? "#ffffff" : "#0A0A0A"}
/>
</svg>
);

View file

@ -6,6 +6,6 @@ export const AstraDBIcon = forwardRef<
SVGSVGElement,
React.PropsWithChildren<{}>
>((props, ref) => {
const isdark = useDarkStore((state) => state.dark);
const isdark = useDarkStore((state) => state.dark).toString();
return <AstraSVG ref={ref} isdark={isdark} {...props} />;
});

View file

@ -52,7 +52,7 @@ const CassandraSVG = (props) => (
/>
<path
fill="#373535"
fill-opacity=".35"
fillOpacity=".35"
d="M2.8 76.5C42.9 36.4 74.9 24 104 18.4c3.8-.7 4.6-9.2 4.6-9.2s.5 6.2 3.2 7c2.7.8 6.2-9.7 6.2-9.7s-3.2 9.4 0 10c3.2.5 9.2-9.2 9.2-9.2s-2.4 8.3-.8 8.9c1.6.5 9.7-12.1 9.7-12.1s-4.8 8.3-.3 9.2c4.6.8 11.3-5.7 11.3-5.7s-5.2 5.9-2.9 6.8c10 3.5 18-9.4 18-9.4s-1.9 5.7-6.7 11.9c10.5 2.7 18.3-13.1 18.3-13.1L166 19.6c4 2 20.1-16.6 20.1-16.6s-8.3 14.5-13.2 17.5c2.7 2.2 12.4-6.5 12.4-6.5s-7.8 9.7-4.8 10.2c4.3 3.5 20.2-18 20.2-18s-6.2 12.7-15.3 22.6C193 32.7 212 8.2 212 8.2s-.5 7.8-14.3 20.2c10.2-1.3 23.4-20.7 23.4-20.7s-4.8 14.5-16.4 24.8c10-1 26.1-25.8 26.1-25.8s-6.2 17.2-18.8 27.2c14 3.1 34.2-17.8 34.2-17.8s-7.9 14.8-18.3 20.9c11.6 4.4 27.5-13.9 27.5-13.9s-15.9 24.5-41.2 23.4c-8.3-.4-33.4-25.2-87.2-23.2C55.8 25.9 40.8 56.1 2.8 76.5"
/>
<path
@ -61,7 +61,7 @@ const CassandraSVG = (props) => (
/>
<path
fill="#373535"
fill-opacity=".35"
fillOpacity=".35"
d="M1.8 80.9c21.2 10.6 40.6-1.6 65 5.3 18.6 5.2 41.2 11.7 71.9 7.2 30.7-4.4 56.9-17.8 69.5-41.6 3.9-10.6 19.8 2.4 19.8 2.4s-11.6-4.8-11.3-2.6c.3 2.3 17.4 10.2 17.4 10.2s-15.5-4.8-14.5-1.2c.9 3.6 19.4 18.2 19.4 18.2S217.9 63 216.2 65.2c-1.8 2.2 8.9 10.9 8.9 10.9s-17.6-10.9-23.8-7.7c-4.5 2.3 18.3 17.2 18.3 17.2s-14.8-11.3-18.3-8.3 16.7 27.2 16.7 27.2-23-24.8-25.3-23.6C190.4 82.1 199 94 199 94s-11.2-12.4-14.3-10.3c-3.1 2.2 16.2 34.3 16.2 34.3S180 85.1 171.3 90.6c13.5 29.7 8.5 33.9 8.5 33.9s-1.7-30.3-18.6-29.5c-8.5.4 4 22.6 4 22.6S153.7 97.3 146 97.7c14.1 26.8 9.1 37.6 9.1 37.6s2.3-22.9-16.8-35.6c7.3 6.5-4.6 35.6-4.6 35.6s10.4-42.9-7.7-34.7c-2.9 1.3-.2 21.4-.2 21.4s-3.6-23-9.1-21.8c-3.2.7-20.2 31.9-20.2 31.9s13.9-33.7 9.7-32.3c-3.1 1-8.9 14.9-8.9 14.9s2.8-13.7 0-14.5c-2.8-.8-18.6 14.5-18.6 14.5s11.7-13.7 9.7-16.6c-3.1-4.3-6.6-4.5-10.9-2.8C71.3 97.7 63 109 63 109s8.3-11.5 6.9-15.7c-2.3-6.9-26.2 13.3-26.2 13.3s14.1-13.3 10.9-16.2c-3.2-2.8-20.8-2-26.2-2-16.1.2-21.7-3.6-26.6-7.5"
/>
<path

View file

@ -9,8 +9,8 @@ const SvgCrewAiIcon = (props) => (
>
<rect width="32" height="32" rx="6" fill="black" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
fillRule="evenodd"
clipRule="evenodd"
d="M16.9653 6.03765C13.5255 6.45749 9.90087 9.93043 8.09435 14.5374C5.84081 20.2844 8.24463 25.3107 13.5622 25.9704C13.878 26.0096 15.1952 26.0099 15.4857 25.9709C16.0316 25.8975 16.1811 25.8744 16.4369 25.8239C20.1819 25.0836 23.8347 22.0721 24.5932 19.0997C25.1286 17.0016 24.2448 15.0964 22.6725 14.9591C22.3813 14.9337 22.3898 14.9548 22.5371 14.6224C23.605 12.2127 23.6023 10.4331 22.5287 8.89098C21.5397 7.47036 20.0623 6.44414 18.4872 6.0837C18.0871 5.99218 17.4869 5.97399 16.9653 6.03765ZM18.1808 7.81294C19.5337 8.11597 21.1637 9.51345 21.4969 10.656C21.7926 11.6702 21.5581 12.6883 20.5433 14.796C20.2342 15.438 20.1608 15.6058 19.9766 16.0906C19.6716 16.8934 19.5566 17.027 19.1742 17.0225C18.3746 17.0132 17.3748 16.0635 17.1372 15.0876C16.9391 14.2742 17.2553 13.0324 18.1167 11.2404C18.5022 10.4382 18.5308 10.2006 18.2601 10.0517L18.1822 10.0089L18.0326 10.0608C17.2396 10.3357 15.7131 12.0891 14.5838 14.0223C13.4032 16.0432 13.0645 17.0663 13.0627 18.6172C13.0602 20.7944 13.9868 21.4439 16.4369 20.9827C18.5205 20.5904 20.3253 19.3138 21.6852 17.2704C22.3435 16.2812 23.0153 16.5989 23.0085 17.8963C23.003 18.9503 22.4766 19.9988 21.3725 21.1549C18.6388 24.0173 14.3656 25.0805 11.6093 23.5841C8.73851 22.0256 8.16341 18.1762 10.192 14.0976C12.0204 10.4215 14.5416 8.1588 17.2401 7.77237C17.3884 7.75112 18.028 7.77872 18.1808 7.81294Z"
fill="white"
/>

File diff suppressed because one or more lines are too long

View file

@ -18,9 +18,9 @@ const SvgGoogleGenerativeAI = (props) => (
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(16.1326 5.4553 -43.70045 129.2322 1.588 6.503)"
>
<stop offset=".067" stop-color="#9168C0" />
<stop offset=".343" stop-color="#5684D1" />
<stop offset=".672" stop-color="#1BA1E3" />
<stop offset=".067" stopColor="#9168C0" />
<stop offset=".343" stopColor="#5684D1" />
<stop offset=".672" stopColor="#1BA1E3" />
</radialGradient>
</defs>
</svg>

View file

@ -1,3 +1,5 @@
import { stringToBool } from "@/utils/utils";
const HCDSVG = (props) => (
<svg
width="96"
@ -11,11 +13,11 @@ const HCDSVG = (props) => (
{/* <rect width="96" height="96" rx="6" fill="white"/> */}
<path
d="M38.0469 33H12V62.1892H38.0469L44.5902 57.1406V38.0485L38.0469 33ZM17.0478 38.0485H39.5424V57.1459H17.0478V38.0485Z"
fill={props.isdark ? "#ffffff" : "#0A0A0A"}
fill={stringToBool(props.isdark) ? "#ffffff" : "#0A0A0A"}
/>
<path
d="M82.0705 38.2605V33.3243H58.2546L51.788 38.2605V45.038L58.2546 49.9742H79.0107V56.9286H53.076V61.8648H77.5334L84 56.9286V49.9742L77.5334 45.038H56.7772V38.2605H82.0705Z"
fill={props.isdark ? "#ffffff" : "#0A0A0A"}
fill={stringToBool(props.isdark) ? "#ffffff" : "#0A0A0A"}
/>
</g>
<defs>

View file

@ -4,7 +4,7 @@ import HCDSVG from "./HCD";
export const HCDIcon = forwardRef<SVGSVGElement, React.PropsWithChildren<{}>>(
(props, ref) => {
const isdark = useDarkStore((state) => state.dark);
const isdark = useDarkStore((state) => state.dark).toString();
return <HCDSVG ref={ref} isdark={isdark} {...props} />;
},

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,5 @@
import { stringToBool } from "@/utils/utils";
export default function SvgMem0(props) {
return (
<svg
@ -10,7 +12,7 @@ export default function SvgMem0(props) {
>
<g
transform="translate(0.000000,127.000000) scale(0.100000,-0.100000)"
fill={props.isdark ? "#ffffff" : "#000000"}
fill={stringToBool(props.isdark) ? "#ffffff" : "#000000"}
stroke="none"
>
<path d="M648 1248 c-26 -22 -29 -47 -8 -68 25 -25 42 -25 63 -2 22 24 21 45 -1 65 -22 20 -33 21 -54 5z" />

View file

@ -4,7 +4,7 @@ import SvgMem from "./SvgMem";
export const Mem0 = forwardRef<SVGSVGElement, React.PropsWithChildren<{}>>(
(props, ref) => {
const isdark = useDarkStore((state) => state.dark);
const isdark = useDarkStore((state) => state.dark).toString();
return <SvgMem className="icon" ref={ref} {...props} isdark={isdark} />;
},
);

View file

@ -6,6 +6,6 @@ export const NvidiaIcon = forwardRef<
SVGSVGElement,
React.PropsWithChildren<{}>
>((props, ref) => {
const isdark = useDarkStore((state) => state.dark);
const isdark = useDarkStore((state) => state.dark).toString();
return <NvidiaSVG ref={ref} isdark={isdark} {...props} />;
});

View file

@ -1,3 +1,5 @@
import { stringToBool } from "@/utils/utils";
const NvidiaSVG = (props) => (
<svg
version="1.1"
@ -8,7 +10,7 @@ const NvidiaSVG = (props) => (
width="351.46px"
height="258.785px"
viewBox="35.188 31.512 351.46 258.785"
enable-background="new 35.188 31.512 351.46 258.785"
enableBackground="new 35.188 31.512 351.46 258.785"
{...props}
>
<title id="title4">
@ -16,7 +18,7 @@ const NvidiaSVG = (props) => (
</title>
<path
id="path17"
fill={props.isdark ? "#fff" : "#000"}
fill={stringToBool(props.isdark) ? "#fff" : "#000"}
d="M384.195,282.109c0,3.771-2.769,6.302-6.047,6.302v-0.023c-3.371,0.023-6.089-2.508-6.089-6.278
c0-3.769,2.718-6.293,6.089-6.293C381.427,275.816,384.195,278.34,384.195,282.109z M386.648,282.109c0-5.175-4.02-8.179-8.5-8.179
c-4.511,0-8.531,3.004-8.531,8.179c0,5.172,4.021,8.188,8.531,8.188C382.629,290.297,386.648,287.281,386.648,282.109
@ -25,7 +27,7 @@ const NvidiaSVG = (props) => (
/>
<path
id="path19"
fill={props.isdark ? "#fff" : "#000"}
fill={stringToBool(props.isdark) ? "#fff" : "#000"}
d="M329.406,237.027l10.598,28.993H318.48L329.406,237.027z M318.056,225.738l-24.423,61.88h17.246l3.863-10.934
h28.903l3.656,10.934h18.722l-24.605-61.888L318.056,225.738z M269.023,287.641h17.497v-61.922l-17.5-0.004L269.023,287.641z
M147.556,225.715l-14.598,49.078l-13.984-49.074l-18.879-0.004l19.972,61.926h25.207l20.133-61.926H147.556z M218.281,239.199h7.52

View file

@ -24,55 +24,55 @@ export const SvgPython = (props) => (
gradientTransform="matrix(600.39 0 0 601.69 .29686 -.08793)"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#387db8" offset="0" />
<stop stop-color="#387db8" offset=".125" />
<stop stop-color="#387db7" offset=".14062" />
<stop stop-color="#387db6" offset=".15625" />
<stop stop-color="#377cb5" offset=".17188" />
<stop stop-color="#377cb4" offset=".1875" />
<stop stop-color="#377bb4" offset=".20312" />
<stop stop-color="#377bb3" offset=".21875" />
<stop stop-color="#377ab2" offset=".23438" />
<stop stop-color="#377ab1" offset=".25" />
<stop stop-color="#3779b0" offset=".26562" />
<stop stop-color="#3779af" offset=".28125" />
<stop stop-color="#3778ae" offset=".29688" />
<stop stop-color="#3778ad" offset=".3125" />
<stop stop-color="#3777ad" offset=".32812" />
<stop stop-color="#3777ac" offset=".34375" />
<stop stop-color="#3776ab" offset=".35938" />
<stop stop-color="#3776aa" offset=".375" />
<stop stop-color="#3775a9" offset=".39062" />
<stop stop-color="#3775a8" offset=".40625" />
<stop stop-color="#3774a7" offset=".42188" />
<stop stop-color="#3774a7" offset=".4375" />
<stop stop-color="#3773a6" offset=".45312" />
<stop stop-color="#3773a5" offset=".46875" />
<stop stop-color="#3672a4" offset=".48438" />
<stop stop-color="#3672a3" offset=".49434" />
<stop stop-color="#3671a3" offset=".5" />
<stop stop-color="#3671a2" offset=".50566" />
<stop stop-color="#3671a2" offset=".51562" />
<stop stop-color="#3671a1" offset=".53125" />
<stop stop-color="#3670a0" offset=".54688" />
<stop stop-color="#3670a0" offset=".5625" />
<stop stop-color="#366f9f" offset=".57812" />
<stop stop-color="#366f9e" offset=".59375" />
<stop stop-color="#366e9d" offset=".60938" />
<stop stop-color="#366e9c" offset=".625" />
<stop stop-color="#366d9b" offset=".64062" />
<stop stop-color="#366d9a" offset=".65625" />
<stop stop-color="#366c9a" offset=".67188" />
<stop stop-color="#366c99" offset=".6875" />
<stop stop-color="#366b98" offset=".70312" />
<stop stop-color="#366b97" offset=".71875" />
<stop stop-color="#366a96" offset=".73438" />
<stop stop-color="#366a95" offset=".75" />
<stop stop-color="#366994" offset=".76562" />
<stop stop-color="#366994" offset=".78125" />
<stop stop-color="#366993" offset=".8125" />
<stop stop-color="#366993" offset=".875" />
<stop stop-color="#366993" offset="1" />
<stop stopColor="#387db8" offset="0" />
<stop stopColor="#387db8" offset=".125" />
<stop stopColor="#387db7" offset=".14062" />
<stop stopColor="#387db6" offset=".15625" />
<stop stopColor="#377cb5" offset=".17188" />
<stop stopColor="#377cb4" offset=".1875" />
<stop stopColor="#377bb4" offset=".20312" />
<stop stopColor="#377bb3" offset=".21875" />
<stop stopColor="#377ab2" offset=".23438" />
<stop stopColor="#377ab1" offset=".25" />
<stop stopColor="#3779b0" offset=".26562" />
<stop stopColor="#3779af" offset=".28125" />
<stop stopColor="#3778ae" offset=".29688" />
<stop stopColor="#3778ad" offset=".3125" />
<stop stopColor="#3777ad" offset=".32812" />
<stop stopColor="#3777ac" offset=".34375" />
<stop stopColor="#3776ab" offset=".35938" />
<stop stopColor="#3776aa" offset=".375" />
<stop stopColor="#3775a9" offset=".39062" />
<stop stopColor="#3775a8" offset=".40625" />
<stop stopColor="#3774a7" offset=".42188" />
<stop stopColor="#3774a7" offset=".4375" />
<stop stopColor="#3773a6" offset=".45312" />
<stop stopColor="#3773a5" offset=".46875" />
<stop stopColor="#3672a4" offset=".48438" />
<stop stopColor="#3672a3" offset=".49434" />
<stop stopColor="#3671a3" offset=".5" />
<stop stopColor="#3671a2" offset=".50566" />
<stop stopColor="#3671a2" offset=".51562" />
<stop stopColor="#3671a1" offset=".53125" />
<stop stopColor="#3670a0" offset=".54688" />
<stop stopColor="#3670a0" offset=".5625" />
<stop stopColor="#366f9f" offset=".57812" />
<stop stopColor="#366f9e" offset=".59375" />
<stop stopColor="#366e9d" offset=".60938" />
<stop stopColor="#366e9c" offset=".625" />
<stop stopColor="#366d9b" offset=".64062" />
<stop stopColor="#366d9a" offset=".65625" />
<stop stopColor="#366c9a" offset=".67188" />
<stop stopColor="#366c99" offset=".6875" />
<stop stopColor="#366b98" offset=".70312" />
<stop stopColor="#366b97" offset=".71875" />
<stop stopColor="#366a96" offset=".73438" />
<stop stopColor="#366a95" offset=".75" />
<stop stopColor="#366994" offset=".76562" />
<stop stopColor="#366994" offset=".78125" />
<stop stopColor="#366993" offset=".8125" />
<stop stopColor="#366993" offset=".875" />
<stop stopColor="#366993" offset="1" />
</linearGradient>
<clipPath id="c">
<path d="m209 203h601v602.5h-601z" />
@ -89,67 +89,67 @@ export const SvgPython = (props) => (
gradientTransform="matrix(600.4 0 0 601.7 209.54 203.58)"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#ffdf52" offset="0" />
<stop stop-color="#ffdf52" offset=".125" />
<stop stop-color="#ffdf52" offset=".1875" />
<stop stop-color="#ffdf51" offset=".21875" />
<stop stop-color="#ffdf51" offset=".23438" />
<stop stop-color="#ffde50" offset=".25" />
<stop stop-color="#ffde4f" offset=".26562" />
<stop stop-color="#ffdd4f" offset=".28125" />
<stop stop-color="#ffdc4e" offset=".29688" />
<stop stop-color="#ffdc4d" offset=".3125" />
<stop stop-color="#ffdb4c" offset=".32812" />
<stop stop-color="#ffda4c" offset=".34375" />
<stop stop-color="#ffda4b" offset=".35938" />
<stop stop-color="#ffd94a" offset=".375" />
<stop stop-color="#ffd849" offset=".39062" />
<stop stop-color="#ffd849" offset=".40625" />
<stop stop-color="#ffd748" offset=".42188" />
<stop stop-color="#ffd647" offset=".4375" />
<stop stop-color="#ffd646" offset=".45312" />
<stop stop-color="#ffd546" offset=".46875" />
<stop stop-color="#ffd445" offset=".48284" />
<stop stop-color="#ffd445" offset=".48438" />
<stop stop-color="#ffd444" offset=".5" />
<stop stop-color="#ffd343" offset=".51562" />
<stop stop-color="#ffd243" offset=".51716" />
<stop stop-color="#ffd242" offset=".53125" />
<stop stop-color="#ffd242" offset=".54688" />
<stop stop-color="#ffd141" offset=".5625" />
<stop stop-color="#ffd040" offset=".57812" />
<stop stop-color="#ffd040" offset=".59375" />
<stop stop-color="#ffcf3f" offset=".60938" />
<stop stop-color="#ffce3e" offset=".625" />
<stop stop-color="#ffce3d" offset=".64062" />
<stop stop-color="#ffcd3d" offset=".65625" />
<stop stop-color="#ffcc3c" offset=".67188" />
<stop stop-color="#ffcc3b" offset=".6875" />
<stop stop-color="#ffcb3a" offset=".70312" />
<stop stop-color="#ffca3a" offset=".71875" />
<stop stop-color="#ffca39" offset=".73438" />
<stop stop-color="#ffc938" offset=".75" />
<stop stop-color="#ffc837" offset=".76562" />
<stop stop-color="#ffc836" offset=".78125" />
<stop stop-color="#ffc736" offset=".79688" />
<stop stop-color="#ffc735" offset=".8125" />
<stop stop-color="#ffc634" offset=".82812" />
<stop stop-color="#ffc533" offset=".84375" />
<stop stop-color="#ffc533" offset=".85938" />
<stop stop-color="#ffc432" offset=".875" />
<stop stop-color="#ffc331" offset=".89062" />
<stop stop-color="#ffc331" offset=".90625" />
<stop stop-color="#ffc330" offset=".9375" />
<stop stop-color="#ffc330" offset="1" />
<stop stopColor="#ffdf52" offset="0" />
<stop stopColor="#ffdf52" offset=".125" />
<stop stopColor="#ffdf52" offset=".1875" />
<stop stopColor="#ffdf51" offset=".21875" />
<stop stopColor="#ffdf51" offset=".23438" />
<stop stopColor="#ffde50" offset=".25" />
<stop stopColor="#ffde4f" offset=".26562" />
<stop stopColor="#ffdd4f" offset=".28125" />
<stop stopColor="#ffdc4e" offset=".29688" />
<stop stopColor="#ffdc4d" offset=".3125" />
<stop stopColor="#ffdb4c" offset=".32812" />
<stop stopColor="#ffda4c" offset=".34375" />
<stop stopColor="#ffda4b" offset=".35938" />
<stop stopColor="#ffd94a" offset=".375" />
<stop stopColor="#ffd849" offset=".39062" />
<stop stopColor="#ffd849" offset=".40625" />
<stop stopColor="#ffd748" offset=".42188" />
<stop stopColor="#ffd647" offset=".4375" />
<stop stopColor="#ffd646" offset=".45312" />
<stop stopColor="#ffd546" offset=".46875" />
<stop stopColor="#ffd445" offset=".48284" />
<stop stopColor="#ffd445" offset=".48438" />
<stop stopColor="#ffd444" offset=".5" />
<stop stopColor="#ffd343" offset=".51562" />
<stop stopColor="#ffd243" offset=".51716" />
<stop stopColor="#ffd242" offset=".53125" />
<stop stopColor="#ffd242" offset=".54688" />
<stop stopColor="#ffd141" offset=".5625" />
<stop stopColor="#ffd040" offset=".57812" />
<stop stopColor="#ffd040" offset=".59375" />
<stop stopColor="#ffcf3f" offset=".60938" />
<stop stopColor="#ffce3e" offset=".625" />
<stop stopColor="#ffce3d" offset=".64062" />
<stop stopColor="#ffcd3d" offset=".65625" />
<stop stopColor="#ffcc3c" offset=".67188" />
<stop stopColor="#ffcc3b" offset=".6875" />
<stop stopColor="#ffcb3a" offset=".70312" />
<stop stopColor="#ffca3a" offset=".71875" />
<stop stopColor="#ffca39" offset=".73438" />
<stop stopColor="#ffc938" offset=".75" />
<stop stopColor="#ffc837" offset=".76562" />
<stop stopColor="#ffc836" offset=".78125" />
<stop stopColor="#ffc736" offset=".79688" />
<stop stopColor="#ffc735" offset=".8125" />
<stop stopColor="#ffc634" offset=".82812" />
<stop stopColor="#ffc533" offset=".84375" />
<stop stopColor="#ffc533" offset=".85938" />
<stop stopColor="#ffc432" offset=".875" />
<stop stopColor="#ffc331" offset=".89062" />
<stop stopColor="#ffc331" offset=".90625" />
<stop stopColor="#ffc330" offset=".9375" />
<stop stopColor="#ffc330" offset="1" />
</linearGradient>
</defs>
<g clip-path="url(#e)">
<g clip-path="url(#a)">
<g clipPath="url(#e)">
<g clipPath="url(#a)">
<path d="m0.29688 0v608.93h616.7v-608.93z" fill="url(#f)" />
</g>
</g>
<g clip-path="url(#c)">
<g clip-path="url(#b)">
<g clipPath="url(#c)">
<g clipPath="url(#b)">
<path d="m193.24 196.26v609.02h616.7v-609.02z" fill="url(#d)" />
</g>
</g>

File diff suppressed because it is too large Load diff

View file

@ -8,10 +8,10 @@ const SvgZepMemory = (props) => (
>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#000000"
stroke-opacity="0.00"
stroke-width="0.3"
strokeOpacity="0.00"
strokeWidth="0.3"
>
<path
d="
@ -50,10 +50,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#4C1FCA"
stroke-opacity="0.98"
stroke-width="0.3"
strokeOpacity="0.98"
strokeWidth="0.3"
>
<path
d="
@ -68,10 +68,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#531FCB"
stroke-opacity="0.99"
stroke-width="0.3"
strokeOpacity="0.99"
strokeWidth="0.3"
>
<path
d="
@ -85,10 +85,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#731FCB"
stroke-opacity="1.00"
stroke-width="0.3"
strokeOpacity="1.00"
strokeWidth="0.3"
>
<path
d="
@ -117,10 +117,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#000000"
stroke-opacity="0.00"
stroke-width="0.3"
strokeOpacity="0.00"
strokeWidth="0.3"
>
<path
d="
@ -133,10 +133,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#000000"
stroke-opacity="0.00"
stroke-width="0.3"
strokeOpacity="0.00"
strokeWidth="0.3"
>
<path
d="
@ -149,10 +149,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#7920CB"
stroke-opacity="0.38"
stroke-width="0.3"
strokeOpacity="0.38"
strokeWidth="0.3"
>
<path
d="
@ -165,10 +165,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#7A1FCC"
stroke-opacity="0.75"
stroke-width="0.3"
strokeOpacity="0.75"
strokeWidth="0.3"
>
<path
d="
@ -180,10 +180,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#811FCB"
stroke-opacity="0.99"
stroke-width="0.3"
strokeOpacity="0.99"
strokeWidth="0.3"
>
<path
d="
@ -193,10 +193,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#811FCB"
stroke-opacity="0.99"
stroke-width="0.3"
strokeOpacity="0.99"
strokeWidth="0.3"
>
<path
d="
@ -206,10 +206,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#7E1FCB"
stroke-opacity="0.50"
stroke-width="0.3"
strokeOpacity="0.50"
strokeWidth="0.3"
>
<path
d="
@ -221,10 +221,10 @@ const SvgZepMemory = (props) => (
</g>
<g
fill="None"
fill-opacity="0.0"
fillOpacity="0.0"
stroke="#931FCC"
stroke-opacity="1.00"
stroke-width="0.3"
strokeOpacity="1.00"
strokeWidth="0.3"
>
<path
d="
@ -240,7 +240,7 @@ const SvgZepMemory = (props) => (
C 222.64 734.17 209.23 729.73 204.00 731.00 C 198.77 732.27 189.32 730.46 183.00 731.00 C 176.68 731.54 167.74 730.75 161.00 731.00 C 154.26 731.25 146.91 730.91 140.00 731.00 C 133.09 731.09 126.02 731.01 119.00 731.00 C 111.98 730.99 104.03 731.11 97.00 731.00 C 89.97 730.89 82.92 731.29 76.00 731.00 C 69.08 730.71 60.67 731.64 54.00 731.00 C 47.33 730.36 39.01 732.48 33.00 731.00 C 26.99 729.52 16.70 734.32 12.00 731.00 Z"
/>
</g>
<g fill="#000000" fill-opacity="0.00" stroke="None">
<g fill="#000000" fillOpacity="0.00" stroke="None">
<path
d="
M 0.00 556.00
@ -276,7 +276,7 @@ const SvgZepMemory = (props) => (
C 201.85 104.71 209.60 99.25 213.92 82.92 C 218.24 66.60 236.53 67.76 252.00 66.00 C 267.47 64.24 284.14 61.79 300.00 60.00 C 315.86 58.21 332.59 55.29 348.67 53.67 C 364.75 52.05 380.11 48.99 396.22 47.22 C 412.34 45.46 428.96 43.17 445.01 41.01 C 461.05 38.85 476.95 37.33 493.00 35.00 C 509.06 32.68 525.88 31.19 542.00 29.00 C 558.12 26.81 573.69 24.58 590.00 23.00 C 606.31 21.42 622.28 17.15 639.00 17.00 Z"
/>
</g>
<g fill="#4C1FCA" fill-opacity="0.98" stroke="None">
<g fill="#4C1FCA" fillOpacity="0.98" stroke="None">
<path
d="
M 639.00 17.00
@ -288,7 +288,7 @@ const SvgZepMemory = (props) => (
C 546.31 156.65 566.76 129.86 584.70 101.70 C 602.64 73.54 623.69 46.12 639.00 17.00 Z"
/>
</g>
<g fill="#531FCB" fill-opacity="0.99" stroke="None">
<g fill="#531FCB" fillOpacity="0.99" stroke="None">
<path
d="
M 52.00 315.00
@ -299,7 +299,7 @@ const SvgZepMemory = (props) => (
C 46.74 163.03 52.00 238.88 52.00 315.00 Z"
/>
</g>
<g fill="#731FCB" fill-opacity="1.00" stroke="None">
<g fill="#731FCB" fillOpacity="1.00" stroke="None">
<path
d="
M 121.00 309.00
@ -325,7 +325,7 @@ const SvgZepMemory = (props) => (
C 122.92 360.28 121.00 334.70 121.00 309.00 Z"
/>
</g>
<g fill="#000000" fill-opacity="0.00" stroke="None">
<g fill="#000000" fillOpacity="0.00" stroke="None">
<path
d="
M 225.00 730.00
@ -335,7 +335,7 @@ const SvgZepMemory = (props) => (
C 397.59 583.36 427.16 648.04 395.23 691.23 C 363.30 734.42 296.70 729.01 272.08 680.92 C 247.45 632.84 288.14 570.13 345.00 577.00 Z"
/>
</g>
<g fill="#000000" fill-opacity="0.00" stroke="None">
<g fill="#000000" fillOpacity="0.00" stroke="None">
<path
d="
M 625.00 730.00
@ -345,7 +345,7 @@ const SvgZepMemory = (props) => (
C 798.20 583.43 826.54 649.80 794.23 692.23 C 761.92 734.66 695.72 728.95 671.23 680.77 C 646.73 632.59 688.83 570.21 745.00 577.00 Z"
/>
</g>
<g fill="#7920CB" fill-opacity="0.38" stroke="None">
<g fill="#7920CB" fillOpacity="0.38" stroke="None">
<path
d="
M 0.00 569.00
@ -355,7 +355,7 @@ const SvgZepMemory = (props) => (
L 0.00 569.00 Z"
/>
</g>
<g fill="#7A1FCC" fill-opacity="0.75" stroke="None">
<g fill="#7A1FCC" fillOpacity="0.75" stroke="None">
<path
d="
M 0.00 590.00
@ -364,21 +364,21 @@ const SvgZepMemory = (props) => (
L 0.00 590.00 Z"
/>
</g>
<g fill="#811FCB" fill-opacity="0.99" stroke="None">
<g fill="#811FCB" fillOpacity="0.99" stroke="None">
<path
d="
M 345.00 577.00
C 288.14 570.13 247.45 632.84 272.08 680.92 C 296.70 729.01 363.30 734.42 395.23 691.23 C 427.16 648.04 397.59 583.36 345.00 577.00 Z"
/>
</g>
<g fill="#811FCB" fill-opacity="0.99" stroke="None">
<g fill="#811FCB" fillOpacity="0.99" stroke="None">
<path
d="
M 745.00 577.00
C 688.83 570.21 646.73 632.59 671.23 680.77 C 695.72 728.95 761.92 734.66 794.23 692.23 C 826.54 649.80 798.20 583.43 745.00 577.00 Z"
/>
</g>
<g fill="#7E1FCB" fill-opacity="0.50" stroke="None">
<g fill="#7E1FCB" fillOpacity="0.50" stroke="None">
<path
d="
M 0.00 628.00
@ -387,7 +387,7 @@ const SvgZepMemory = (props) => (
L 0.00 628.00 Z"
/>
</g>
<g fill="#931FCC" fill-opacity="1.00" stroke="None">
<g fill="#931FCC" fillOpacity="1.00" stroke="None">
<path
d="
M 12.00 731.00

View file

@ -683,3 +683,5 @@ export const isStringArray = (value: unknown): value is string[] => {
Array.isArray(value) && value.every((item) => typeof item === "string")
);
};
export const stringToBool = (str) => (str === "false" ? false : true);