From a488c542a1c72fa23f7443e8417c7ff492512a32 Mon Sep 17 00:00:00 2001 From: Emily Bonar Date: Mon, 9 Oct 2023 13:43:00 -0400 Subject: [PATCH 01/13] Convert font to svgs --- webui/react/src/components/DeterminedAuth.tsx | 2 +- .../src/components/NavigationSideBar.tsx | 4 +- .../react/src/components/NavigationTabbar.tsx | 2 +- webui/react/src/components/kit/Icon.tsx | 289 ++++++++++++++---- webui/react/src/components/kit/InlineForm.tsx | 2 +- webui/react/src/components/kit/Modal.tsx | 2 +- webui/react/src/components/kit/Toast.tsx | 2 +- webui/react/src/components/kit/icons/add.svg | 1 + .../src/components/kit/icons/archive.svg | 1 + .../src/components/kit/icons/arrow-down.svg | 1 + .../src/components/kit/icons/arrow-left.svg | 1 + .../src/components/kit/icons/arrow-right.svg | 1 + .../src/components/kit/icons/arrow-up.svg | 1 + .../src/components/kit/icons/cancelled.svg | 1 + .../src/components/kit/icons/checkmark.svg | 1 + .../src/components/kit/icons/checkpoint.svg | 1 + .../src/components/kit/icons/clipboard.svg | 1 + .../react/src/components/kit/icons/close.svg | 1 + .../react/src/components/kit/icons/cloud.svg | 1 + .../src/components/kit/icons/cluster.svg | 1 + .../src/components/kit/icons/collapse.svg | 1 + .../icons/{ColumnsIcon.svg => columns.svg} | 0 .../src/components/kit/icons/command.svg | 1 + .../src/components/kit/icons/dai-logo.svg | 1 + .../src/components/kit/icons/dashboard.svg | 1 + .../react/src/components/kit/icons/debug.svg | 1 + webui/react/src/components/kit/icons/docs.svg | 1 + .../src/components/kit/icons/document.svg | 1 + .../src/components/kit/icons/download.svg | 1 + .../react/src/components/kit/icons/error.svg | 1 + .../react/src/components/kit/icons/expand.svg | 1 + .../src/components/kit/icons/experiment.svg | 1 + .../src/components/kit/icons/eye-close.svg | 1 + .../src/components/kit/icons/eye-open.svg | 1 + .../kit/icons/{FilterIcon.svg => filter.svg} | 0 webui/react/src/components/kit/icons/fork.svg | 1 + .../{FourSquaresIcon.svg => four-squares.svg} | 0 .../src/components/kit/icons/fullscreen.svg | 1 + webui/react/src/components/kit/icons/grid.svg | 1 + .../react/src/components/kit/icons/group.svg | 1 + webui/react/src/components/kit/icons/heat.svg | 1 + .../icons/{HeatmapIcon.svg => heatmap.svg} | 0 webui/react/src/components/kit/icons/home.svg | 1 + webui/react/src/components/kit/icons/info.svg | 1 + .../src/components/kit/icons/jupyter-lab.svg | 1 + .../src/components/kit/icons/learning.svg | 1 + webui/react/src/components/kit/icons/list.svg | 1 + webui/react/src/components/kit/icons/lock.svg | 1 + webui/react/src/components/kit/icons/logs.svg | 1 + .../react/src/components/kit/icons/model.svg | 1 + .../src/components/kit/icons/notebook.svg | 1 + .../icons/{OptionsIcon.svg => options.svg} | 0 .../kit/icons/overflow-horizontal.svg | 1 + .../kit/icons/overflow-vertical.svg | 1 + .../icons/{PanelOnIcon.svg => panel-on.svg} | 0 .../kit/icons/{PanelIcon.svg => panel.svg} | 0 .../src/components/kit/icons/parcoords.svg | 1 + .../react/src/components/kit/icons/pause.svg | 1 + .../react/src/components/kit/icons/pencil.svg | 1 + webui/react/src/components/kit/icons/play.svg | 1 + .../react/src/components/kit/icons/popout.svg | 1 + .../react/src/components/kit/icons/power.svg | 1 + .../react/src/components/kit/icons/queue.svg | 1 + .../react/src/components/kit/icons/reset.svg | 1 + ...IconExtraLarge.svg => row-extra-large.svg} | 0 .../icons/{RowIconLarge.svg => row-large.svg} | 0 .../{RowIconMedium.svg => row-medium.svg} | 0 .../icons/{RowIconSmall.svg => row-small.svg} | 0 .../src/components/kit/icons/scatter-plot.svg | 1 + .../kit/icons/{ScrollIcon.svg => scroll.svg} | 0 .../react/src/components/kit/icons/search.svg | 1 + .../kit/icons/searcher-adaptive.svg | 1 + .../components/kit/icons/searcher-grid.svg | 1 + .../components/kit/icons/searcher-random.svg | 1 + .../src/components/kit/icons/settings.svg | 1 + .../react/src/components/kit/icons/shell.svg | 1 + .../src/components/kit/icons/spinner.svg | 1 + webui/react/src/components/kit/icons/star.svg | 1 + webui/react/src/components/kit/icons/stop.svg | 1 + .../react/src/components/kit/icons/tasks.svg | 1 + .../src/components/kit/icons/tensor-board.svg | 1 + .../src/components/kit/icons/tensorboard.svg | 1 + webui/react/src/components/kit/icons/undo.svg | 1 + webui/react/src/components/kit/icons/user.svg | 1 + .../src/components/kit/icons/warning.svg | 1 + .../src/components/kit/icons/workspaces.svg | 1 + webui/react/src/components/kit/useConfirm.tsx | 2 +- .../F_ExpList/glide-table/MultiSortMenu.tsx | 5 +- webui/react/src/styles/icons.scss | 263 ---------------- webui/react/src/styles/index.scss | 1 - 90 files changed, 308 insertions(+), 333 deletions(-) create mode 100644 webui/react/src/components/kit/icons/add.svg create mode 100644 webui/react/src/components/kit/icons/archive.svg create mode 100644 webui/react/src/components/kit/icons/arrow-down.svg create mode 100644 webui/react/src/components/kit/icons/arrow-left.svg create mode 100644 webui/react/src/components/kit/icons/arrow-right.svg create mode 100644 webui/react/src/components/kit/icons/arrow-up.svg create mode 100644 webui/react/src/components/kit/icons/cancelled.svg create mode 100644 webui/react/src/components/kit/icons/checkmark.svg create mode 100644 webui/react/src/components/kit/icons/checkpoint.svg create mode 100644 webui/react/src/components/kit/icons/clipboard.svg create mode 100644 webui/react/src/components/kit/icons/close.svg create mode 100644 webui/react/src/components/kit/icons/cloud.svg create mode 100644 webui/react/src/components/kit/icons/cluster.svg create mode 100644 webui/react/src/components/kit/icons/collapse.svg rename webui/react/src/components/kit/icons/{ColumnsIcon.svg => columns.svg} (100%) create mode 100644 webui/react/src/components/kit/icons/command.svg create mode 100644 webui/react/src/components/kit/icons/dai-logo.svg create mode 100644 webui/react/src/components/kit/icons/dashboard.svg create mode 100644 webui/react/src/components/kit/icons/debug.svg create mode 100644 webui/react/src/components/kit/icons/docs.svg create mode 100644 webui/react/src/components/kit/icons/document.svg create mode 100644 webui/react/src/components/kit/icons/download.svg create mode 100644 webui/react/src/components/kit/icons/error.svg create mode 100644 webui/react/src/components/kit/icons/expand.svg create mode 100644 webui/react/src/components/kit/icons/experiment.svg create mode 100644 webui/react/src/components/kit/icons/eye-close.svg create mode 100644 webui/react/src/components/kit/icons/eye-open.svg rename webui/react/src/components/kit/icons/{FilterIcon.svg => filter.svg} (100%) create mode 100644 webui/react/src/components/kit/icons/fork.svg rename webui/react/src/components/kit/icons/{FourSquaresIcon.svg => four-squares.svg} (100%) create mode 100644 webui/react/src/components/kit/icons/fullscreen.svg create mode 100644 webui/react/src/components/kit/icons/grid.svg create mode 100644 webui/react/src/components/kit/icons/group.svg create mode 100644 webui/react/src/components/kit/icons/heat.svg rename webui/react/src/components/kit/icons/{HeatmapIcon.svg => heatmap.svg} (100%) create mode 100644 webui/react/src/components/kit/icons/home.svg create mode 100644 webui/react/src/components/kit/icons/info.svg create mode 100644 webui/react/src/components/kit/icons/jupyter-lab.svg create mode 100644 webui/react/src/components/kit/icons/learning.svg create mode 100644 webui/react/src/components/kit/icons/list.svg create mode 100644 webui/react/src/components/kit/icons/lock.svg create mode 100644 webui/react/src/components/kit/icons/logs.svg create mode 100644 webui/react/src/components/kit/icons/model.svg create mode 100644 webui/react/src/components/kit/icons/notebook.svg rename webui/react/src/components/kit/icons/{OptionsIcon.svg => options.svg} (100%) create mode 100644 webui/react/src/components/kit/icons/overflow-horizontal.svg create mode 100644 webui/react/src/components/kit/icons/overflow-vertical.svg rename webui/react/src/components/kit/icons/{PanelOnIcon.svg => panel-on.svg} (100%) rename webui/react/src/components/kit/icons/{PanelIcon.svg => panel.svg} (100%) create mode 100644 webui/react/src/components/kit/icons/parcoords.svg create mode 100644 webui/react/src/components/kit/icons/pause.svg create mode 100644 webui/react/src/components/kit/icons/pencil.svg create mode 100644 webui/react/src/components/kit/icons/play.svg create mode 100644 webui/react/src/components/kit/icons/popout.svg create mode 100644 webui/react/src/components/kit/icons/power.svg create mode 100644 webui/react/src/components/kit/icons/queue.svg create mode 100644 webui/react/src/components/kit/icons/reset.svg rename webui/react/src/components/kit/icons/{RowIconExtraLarge.svg => row-extra-large.svg} (100%) rename webui/react/src/components/kit/icons/{RowIconLarge.svg => row-large.svg} (100%) rename webui/react/src/components/kit/icons/{RowIconMedium.svg => row-medium.svg} (100%) rename webui/react/src/components/kit/icons/{RowIconSmall.svg => row-small.svg} (100%) create mode 100644 webui/react/src/components/kit/icons/scatter-plot.svg rename webui/react/src/components/kit/icons/{ScrollIcon.svg => scroll.svg} (100%) create mode 100644 webui/react/src/components/kit/icons/search.svg create mode 100644 webui/react/src/components/kit/icons/searcher-adaptive.svg create mode 100644 webui/react/src/components/kit/icons/searcher-grid.svg create mode 100644 webui/react/src/components/kit/icons/searcher-random.svg create mode 100644 webui/react/src/components/kit/icons/settings.svg create mode 100644 webui/react/src/components/kit/icons/shell.svg create mode 100644 webui/react/src/components/kit/icons/spinner.svg create mode 100644 webui/react/src/components/kit/icons/star.svg create mode 100644 webui/react/src/components/kit/icons/stop.svg create mode 100644 webui/react/src/components/kit/icons/tasks.svg create mode 100644 webui/react/src/components/kit/icons/tensor-board.svg create mode 100644 webui/react/src/components/kit/icons/tensorboard.svg create mode 100644 webui/react/src/components/kit/icons/undo.svg create mode 100644 webui/react/src/components/kit/icons/user.svg create mode 100644 webui/react/src/components/kit/icons/warning.svg create mode 100644 webui/react/src/components/kit/icons/workspaces.svg delete mode 100644 webui/react/src/styles/icons.scss diff --git a/webui/react/src/components/DeterminedAuth.tsx b/webui/react/src/components/DeterminedAuth.tsx index 60e64ca6674..47665635a58 100644 --- a/webui/react/src/components/DeterminedAuth.tsx +++ b/webui/react/src/components/DeterminedAuth.tsx @@ -115,7 +115,7 @@ const DeterminedAuth: React.FC = ({ canceler }: Props) => { } + prefix={} /> diff --git a/webui/react/src/components/NavigationSideBar.tsx b/webui/react/src/components/NavigationSideBar.tsx index a031f0568cf..8dc5d838b1d 100644 --- a/webui/react/src/components/NavigationSideBar.tsx +++ b/webui/react/src/components/NavigationSideBar.tsx @@ -292,7 +292,7 @@ const NavigationSideBar: React.FC = () => { {canCreateWorkspace && ( } diff --git a/webui/react/src/components/FilterForm/components/FilterField.tsx b/webui/react/src/components/FilterForm/components/FilterField.tsx index c383f102fff..80802f03f36 100644 --- a/webui/react/src/components/FilterForm/components/FilterField.tsx +++ b/webui/react/src/components/FilterForm/components/FilterField.tsx @@ -1,4 +1,3 @@ -import { HolderOutlined } from '@ant-design/icons'; import { type SelectProps as AntdSelectProps } from 'antd'; import type { DatePickerProps } from 'antd/es/date-picker'; import dayjs from 'dayjs'; @@ -275,13 +274,13 @@ const FilterField = ({ )} diff --git a/webui/react/src/components/FilterForm/components/FilterGroup.tsx b/webui/react/src/components/FilterForm/components/FilterGroup.tsx index 0b209095553..6cd2e5f2f12 100644 --- a/webui/react/src/components/FilterForm/components/FilterGroup.tsx +++ b/webui/react/src/components/FilterForm/components/FilterGroup.tsx @@ -1,4 +1,3 @@ -import { HolderOutlined, PlusOutlined } from '@ant-design/icons'; import { Dropdown, DropDownProps, type MenuProps } from 'antd'; import { useMemo, useRef } from 'react'; import { useDrag, useDrop } from 'react-dnd'; @@ -143,15 +142,15 @@ const FilterGroup = ({ disabled={group.children.length > ITEM_LIMIT} menu={menuItems} trigger={['click']}> - @@ -230,7 +245,18 @@ const ModelCreateModal = ({ onClose, workspaceId }: Props): JSX.Element => { ]}> - remove(name)} /> + diff --git a/webui/react/src/components/UPlot/UPlotChart.tsx b/webui/react/src/components/UPlot/UPlotChart.tsx index 35150238fac..fc426444fe2 100644 --- a/webui/react/src/components/UPlot/UPlotChart.tsx +++ b/webui/react/src/components/UPlot/UPlotChart.tsx @@ -1,9 +1,9 @@ -import { DownloadOutlined } from '@ant-design/icons'; -import { Tooltip } from 'antd'; import React, { RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { throttle } from 'throttle-debounce'; import uPlot, { AlignedData } from 'uplot'; +import Button from 'components/kit/Button'; +import Icon from 'components/kit/Icon'; import Spinner from 'components/kit/Spinner'; import useUI, { DarkLight } from 'components/kit/Theme'; import usePrevious from 'hooks/usePrevious'; @@ -287,9 +287,13 @@ const DownloadButton = ({ }, [containerRef]); return ( - - - {/* this is an invisible button to programatically download the image file */} + <> + - */ - - - - } + {/* + * TODO: Add notebook integration + * + */} + {readonly && file !== NotLoaded && ( + - + - With font icon - - - - - As Dropdown trigger with icon + As Dropdown trigger with Icon - + - - diff --git a/webui/react/src/pages/ExperimentDetails/ExperimentCheckpoints.tsx b/webui/react/src/pages/ExperimentDetails/ExperimentCheckpoints.tsx index f3f88abdec2..0864778f650 100644 --- a/webui/react/src/pages/ExperimentDetails/ExperimentCheckpoints.tsx +++ b/webui/react/src/pages/ExperimentDetails/ExperimentCheckpoints.tsx @@ -5,6 +5,7 @@ import ActionDropdown from 'components/ActionDropdown'; import Badge, { BadgeType } from 'components/Badge'; import CheckpointModalTrigger from 'components/CheckpointModalTrigger'; import { useModal } from 'components/kit/Modal'; +import useConfirm from 'components/kit/useConfirm'; import ModelCreateModal from 'components/ModelCreateModal'; import Section from 'components/Section'; import InteractiveTable, { ContextMenuProps } from 'components/Table/InteractiveTable'; @@ -16,14 +17,15 @@ import { } from 'components/Table/Table'; import TableBatch from 'components/Table/TableBatch'; import TableFilterDropdown from 'components/Table/TableFilterDropdown'; -import useModalCheckpointDelete from 'hooks/useModal/Checkpoint/useModalCheckpointDelete'; import useModalCheckpointRegister from 'hooks/useModal/Checkpoint/useModalCheckpointRegister'; import { ModalCloseReason } from 'hooks/useModal/useModal'; import usePolling from 'hooks/usePolling'; import { useSettings } from 'hooks/useSettings'; import { getExperimentCheckpoints } from 'services/api'; import { Checkpointv1SortBy, Checkpointv1State } from 'services/api-ts-sdk'; +import { detApi } from 'services/apiConfig'; import { encodeCheckpointState } from 'services/decoder'; +import { readStream } from 'services/utils'; import { checkpointAction, CheckpointAction, @@ -33,8 +35,10 @@ import { RecordKey, } from 'types'; import { canActionCheckpoint, getActionsForCheckpointsUnion } from 'utils/checkpoint'; +import { ensureArray } from 'utils/data'; import handleError, { ErrorLevel, ErrorType } from 'utils/error'; import { validateDetApiEnum, validateDetApiEnumList } from 'utils/service'; +import { pluralizer } from 'utils/string'; import { configForExperiment, Settings } from './ExperimentCheckpoints.settings'; import { columns as defaultColumns } from './ExperimentCheckpoints.table'; @@ -47,6 +51,7 @@ interface Props { const batchActions = [checkpointAction.Register, checkpointAction.Delete]; const ExperimentCheckpoints: React.FC = ({ experiment, pageRef }: Props) => { + const confirm = useConfirm(); const [total, setTotal] = useState(0); const [isLoading, setIsLoading] = useState(true); const [checkpoints, setCheckpoints] = useState(); @@ -77,11 +82,6 @@ const ExperimentCheckpoints: React.FC = ({ experiment, pageRef }: Props) [openModalCheckpointRegister], ); - const { - contextHolder: modalCheckpointDeleteContextHolder, - modalOpen: openModalCheckpointDelete, - } = useModalCheckpointDelete({}); - const clearSelected = useCallback(() => { updateSettings({ row: undefined }); }, [updateSettings]); @@ -122,16 +122,39 @@ const ExperimentCheckpoints: React.FC = ({ experiment, pageRef }: Props) [openModalCheckpointRegister], ); + const handleDelete = useCallback((checkpoints: string[]) => { + readStream( + detApi.Checkpoint.deleteCheckpoints({ + checkpointUuids: checkpoints, + }), + ); + }, []); + const handleDeleteCheckpoint = useCallback( (checkpoints: string[]) => { - openModalCheckpointDelete({ checkpoints }); + const content = `Are you sure you want to request checkpoint deletion for ${ + checkpoints.length + } + ${pluralizer( + checkpoints.length, + 'checkpoint', + )}? This action may complete or fail without further notification.`; + + confirm({ + content, + danger: true, + okText: 'Request Delete', + onConfirm: () => handleDelete(checkpoints), + onError: handleError, + title: 'Confirm Checkpoint Deletion', + }); }, - [openModalCheckpointDelete], + [confirm, handleDelete], ); const dropDownOnTrigger = useCallback( (checkpoints: string | string[]) => { - const checkpointsArr = Array.isArray(checkpoints) ? checkpoints : [checkpoints]; + const checkpointsArr = ensureArray(checkpoints); return { [checkpointAction.Register]: () => handleRegisterCheckpoint(checkpointsArr), [checkpointAction.Delete]: () => handleDeleteCheckpoint(checkpointsArr), @@ -350,7 +373,6 @@ const ExperimentCheckpoints: React.FC = ({ experiment, pageRef }: Props) {modalCheckpointRegisterContextHolder} - {modalCheckpointDeleteContextHolder} ); }; diff --git a/webui/react/src/pages/WorkspaceDetails/WorkspaceQuickSearch.tsx b/webui/react/src/pages/WorkspaceDetails/WorkspaceQuickSearch.tsx index b0065814c49..435eadd9662 100644 --- a/webui/react/src/pages/WorkspaceDetails/WorkspaceQuickSearch.tsx +++ b/webui/react/src/pages/WorkspaceDetails/WorkspaceQuickSearch.tsx @@ -1,4 +1,3 @@ -import { ProjectOutlined } from '@ant-design/icons'; import { Modal, Tree } from 'antd'; import type { DefaultOptionType } from 'rc-tree-select/lib/TreeSelect'; import React, { useCallback, useMemo, useState } from 'react'; @@ -101,7 +100,7 @@ const WorkspaceQuickSearch: React.FC = ({ children }: Props) => { key: `project-${project.id}`, title: (
- + onClickProject(project)}>{project.name} ({project.numExperiments})
diff --git a/webui/react/src/pages/WorkspaceList/WorkspaceCard.tsx b/webui/react/src/pages/WorkspaceList/WorkspaceCard.tsx index 312e6c5a361..43b23a64086 100644 --- a/webui/react/src/pages/WorkspaceList/WorkspaceCard.tsx +++ b/webui/react/src/pages/WorkspaceList/WorkspaceCard.tsx @@ -1,10 +1,10 @@ -import { PushpinOutlined } from '@ant-design/icons'; import { Typography } from 'antd'; import React from 'react'; import DynamicIcon from 'components/DynamicIcon'; import Card from 'components/kit/Card'; import { Columns } from 'components/kit/Columns'; +import Icon from 'components/kit/Icon'; import Spinner from 'components/kit/Spinner'; import { Loadable } from 'components/kit/utils/loadable'; import Avatar from 'components/UserAvatar'; @@ -53,7 +53,7 @@ const WorkspaceCard: React.FC = ({ workspace, fetchWorkspaces }: Props) = level={5}> {workspace.name} - {workspace.pinned && } + {workspace.pinned && }

{workspace.numProjects} {pluralizer(workspace.numProjects, 'project')} From 3cb2d643f0e58fa07483b0c088226897e6a4ecdc Mon Sep 17 00:00:00 2001 From: Emily Bonar Date: Tue, 10 Oct 2023 16:26:00 -0400 Subject: [PATCH 03/13] Simplify Logo props --- webui/react/src/components/Logo.tsx | 13 ++++++++----- webui/react/src/components/PageMessage.tsx | 11 +++-------- webui/react/src/pages/DesignKit.tsx | 5 ++--- webui/react/src/pages/SignIn.tsx | 9 +++------ 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/webui/react/src/components/Logo.tsx b/webui/react/src/components/Logo.tsx index 4e836610c87..c8449fcbc14 100644 --- a/webui/react/src/components/Logo.tsx +++ b/webui/react/src/components/Logo.tsx @@ -14,16 +14,16 @@ import { reactHostAddress } from 'utils/routes'; import css from './Logo.module.scss'; -export const Orientation = { +const Orientation = { Horizontal: 'horizontal', Vertical: 'vertical', } as const; -export type Orientation = ValueOf; +type Orientation = ValueOf; interface Props { - branding: BrandingType; - orientation: Orientation; + branding?: BrandingType; + orientation?: Orientation; } const logos: Record>> = { @@ -49,7 +49,10 @@ const logos: Record> }, }; -const Logo: React.FC = ({ branding, orientation }: Props) => { +const Logo: React.FC = ({ + branding = BrandingType.Determined, + orientation = Orientation.Vertical, +}: Props) => { const { ui } = useUI(); const classes = [css[branding], css[orientation]]; diff --git a/webui/react/src/components/PageMessage.tsx b/webui/react/src/components/PageMessage.tsx index 5938e8760bd..28453d28965 100644 --- a/webui/react/src/components/PageMessage.tsx +++ b/webui/react/src/components/PageMessage.tsx @@ -2,9 +2,9 @@ import { useObservable } from 'micro-observables'; import React from 'react'; import Message from 'components/kit/Message'; -import Logo, { Orientation } from 'components/Logo'; +import Logo from 'components/Logo'; import Page from 'components/Page'; -import determinedStore, { BrandingType } from 'stores/determinedInfo'; +import determinedStore from 'stores/determinedInfo'; interface Props { children: React.ReactNode; @@ -17,12 +17,7 @@ const PageMessage: React.FC = ({ title, children }: Props) => { - } + icon={} title={title} /> diff --git a/webui/react/src/pages/DesignKit.tsx b/webui/react/src/pages/DesignKit.tsx index 49cfed104a9..b33031638c0 100644 --- a/webui/react/src/pages/DesignKit.tsx +++ b/webui/react/src/pages/DesignKit.tsx @@ -57,7 +57,6 @@ import { CheckpointsDict } from 'pages/TrialDetails/TrialDetailsMetrics'; import { serverAddress } from 'routes/utils'; import { V1LogLevel } from 'services/api-ts-sdk'; import { mapV1LogsResponse } from 'services/decoder'; -import { BrandingType } from 'stores/determinedInfo'; import { Background, Brand, @@ -3124,7 +3123,7 @@ const DesignKit: React.FC = () => {