diff --git a/package-lock.json b/package-lock.json
index bfe96351a..d0179d0d3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,7 +13,6 @@
"@cornerstonejs/streaming-image-volume-loader": "^1.61.1",
"@cornerstonejs/tools": "^1.61.1",
"@fnndsc/chrisapi": "^1.15.0",
- "@heroicons/react": "^2.1.1",
"@niivue/niivue": "^0.39.0",
"@patternfly/react-catalog-view-extension": "^5.0.0",
"@patternfly/react-charts": "^7.1.2",
@@ -1325,14 +1324,6 @@
"webpack-merge": "^4.2.2"
}
},
- "node_modules/@heroicons/react": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.1.1.tgz",
- "integrity": "sha512-JyyN9Lo66kirbCMuMMRPtJxtKJoIsXKS569ebHGGRKbl8s4CtUfLnyKJxteA+vIKySocO4s1SkTkGS4xtG/yEA==",
- "peerDependencies": {
- "react": ">= 16"
- }
- },
"node_modules/@icr/polyseg-wasm": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@icr/polyseg-wasm/-/polyseg-wasm-0.4.0.tgz",
diff --git a/package.json b/package.json
index ce344a7fa..db458ab32 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,6 @@
"@cornerstonejs/streaming-image-volume-loader": "^1.61.1",
"@cornerstonejs/tools": "^1.61.1",
"@fnndsc/chrisapi": "^1.15.0",
- "@heroicons/react": "^2.1.1",
"@niivue/niivue": "^0.39.0",
"@patternfly/react-catalog-view-extension": "^5.0.0",
"@patternfly/react-charts": "^7.1.2",
diff --git a/src/components/AddNode/SimpleDropdown.tsx b/src/components/AddNode/SimpleDropdown.tsx
index 2c65e1d70..e0a730c4e 100644
--- a/src/components/AddNode/SimpleDropdown.tsx
+++ b/src/components/AddNode/SimpleDropdown.tsx
@@ -6,7 +6,7 @@ import {
DropdownList,
TextInput,
} from "@patternfly/react-core";
-import CloseIcon from "@patternfly/react-icons/dist/esm/icons/close-icon";
+import { CloseIcon } from "../Icons";
import { SimpleDropdownProps, SimpleDropdownState } from "./types";
import { unPackForKeyValue } from "./utils";
import { PluginParameter } from "@fnndsc/chrisapi";
diff --git a/src/components/AddTsNode/ConfigureJoin.tsx b/src/components/AddTsNode/ConfigureJoin.tsx
index e244fd77a..22831e6ce 100644
--- a/src/components/AddTsNode/ConfigureJoin.tsx
+++ b/src/components/AddTsNode/ConfigureJoin.tsx
@@ -5,7 +5,7 @@ import type { Plugin, PluginParameter } from "@fnndsc/chrisapi";
import { deleteTsNode } from "../../store/tsplugins/actions";
import { useSafeDispatch } from "../../api/common";
import { useTypedSelector } from "../../store/hooks";
-import CloseIcon from "@patternfly/react-icons/dist/esm/icons/close-icon";
+import { CloseIcon } from "../Icons";
import { InputType } from "./ParentContainer";
type ConfigureJoinProps = {
diff --git a/src/components/Common/index.tsx b/src/components/Common/index.tsx
index 2068ecf81..adc755fca 100644
--- a/src/components/Common/index.tsx
+++ b/src/components/Common/index.tsx
@@ -1,4 +1,4 @@
-import { InformationCircleIcon } from "@heroicons/react/24/outline";
+import { InfoIcon as InfoIconComponent } from "../Icons";
import {
ClipboardCopyButton,
Dropdown,
@@ -15,8 +15,7 @@ import {
MenuToggle,
TextInput,
} from "@patternfly/react-core";
-import CubesIcon from "@patternfly/react-icons/dist/esm/icons/cubes-icon";
-import SearchIcon from "@patternfly/react-icons/dist/esm/icons/search-icon";
+import { CubesIcon, SearchIcon } from "../Icons";
import { Alert, Popover, Spin, Typography } from "antd";
import React, { ReactNode, useState } from "react";
import Dots from "react-activity/dist/Dots";
@@ -153,18 +152,14 @@ export const InfoIcon = ({
);
return (
-
- {title}
-
-
+
);
};
diff --git a/src/components/CreateFeed/ChooseConfig.tsx b/src/components/CreateFeed/ChooseConfig.tsx
index 831a96945..0f5029b59 100644
--- a/src/components/CreateFeed/ChooseConfig.tsx
+++ b/src/components/CreateFeed/ChooseConfig.tsx
@@ -18,9 +18,7 @@ import {
Tooltip,
useWizardContext,
} from "@patternfly/react-core";
-import SettingsIcon from "@patternfly/react-icons/dist/esm/icons/cogs-icon";
-import TrashIcon from "@patternfly/react-icons/dist/esm/icons/trash-icon";
-import UploadIcon from "@patternfly/react-icons/dist/esm/icons/upload-icon";
+import { SettingsIcon, DeleteIcon as TrashIcon, UploadIcon } from "../Icons";
import { Alert, Steps, notification } from "antd";
import React, { useCallback, useContext, useEffect, useState } from "react";
import { useTypedSelector } from "../../store/hooks";
diff --git a/src/components/CreateFeed/DataPacks.tsx b/src/components/CreateFeed/DataPacks.tsx
index e22d84f04..df99f0299 100644
--- a/src/components/CreateFeed/DataPacks.tsx
+++ b/src/components/CreateFeed/DataPacks.tsx
@@ -10,8 +10,7 @@ import {
TextInput,
useWizardContext,
} from "@patternfly/react-core";
-import SearchIcon from "@patternfly/react-icons/dist/esm/icons/search-icon";
-
+import { SearchIcon } from "../Icons";
import { Types as AddNodeTypes } from "../AddNode/types";
import { Types } from "./types/feed";
import { notification } from "antd";
diff --git a/src/components/CreateFeed/HelperComponent.tsx b/src/components/CreateFeed/HelperComponent.tsx
index fd42c372c..bc6354d02 100644
--- a/src/components/CreateFeed/HelperComponent.tsx
+++ b/src/components/CreateFeed/HelperComponent.tsx
@@ -6,10 +6,7 @@ import {
FlexItem,
} from "@patternfly/react-core";
import { notification } from "antd";
-import TrashIcon from "@patternfly/react-icons/dist/esm/icons/trash-icon";
-import FileIcon from "@patternfly/react-icons/dist/esm/icons/file-icon";
-import FolderIcon from "@patternfly/react-icons/dist/esm/icons/folder-icon";
-
+import { DeleteIcon as TrashIcon, FileIcon, FolderIcon } from "../Icons";
import { CreateFeedContext } from "./context";
import { Types } from "./types/feed";
diff --git a/src/components/DisplayPage/index.tsx b/src/components/DisplayPage/index.tsx
index c04b5807b..2dfb6cf4d 100644
--- a/src/components/DisplayPage/index.tsx
+++ b/src/components/DisplayPage/index.tsx
@@ -18,7 +18,7 @@ import {
import { Link } from "react-router-dom";
import { format } from "date-fns";
import { EmptyStateComponent, SpinContainer } from "../Common";
-import SearchIcon from "@patternfly/react-icons/dist/esm/icons/search-icon";
+import { SearchIcon } from "../Icons";
import "./display-page.css";
export const ComputeQueryTypes = {
diff --git a/src/components/DragFileUpload/index.tsx b/src/components/DragFileUpload/index.tsx
index 67d5242fa..f326e6391 100644
--- a/src/components/DragFileUpload/index.tsx
+++ b/src/components/DragFileUpload/index.tsx
@@ -1,7 +1,7 @@
import { Tooltip } from "@patternfly/react-core";
import { useCallback, useContext, useEffect } from "react";
import { useDropzone } from "react-dropzone";
-import IconUpload from "@patternfly/react-icons/dist/esm/icons/upload-icon";
+import { UploadIcon as IconUpload } from "../Icons";
import { CreateFeedContext } from "../CreateFeed/context";
import { Types } from "../CreateFeed/types/feed";
import "./DragFileUpload.css";
diff --git a/src/components/FeedTree/FeedTree.tsx b/src/components/FeedTree/FeedTree.tsx
index 267a01d22..a37572276 100644
--- a/src/components/FeedTree/FeedTree.tsx
+++ b/src/components/FeedTree/FeedTree.tsx
@@ -1,7 +1,6 @@
import { PluginInstance } from "@fnndsc/chrisapi";
import { Alert, Switch, TextInput } from "@patternfly/react-core";
-import RotateLeft from "@patternfly/react-icons/dist/esm/icons/angle-double-left-icon";
-import RotateRight from "@patternfly/react-icons/dist/esm/icons/angle-double-right-icon";
+import { RotateLeft, RotateRight } from "../Icons";
import { HierarchyPointLink, hierarchy, tree } from "d3-hierarchy";
import { event, select } from "d3-selection";
import { zoom as d3Zoom, zoomIdentity } from "d3-zoom";
diff --git a/src/components/Feeds/DrawerUtils.tsx b/src/components/Feeds/DrawerUtils.tsx
index 168f09524..8c6f48cb8 100644
--- a/src/components/Feeds/DrawerUtils.tsx
+++ b/src/components/Feeds/DrawerUtils.tsx
@@ -6,11 +6,7 @@ import {
DrawerHead,
DrawerActions,
} from "@patternfly/react-core";
-
-import {
- ArrowsPointingInIcon,
- ArrowsPointingOutIcon,
-} from "@heroicons/react/24/outline";
+import { CompressArrowsAltIcon, ExpandArrowsAltIcon } from "../Icons";
interface ButtonProps {
variant?: any;
@@ -85,7 +81,7 @@ export const DrawerActionButton = ({
zIndex: "999",
}}
variant="link"
- icon={}
+ icon={}
onClick={handleMinimize}
/>
) : (
@@ -93,7 +89,7 @@ export const DrawerActionButton = ({
style={{ paddingLeft: "0.5em", paddingRight: "0.5em" }}
onClick={handleMaximize}
variant="link"
- icon={}
+ icon={}
/>
)}
diff --git a/src/components/Feeds/FeedListView.tsx b/src/components/Feeds/FeedListView.tsx
index 3c5ea1444..03f0efbe6 100644
--- a/src/components/Feeds/FeedListView.tsx
+++ b/src/components/Feeds/FeedListView.tsx
@@ -16,7 +16,7 @@ import {
ToggleGroupItemProps,
Tooltip,
} from "@patternfly/react-core";
-import SearchIcon from "@patternfly/react-icons/dist/esm/icons/search-icon";
+import { SearchIcon } from "../Icons";
import { Table, Tbody, Td, Th, Thead, Tr } from "@patternfly/react-table";
import { useQuery } from "@tanstack/react-query";
import { Typography } from "antd";
diff --git a/src/components/Icons/index.tsx b/src/components/Icons/index.tsx
index 2d5e0ca0f..0149bb0b9 100644
--- a/src/components/Icons/index.tsx
+++ b/src/components/Icons/index.tsx
@@ -15,6 +15,19 @@ import {
DatabaseIcon,
QuestionCircleIcon,
ThLargeIcon,
+ CompressArrowsAltIcon,
+ ExpandArrowsAltIcon,
+ CloseIcon,
+ CubesIcon,
+ UploadIcon,
+ CogsIcon,
+ AngleDoubleLeftIcon,
+ AngleDoubleRightIcon,
+ HomeIcon,
+ ExternalLinkSquareAltIcon,
+ ExclamationCircleIcon,
+ EllipsisVIcon,
+ EditIcon,
} from "@patternfly/react-icons";
const MergeIcon = () => {
@@ -229,4 +242,17 @@ export {
DatabaseIcon as LibraryIcon,
QuestionCircleIcon,
ThLargeIcon,
+ CompressArrowsAltIcon,
+ ExpandArrowsAltIcon,
+ CloseIcon,
+ CubesIcon,
+ UploadIcon,
+ CogsIcon as SettingsIcon,
+ AngleDoubleLeftIcon as RotateLeft,
+ AngleDoubleRightIcon as RotateRight,
+ HomeIcon,
+ ExternalLinkSquareAltIcon,
+ ExclamationCircleIcon,
+ EllipsisVIcon,
+ EditIcon,
};
diff --git a/src/components/LibraryCopy/BreadcrumbContainer.tsx b/src/components/LibraryCopy/BreadcrumbContainer.tsx
index 12bcaf577..fdd6f1a0c 100644
--- a/src/components/LibraryCopy/BreadcrumbContainer.tsx
+++ b/src/components/LibraryCopy/BreadcrumbContainer.tsx
@@ -1,5 +1,5 @@
import { Breadcrumb, BreadcrumbItem } from "@patternfly/react-core";
-import HomeIcon from "@patternfly/react-icons/dist/esm/icons/home-icon";
+import { HomeIcon } from "../Icons";
const BreadcrumbContainer = ({
path,
diff --git a/src/components/LibraryCopy/FolderCard.tsx b/src/components/LibraryCopy/FolderCard.tsx
index 72bdf121b..0718536d2 100644
--- a/src/components/LibraryCopy/FolderCard.tsx
+++ b/src/components/LibraryCopy/FolderCard.tsx
@@ -7,9 +7,8 @@ import {
} from "@patternfly/react-core";
import { useQuery } from "@tanstack/react-query";
import { Link } from "react-router-dom";
-import FaFolder from "@patternfly/react-icons/dist/esm/icons/folder-icon";
-
-import ExternalLinkSquareIcon from "@patternfly/react-icons/dist/esm/icons/external-link-square-alt-icon";
+import { FolderIcon as FaFolder } from "../Icons";
+import { ExternalLinkSquareAltIcon } from "../Icons";
import useLongPress, { elipses } from "./utils";
import { fetchAuthenticatedFeed, fetchPublicFeed } from "../Feeds/utilties";
@@ -74,7 +73,7 @@ function FolderCard({
{" "}
-
+
) : null,
diff --git a/src/components/LibraryCopy/index.tsx b/src/components/LibraryCopy/index.tsx
index 58782edef..25547a6e1 100644
--- a/src/components/LibraryCopy/index.tsx
+++ b/src/components/LibraryCopy/index.tsx
@@ -1,6 +1,5 @@
import React, { useState, useCallback, useEffect, useRef } from "react";
import { useQuery } from "@tanstack/react-query";
-
import ReactJson from "react-json-view";
import {
Button,
@@ -21,7 +20,6 @@ import {
} from "@patternfly/react-core";
import { Typography } from "antd";
import { debounce } from "lodash";
-
import { useLocation, useNavigate } from "react-router";
import ChrisAPIClient from "../../api/chrisapiclient";
import WrapperConnect from "../Wrapper";
@@ -32,7 +30,7 @@ import { SpinContainer, EmptyStateComponent } from "../Common";
import BreadcrumbContainer from "./BreadcrumbContainer";
import { LibraryProvider } from "./context/";
import { InfoIcon } from "../Common";
-import FaUpload from "@patternfly/react-icons/dist/esm/icons/upload-icon";
+import { UploadIcon as FaUpload } from "../Icons";
import type { AxiosProgressEvent, AxiosResponse } from "axios";
import { useCookieToken } from "../Common";
import { useTypedSelector } from "../../store/hooks";
diff --git a/src/components/LibrarySearch/index.tsx b/src/components/LibrarySearch/index.tsx
index de12d1e49..3708603f2 100644
--- a/src/components/LibrarySearch/index.tsx
+++ b/src/components/LibrarySearch/index.tsx
@@ -4,10 +4,8 @@ import { useNavigate } from "react-router";
import { useQuery } from "@tanstack/react-query";
import { useLocation } from "react-router";
import { Link } from "react-router-dom";
-
import WrapperConnect from "../Wrapper";
import { LibraryProvider } from "../LibraryCopy/context";
-
import Browser from "../LibraryCopy/Browser";
import { InfoIcon } from "../Common";
import {
@@ -19,7 +17,7 @@ import {
EmptyStateBody,
EmptyStateIcon,
} from "@patternfly/react-core";
-import CubesIcon from "@patternfly/react-icons/dist/esm/icons/cubes-icon";
+import { CubesIcon } from "../Icons";
import { SpinContainer } from "../Common";
import { find } from "../../api/filesystem";
import Cart from "../LibraryCopy/Cart";
diff --git a/src/components/Login/index.tsx b/src/components/Login/index.tsx
index 6b3915534..ddea05824 100644
--- a/src/components/Login/index.tsx
+++ b/src/components/Login/index.tsx
@@ -9,7 +9,7 @@ import {
LoginMainFooterBandItem,
LoginPage,
} from "@patternfly/react-core";
-import ExclamationCircleIcon from "@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon";
+import { ExclamationCircleIcon } from "../Icons";
import queryString from "query-string";
import React from "react";
import { useCookies } from "react-cookie";
diff --git a/src/components/NiivueDatasetViewer/components/Drawer.tsx b/src/components/NiivueDatasetViewer/components/Drawer.tsx
index d54800f25..faf77e1a1 100644
--- a/src/components/NiivueDatasetViewer/components/Drawer.tsx
+++ b/src/components/NiivueDatasetViewer/components/Drawer.tsx
@@ -12,7 +12,7 @@ import styles from "./Drawer.module.css";
import BackgroundColor from "@patternfly/react-styles/css/utilities/BackgroundColor/BackgroundColor";
import { css } from "@patternfly/react-styles";
import Sizing from "@patternfly/react-styles/css/utilities/Sizing/sizing";
-import { EllipsisVIcon } from "@patternfly/react-icons";
+import { EllipsisVIcon } from "../../Icons";
/**
* A drawer which smushes the main content.
diff --git a/src/components/NiivueDatasetViewer/components/FeedButton.tsx b/src/components/NiivueDatasetViewer/components/FeedButton.tsx
index fa458e9c8..6713aecb2 100644
--- a/src/components/NiivueDatasetViewer/components/FeedButton.tsx
+++ b/src/components/NiivueDatasetViewer/components/FeedButton.tsx
@@ -1,5 +1,5 @@
import { Button, Tooltip } from "@patternfly/react-core";
-import MdCallSplit from "@patternfly/react-icons/dist/esm/icons/code-branch-icon";
+import { CodeBranchIcon as MdCallSplit } from "../../Icons";
import React from "react";
import { useNavigate } from "react-router";
import { Feed } from "@fnndsc/chrisapi";
diff --git a/src/components/NodeDetails/NodeDetails.css b/src/components/NodeDetails/NodeDetails.css
index 04f1f76f2..de5dddda1 100644
--- a/src/components/NodeDetails/NodeDetails.css
+++ b/src/components/NodeDetails/NodeDetails.css
@@ -53,33 +53,6 @@
margin: 0 0.5em 0 0;
}
-.node-block .node-details__title {
- display: flex;
- margin: 0.5em auto;
-}
-
-.node-block .node-details__title--button {
- margin-left: auto;
-}
-
-.node-block .node-details__title--button .pf-m-start {
- margin-right: 0px;
-}
-
-.node-block .node-details__title--button .pf-m-start svg {
- height: 16px;
- width: 16px;
-}
-
-.node-block .node-details__title--formInput {
- --pf-c-form-control--Width: 30%;
- margin-right: 1em;
-}
-
-.node-block .node-details__title--formButton {
- margin-right: 1em;
-}
-
.node-block .node-details__grid {
margin-bottom: 0.5em;
}
diff --git a/src/components/NodeDetails/NodeDetails.tsx b/src/components/NodeDetails/NodeDetails.tsx
index ca23c3e61..26bfb5e38 100644
--- a/src/components/NodeDetails/NodeDetails.tsx
+++ b/src/components/NodeDetails/NodeDetails.tsx
@@ -145,10 +145,7 @@ const NodeDetails: React.FC = () => {
) : (
<>
-
-
+
{renderGridItem("Status", )}
diff --git a/src/components/NodeDetails/PluginTitle.tsx b/src/components/NodeDetails/PluginTitle.tsx
index c9a233586..9b8e6f61e 100644
--- a/src/components/NodeDetails/PluginTitle.tsx
+++ b/src/components/NodeDetails/PluginTitle.tsx
@@ -5,7 +5,7 @@ import {
TextInput,
Title,
} from "@patternfly/react-core";
-import EditIcon from "@patternfly/react-icons/dist/esm/icons/edit-icon";
+import { EditIcon } from "../Icons";
import { useMutation } from "@tanstack/react-query";
import { Alert } from "antd";
import { useEffect, useState } from "react";
@@ -56,13 +56,19 @@ const PluginTitle = () => {
return (
<>
-
- {value}
-
- setIsOpen(!isOpen)}
- />
+
+
+ {value}
+
+ setIsOpen(!isOpen)}
+ />
+
{
- return ;
-};
-
-export const ShareButtonIcon = () => {
- return ;
-};