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} - <Popover placement="bottom" trigger="hover" content={content}> - <InformationCircleIcon - style={{ - height: "1em", - width: "0.75em", - marginLeft: "0.25em", - }} - /> + <div style={{ display: "flex" }}> + <Title level={4} style={{ marginBottom: 0 }}> + {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 ( <> - - <span>{value}</span> - - setIsOpen(!isOpen)} - /> +
+ + <span>{value}</span> + + setIsOpen(!isOpen)} + /> +
{ - return ; -}; - -export const ShareButtonIcon = () => { - return ; -};