diff --git a/open-lens/package.json b/open-lens/package.json index b90d7b4ccf..278fa6980d 100644 --- a/open-lens/package.json +++ b/open-lens/package.json @@ -30,7 +30,7 @@ "dev:main": "cross-env NODE_ENV=development webpack --config webpack/main.ts --progress --watch", "dev:renderer": "cross-env NODE_ENV=development ts-node ./webpack/dev-server.ts", "test:integration": "jest -xyz --runInBand --modulePaths=[\"/integration/\"];", - "build:tray-icons": "npm run --workspace @k8slens/generate-tray-icons generate -- --output static/build/tray --input @k8slens/core/icons/logo-lens.svg --notice-icon @k8slens/core/icons/notice.svg --spinner-icon @k8slens/core/icons/arrow-spinner.svg", + "build:tray-icons": "npm run --workspace @k8slens/generate-tray-icons generate -- --output static/build/tray --input @k8slens/icon/icons/logo-lens.svg --notice-icon @k8slens/icon/icons/notice.svg --spinner-icon @k8slens/icon/icons/arrow-spinner.svg", "download:binaries": "npm run --workspace @k8slens/ensure-binaries ensure -- --package package.json --base-dir binaries/client", "postinstall": "electron-rebuild" }, diff --git a/open-lens/src/renderer/index.ts b/open-lens/src/renderer/index.ts index db55131970..259876e837 100644 --- a/open-lens/src/renderer/index.ts +++ b/open-lens/src/renderer/index.ts @@ -3,6 +3,7 @@ import "@k8slens/button/styles"; import "@k8slens/error-boundary/styles"; import "@k8slens/tooltip/styles"; import "@k8slens/resizing-anchor/styles"; +import "@k8slens/icon/styles"; import { runInAction } from "mobx"; import { diff --git a/packages/core/package.json b/packages/core/package.json index 6496c80bc7..6b1563576e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -24,8 +24,7 @@ "./styles": "./static/build/library/renderer.css", "./template.html": "./src/renderer/template.html", "./vars.scss": "./src/renderer/components/vars.scss", - "./fonts": "./static/build/library/fonts", - "./icons/*.svg": "./src/renderer/components/icon/*.svg" + "./fonts": "./static/build/library/fonts" }, "typesVersions": { "*": { @@ -44,7 +43,6 @@ "static/build/library/**/*", "src/renderer/template.html", "src/renderer/components/vars.scss", - "src/renderer/components/icon/*.svg", "types/*", "tsconfig.json" ], @@ -234,6 +232,7 @@ "@k8slens/run-many": "^1.0.0-alpha.1", "@k8slens/startable-stoppable": "^1.0.0-alpha.1", "@k8slens/tooltip": "^1.0.0-alpha.5", + "@k8slens/icon": "^1.0.0-alpha.7", "@k8slens/utilities": "^1.0.0-alpha.1", "@kubernetes/client-node": "^0.18.1", "@material-ui/core": "^4.12.3", diff --git a/packages/core/src/extensions/renderer-api/components.ts b/packages/core/src/extensions/renderer-api/components.ts index 179183ce14..36ce3bba0a 100644 --- a/packages/core/src/extensions/renderer-api/components.ts +++ b/packages/core/src/extensions/renderer-api/components.ts @@ -61,7 +61,7 @@ export const ConfirmDialog = Object.assign(_ConfirmDialog, { confirm: asLegacyGlobalFunctionForExtensionApi(confirmInjectable), }); -export * from "../../renderer/components/icon"; +export * from "@k8slens/icon"; export * from "@k8slens/tooltip"; export * from "../../renderer/components/tabs"; export * from "../../renderer/components/table"; diff --git a/packages/core/src/features/application-update/child-features/application-update-using-top-bar/renderer/update-application-top-bar-item/update-button/update-button.tsx b/packages/core/src/features/application-update/child-features/application-update-using-top-bar/renderer/update-application-top-bar-item/update-button/update-button.tsx index a99501128c..571269b74f 100644 --- a/packages/core/src/features/application-update/child-features/application-update-using-top-bar/renderer/update-application-top-bar-item/update-button/update-button.tsx +++ b/packages/core/src/features/application-update/child-features/application-update-using-top-bar/renderer/update-application-top-bar-item/update-button/update-button.tsx @@ -9,8 +9,8 @@ import type { HTMLAttributes } from "react"; import React, { useState } from "react"; import { Menu, MenuItem } from "../../../../../../../renderer/components/menu"; import { cssNames } from "@k8slens/utilities"; -import type { IconProps } from "../../../../../../../renderer/components/icon"; -import { Icon } from "../../../../../../../renderer/components/icon"; +import type { IconProps } from "@k8slens/icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import { observer } from "mobx-react"; import type { IComputedValue } from "mobx"; diff --git a/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/adding-of-custom-helm-repository-dialog-content.tsx b/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/adding-of-custom-helm-repository-dialog-content.tsx index 7ba5f360e6..cc643a2820 100644 --- a/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/adding-of-custom-helm-repository-dialog-content.tsx +++ b/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/adding-of-custom-helm-repository-dialog-content.tsx @@ -18,7 +18,7 @@ import { action } from "mobx"; import submitCustomHelmRepositoryInjectable from "./submit-custom-helm-repository.injectable"; import hideDialogForAddingCustomHelmRepositoryInjectable from "./dialog-visibility/hide-dialog-for-adding-custom-helm-repository.injectable"; import { Button } from "@k8slens/button"; -import { Icon } from "../../../../../../renderer/components/icon"; +import { Icon } from "@k8slens/icon"; import maximalCustomHelmRepoOptionsAreShownInjectable from "./maximal-custom-helm-repo-options-are-shown.injectable"; import { SubTitle } from "../../../../../../renderer/components/layout/sub-title"; import { Checkbox } from "../../../../../../renderer/components/checkbox"; diff --git a/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/helm-file-input/helm-file-input.tsx b/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/helm-file-input/helm-file-input.tsx index 64d814685e..26f63d57fc 100644 --- a/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/helm-file-input/helm-file-input.tsx +++ b/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/helm-file-input/helm-file-input.tsx @@ -4,7 +4,7 @@ */ import type { InputValidator } from "../../../../../../../renderer/components/input"; import { Input } from "../../../../../../../renderer/components/input"; -import { Icon } from "../../../../../../../renderer/components/icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { RequestFilePaths } from "./get-file-paths.injectable"; diff --git a/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/adding-of-public-helm-repository.tsx b/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/adding-of-public-helm-repository.tsx index 6b6cfeedd4..b01aa5460d 100644 --- a/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/adding-of-public-helm-repository.tsx +++ b/packages/core/src/features/helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/adding-of-public-helm-repository.tsx @@ -9,7 +9,7 @@ import publicHelmRepositoriesInjectable from "./public-helm-repositories/public- import type { HelmRepo } from "../../../../../../common/helm/helm-repo"; import type { SelectOption } from "../../../../../../renderer/components/select"; import { Select } from "../../../../../../renderer/components/select"; -import { Icon } from "../../../../../../renderer/components/icon"; +import { Icon } from "@k8slens/icon"; import { observer } from "mobx-react"; import type { SingleValue } from "react-select"; import selectHelmRepositoryInjectable from "./select-helm-repository/select-helm-repository.injectable"; diff --git a/packages/core/src/features/preferences/renderer/preference-navigation/preferences-navigation.tsx b/packages/core/src/features/preferences/renderer/preference-navigation/preferences-navigation.tsx index 861dc1fbff..30c5776054 100644 --- a/packages/core/src/features/preferences/renderer/preference-navigation/preferences-navigation.tsx +++ b/packages/core/src/features/preferences/renderer/preference-navigation/preferences-navigation.tsx @@ -14,7 +14,7 @@ import { observer } from "mobx-react"; import { PreferencesNavigationTab } from "./preferences-navigation-tab"; import { compositeHasDescendant } from "../../../../common/utils/composite/composite-has-descendant/composite-has-descendant"; import type { PreferenceTabsRoot } from "../preference-items/preference-tab-root"; -import { Icon } from "../../../../renderer/components/icon"; +import { Icon } from "@k8slens/icon"; import { checkThatAllDiscriminablesAreExhausted } from "../../../../common/utils/composable-responsibilities/discriminable/discriminable"; import type { NavigateToPreferenceTab } from "./navigate-to-preference-tab/navigate-to-preference-tab.injectable"; import navigateToPreferenceTabInjectable from "./navigate-to-preference-tab/navigate-to-preference-tab.injectable"; diff --git a/packages/core/src/features/preferences/renderer/removable-item/removable-item.tsx b/packages/core/src/features/preferences/renderer/removable-item/removable-item.tsx index 4371c9c758..4aa2a04202 100644 --- a/packages/core/src/features/preferences/renderer/removable-item/removable-item.tsx +++ b/packages/core/src/features/preferences/renderer/removable-item/removable-item.tsx @@ -8,7 +8,7 @@ import type { DOMAttributes } from "react"; import React from "react"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../../../../renderer/components/icon"; +import { Icon } from "@k8slens/icon"; export interface RemovableItemProps extends DOMAttributes{ icon?: string; diff --git a/packages/core/src/renderer/components/add-remove-buttons/add-remove-buttons.tsx b/packages/core/src/renderer/components/add-remove-buttons/add-remove-buttons.tsx index aab7861c54..b243f64e6d 100644 --- a/packages/core/src/renderer/components/add-remove-buttons/add-remove-buttons.tsx +++ b/packages/core/src/renderer/components/add-remove-buttons/add-remove-buttons.tsx @@ -9,7 +9,7 @@ import React from "react"; import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { Button } from "@k8slens/button"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; export interface AddRemoveButtonsProps extends React.HTMLAttributes { onAdd?: () => void; diff --git a/packages/core/src/renderer/components/avatar/__tests__/avatar.test.tsx b/packages/core/src/renderer/components/avatar/__tests__/avatar.test.tsx index fe5b44bdad..7f07cd1a42 100644 --- a/packages/core/src/renderer/components/avatar/__tests__/avatar.test.tsx +++ b/packages/core/src/renderer/components/avatar/__tests__/avatar.test.tsx @@ -6,7 +6,7 @@ import React from "react"; import "@testing-library/jest-dom/extend-expect"; import { Avatar } from "../avatar"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { getDiForUnitTesting } from "../../../getDiForUnitTesting"; import { type DiRender, renderFor } from "../../test-utils/renderFor"; diff --git a/packages/core/src/renderer/components/catalog/catalog-add-button.tsx b/packages/core/src/renderer/components/catalog/catalog-add-button.tsx index 0e4531077d..0bc96ff5ee 100644 --- a/packages/core/src/renderer/components/catalog/catalog-add-button.tsx +++ b/packages/core/src/renderer/components/catalog/catalog-add-button.tsx @@ -6,7 +6,7 @@ import "./catalog-add-button.scss"; import React from "react"; import { SpeedDial, SpeedDialAction } from "@material-ui/lab"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { observer } from "mobx-react"; import { observable, makeObservable, action } from "mobx"; import type { CatalogCategory, CatalogEntityAddMenu } from "../../api/catalog-entity"; diff --git a/packages/core/src/renderer/components/catalog/catalog-entity-drawer-menu.tsx b/packages/core/src/renderer/components/catalog/catalog-entity-drawer-menu.tsx index 1e4844f614..756a0803d2 100644 --- a/packages/core/src/renderer/components/catalog/catalog-entity-drawer-menu.tsx +++ b/packages/core/src/renderer/components/catalog/catalog-entity-drawer-menu.tsx @@ -11,7 +11,7 @@ import type { CatalogEntity, CatalogEntityContextMenu } from "../../api/catalog- import { observer } from "mobx-react"; import { observable } from "mobx"; import { MenuItem } from "../menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { HotbarToggleMenuItem } from "./hotbar-toggle-menu-item"; import type { VisitEntityContextMenu } from "../../../common/catalog/visit-entity-context-menu.injectable"; import visitEntityContextMenuInjectable from "../../../common/catalog/visit-entity-context-menu.injectable"; diff --git a/packages/core/src/renderer/components/catalog/catalog-menu.tsx b/packages/core/src/renderer/components/catalog/catalog-menu.tsx index bbbac83ed5..587cc4ddf6 100644 --- a/packages/core/src/renderer/components/catalog/catalog-menu.tsx +++ b/packages/core/src/renderer/components/catalog/catalog-menu.tsx @@ -7,7 +7,7 @@ import treeStyles from "./catalog-tree.module.scss"; import styles from "./catalog-menu.module.scss"; import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { CatalogCategory } from "../../api/catalog-entity"; import { observer } from "mobx-react"; import { CatalogCategoryLabel } from "./catalog-category-label"; diff --git a/packages/core/src/renderer/components/catalog/columns/render-named-category-column-cell.injectable.tsx b/packages/core/src/renderer/components/catalog/columns/render-named-category-column-cell.injectable.tsx index 21fd683ffb..0abec71f0c 100644 --- a/packages/core/src/renderer/components/catalog/columns/render-named-category-column-cell.injectable.tsx +++ b/packages/core/src/renderer/components/catalog/columns/render-named-category-column-cell.injectable.tsx @@ -8,7 +8,7 @@ import React from "react"; import activeHotbarInjectable from "../../../../features/hotbar/storage/common/active.injectable"; import { Avatar } from "../../avatar"; import type { RegisteredAdditionalCategoryColumn } from "../custom-category-columns"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { prevDefault } from "@k8slens/utilities"; const renderNamedCategoryColumnCellInjectable = getInjectable({ diff --git a/packages/core/src/renderer/components/catalog/entity-details/view.tsx b/packages/core/src/renderer/components/catalog/entity-details/view.tsx index b846e20009..e2b52c5331 100644 --- a/packages/core/src/renderer/components/catalog/entity-details/view.tsx +++ b/packages/core/src/renderer/components/catalog/entity-details/view.tsx @@ -8,7 +8,7 @@ import React, { Component } from "react"; import { observer } from "mobx-react"; import { Drawer, DrawerItem } from "../../drawer"; import type { CatalogCategory, CatalogEntity } from "../../../../common/catalog"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { CatalogEntityDrawerMenu } from "../catalog-entity-drawer-menu"; import { cssNames } from "@k8slens/utilities"; import { Avatar } from "../../avatar"; diff --git a/packages/core/src/renderer/components/cluster-manager/cluster-status.tsx b/packages/core/src/renderer/components/cluster-manager/cluster-status.tsx index 381fd116aa..e72d4872c2 100644 --- a/packages/core/src/renderer/components/cluster-manager/cluster-status.tsx +++ b/packages/core/src/renderer/components/cluster-manager/cluster-status.tsx @@ -13,7 +13,7 @@ import type { Cluster } from "../../../common/cluster/cluster"; import type { IClassName } from "@k8slens/utilities"; import { hasTypedProperty, isObject, isString, cssNames } from "@k8slens/utilities"; import { Button } from "@k8slens/button"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Spinner } from "../spinner"; import type { KubeAuthUpdate } from "../../../common/cluster-types"; import type { CatalogEntityRegistry } from "../../api/catalog/entity/registry"; diff --git a/packages/core/src/renderer/components/cluster-settings/local-terminal-settings.tsx b/packages/core/src/renderer/components/cluster-settings/local-terminal-settings.tsx index 4e10831ac1..0548a7c3a3 100644 --- a/packages/core/src/renderer/components/cluster-settings/local-terminal-settings.tsx +++ b/packages/core/src/renderer/components/cluster-settings/local-terminal-settings.tsx @@ -9,7 +9,7 @@ import type { Cluster } from "../../../common/cluster/cluster"; import { Input } from "../input"; import { SubTitle } from "../layout/sub-title"; import type { ShowNotification } from "../notifications"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import showErrorNotificationInjectable from "../notifications/show-error-notification.injectable"; import type { ValidateDirectory } from "../../../common/fs/validate-directory.injectable"; diff --git a/packages/core/src/renderer/components/cluster-settings/metrics-setting.tsx b/packages/core/src/renderer/components/cluster-settings/metrics-setting.tsx index bf1cd16904..6e7ce78b64 100644 --- a/packages/core/src/renderer/components/cluster-settings/metrics-setting.tsx +++ b/packages/core/src/renderer/components/cluster-settings/metrics-setting.tsx @@ -6,7 +6,7 @@ import React from "react"; import { disposeOnUnmount, observer } from "mobx-react"; import { onMultiSelectFor, Select } from "../select/select"; -import { Icon } from "../icon/icon"; +import { Icon } from "@k8slens/icon"; import { Button } from "@k8slens/button"; import { SubTitle } from "../layout/sub-title"; import type { Cluster } from "../../../common/cluster/cluster"; diff --git a/packages/core/src/renderer/components/cluster-settings/node-shell-setting.tsx b/packages/core/src/renderer/components/cluster-settings/node-shell-setting.tsx index 841d04299e..1c7f367d4b 100644 --- a/packages/core/src/renderer/components/cluster-settings/node-shell-setting.tsx +++ b/packages/core/src/renderer/components/cluster-settings/node-shell-setting.tsx @@ -9,7 +9,7 @@ import { SubTitle } from "../layout/sub-title"; import React from "react"; import { Input } from "../input/input"; import { observer } from "mobx-react"; -import { Icon } from "../icon/icon"; +import { Icon } from "@k8slens/icon"; import { initialNodeShellImage } from "../../../common/cluster-types"; import Gutter from "../gutter/gutter"; diff --git a/packages/core/src/renderer/components/cluster-settings/show-metrics.tsx b/packages/core/src/renderer/components/cluster-settings/show-metrics.tsx index acc914d1a6..e8db16c589 100644 --- a/packages/core/src/renderer/components/cluster-settings/show-metrics.tsx +++ b/packages/core/src/renderer/components/cluster-settings/show-metrics.tsx @@ -8,7 +8,7 @@ import { disposeOnUnmount, observer } from "mobx-react"; import type { Cluster } from "../../../common/cluster/cluster"; import { observable, reaction, makeObservable } from "mobx"; import { Badge } from "../badge/badge"; -import { Icon } from "../icon/icon"; +import { Icon } from "@k8slens/icon"; import { Notice } from "../extensions/notice"; export interface ShowMetricsSettingProps { diff --git a/packages/core/src/renderer/components/cluster/cluster-issues.tsx b/packages/core/src/renderer/components/cluster/cluster-issues.tsx index 6b17ed7bc0..be2d1a395c 100644 --- a/packages/core/src/renderer/components/cluster/cluster-issues.tsx +++ b/packages/core/src/renderer/components/cluster/cluster-issues.tsx @@ -9,7 +9,7 @@ import React from "react"; import { observer } from "mobx-react"; import type { IComputedValue } from "mobx"; import { computed, makeObservable } from "mobx"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { SubHeader } from "../layout/sub-header"; import { Table, TableCell, TableHead, TableRow } from "../table"; import { cssNames, prevDefault } from "@k8slens/utilities"; diff --git a/packages/core/src/renderer/components/cluster/cluster-no-metrics.tsx b/packages/core/src/renderer/components/cluster/cluster-no-metrics.tsx index 8e90c7f72f..4aa03e8c50 100644 --- a/packages/core/src/renderer/components/cluster/cluster-no-metrics.tsx +++ b/packages/core/src/renderer/components/cluster/cluster-no-metrics.tsx @@ -6,7 +6,7 @@ import styles from "./cluster-no-metrics.module.scss"; import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { cssNames } from "@k8slens/utilities"; import type { NavigateToEntitySettings } from "../../../common/front-end-routing/routes/entity-settings/navigate-to-entity-settings.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/cluster/cluster-overview-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/cluster/cluster-overview-sidebar-items.injectable.tsx index d3cf4e6814..5232f36153 100644 --- a/packages/core/src/renderer/components/cluster/cluster-overview-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/cluster/cluster-overview-sidebar-items.injectable.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import type { SidebarItemRegistration } from "../layout/sidebar-items.injectable"; diff --git a/packages/core/src/renderer/components/cluster/cluster-pie-charts.tsx b/packages/core/src/renderer/components/cluster/cluster-pie-charts.tsx index f14229fe03..68f87fdec3 100644 --- a/packages/core/src/renderer/components/cluster/cluster-pie-charts.tsx +++ b/packages/core/src/renderer/components/cluster/cluster-pie-charts.tsx @@ -8,7 +8,7 @@ import styles from "./cluster-pie-charts.module.scss"; import React from "react"; import { observer } from "mobx-react"; import { Spinner } from "../spinner"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { PieChartData } from "../chart"; import { PieChart } from "../chart"; import { ClusterNoMetrics } from "./cluster-no-metrics"; diff --git a/packages/core/src/renderer/components/config-resource-quotas/add-dialog/view.tsx b/packages/core/src/renderer/components/config-resource-quotas/add-dialog/view.tsx index 91a2957ad0..b656f70ed0 100644 --- a/packages/core/src/renderer/components/config-resource-quotas/add-dialog/view.tsx +++ b/packages/core/src/renderer/components/config-resource-quotas/add-dialog/view.tsx @@ -17,7 +17,7 @@ import { systemName } from "../../input/input_validators"; import type { ResourceQuotaValues } from "@k8slens/kube-object"; import type { ResourceQuotaApi } from "@k8slens/kube-api"; import { Select } from "../../select"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { Button } from "@k8slens/button"; import { NamespaceSelect } from "../../namespaces/namespace-select"; import { SubTitle } from "../../layout/sub-title"; diff --git a/packages/core/src/renderer/components/config-secrets/add-dialog/view.tsx b/packages/core/src/renderer/components/config-secrets/add-dialog/view.tsx index 64fee00598..db46d2b597 100644 --- a/packages/core/src/renderer/components/config-secrets/add-dialog/view.tsx +++ b/packages/core/src/renderer/components/config-secrets/add-dialog/view.tsx @@ -19,7 +19,7 @@ import { reverseSecretTypeMap, SecretType } from "@k8slens/kube-object"; import { SubTitle } from "../../layout/sub-title"; import { NamespaceSelect } from "../../namespaces/namespace-select"; import { Select } from "../../select"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { base64, iter, object } from "@k8slens/utilities"; import upperFirst from "lodash/upperFirst"; import type { ShowDetails } from "../../kube-detail-params/show-details.injectable"; diff --git a/packages/core/src/renderer/components/config-secrets/secret-details.tsx b/packages/core/src/renderer/components/config-secrets/secret-details.tsx index f355f5be0b..398488f65a 100644 --- a/packages/core/src/renderer/components/config-secrets/secret-details.tsx +++ b/packages/core/src/renderer/components/config-secrets/secret-details.tsx @@ -13,7 +13,7 @@ import { Input } from "../input"; import { Button } from "@k8slens/button"; import type { ShowNotification } from "../notifications"; import { base64, toggle } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { KubeObjectDetailsProps } from "../kube-object-details"; import { Secret } from "@k8slens/kube-object"; import type { Logger } from "@k8slens/logger"; diff --git a/packages/core/src/renderer/components/config/config-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/config/config-sidebar-items.injectable.tsx index 0730954aff..4152869ca4 100644 --- a/packages/core/src/renderer/components/config/config-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/config/config-sidebar-items.injectable.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import type { SidebarItemRegistration } from "../layout/sidebar-items.injectable"; diff --git a/packages/core/src/renderer/components/confirm-dialog/confirm-dialog.tsx b/packages/core/src/renderer/components/confirm-dialog/confirm-dialog.tsx index 702028acc5..17b91bab4d 100644 --- a/packages/core/src/renderer/components/confirm-dialog/confirm-dialog.tsx +++ b/packages/core/src/renderer/components/confirm-dialog/confirm-dialog.tsx @@ -15,7 +15,7 @@ import type { ButtonProps } from "@k8slens/button"; import { Button } from "@k8slens/button"; import type { DialogProps } from "../dialog"; import { Dialog } from "../dialog"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { ShowNotification } from "../notifications"; import { withInjectables } from "@ogre-tools/injectable-react"; import confirmDialogStateInjectable from "./state.injectable"; diff --git a/packages/core/src/renderer/components/custom-resources/crd-list.tsx b/packages/core/src/renderer/components/custom-resources/crd-list.tsx index 3008ca175e..03daccf0e7 100644 --- a/packages/core/src/renderer/components/custom-resources/crd-list.tsx +++ b/packages/core/src/renderer/components/custom-resources/crd-list.tsx @@ -12,7 +12,7 @@ import { Link } from "react-router-dom"; import { iter, stopPropagation } from "@k8slens/utilities"; import { KubeObjectListLayout } from "../kube-object-list-layout"; import { Select } from "../select"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { KubeObjectAge } from "../kube-object/age"; import { TabLayout } from "../layout/tab-layout-2"; import type { PageParam } from "../../navigation/page-param"; diff --git a/packages/core/src/renderer/components/custom-resources/custom-resource-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/custom-resources/custom-resource-sidebar-items.injectable.tsx index 973a0756e6..47746eedec 100644 --- a/packages/core/src/renderer/components/custom-resources/custom-resource-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/custom-resources/custom-resource-sidebar-items.injectable.tsx @@ -7,7 +7,7 @@ import { noop } from "lodash/fp"; import { computed } from "mobx"; import type { SidebarItemRegistration } from "../layout/sidebar-items.injectable"; import { sidebarItemsInjectionToken } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import crdListRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/crd-list/crd-list-route.injectable"; import sidebarItemsForDefinitionGroupsInjectable from "./sidebar-items-for-definition-groups.injectable"; diff --git a/packages/core/src/renderer/components/delete-cluster-dialog/view.tsx b/packages/core/src/renderer/components/delete-cluster-dialog/view.tsx index 6b781adde6..0625692777 100644 --- a/packages/core/src/renderer/components/delete-cluster-dialog/view.tsx +++ b/packages/core/src/renderer/components/delete-cluster-dialog/view.tsx @@ -12,7 +12,7 @@ import React from "react"; import { Button } from "@k8slens/button"; import type { ShowNotification } from "../notifications"; import { Dialog } from "../dialog"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Select } from "../select"; import { Checkbox } from "../checkbox"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/dialog/logs-dialog.tsx b/packages/core/src/renderer/components/dialog/logs-dialog.tsx index 22edddabb7..c3e1ffd55f 100644 --- a/packages/core/src/renderer/components/dialog/logs-dialog.tsx +++ b/packages/core/src/renderer/components/dialog/logs-dialog.tsx @@ -11,7 +11,7 @@ import { Dialog } from "../dialog"; import { Wizard, WizardStep } from "../wizard"; import type { ShowNotification } from "../notifications"; import { Button } from "@k8slens/button"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { clipboard } from "electron"; import { kebabCase } from "lodash/fp"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/dock/dock-tab.tsx b/packages/core/src/renderer/components/dock/dock-tab.tsx index 715602da43..79f5296658 100644 --- a/packages/core/src/renderer/components/dock/dock-tab.tsx +++ b/packages/core/src/renderer/components/dock/dock-tab.tsx @@ -12,7 +12,7 @@ import { cssNames, prevDefault, isMiddleClick } from "@k8slens/utilities"; import type { DockStore, DockTab as DockTabModel } from "./dock/store"; import type { TabProps } from "../tabs"; import { Tab } from "../tabs"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Menu, MenuItem } from "../menu"; import { observable } from "mobx"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/dock/dock.tsx b/packages/core/src/renderer/components/dock/dock.tsx index 953a91c088..3eae3be4b9 100644 --- a/packages/core/src/renderer/components/dock/dock.tsx +++ b/packages/core/src/renderer/components/dock/dock.tsx @@ -7,7 +7,7 @@ import "./dock.scss"; import React from "react"; import { observer } from "mobx-react"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { MenuItem } from "../menu"; import { MenuActions } from "../menu/menu-actions"; import { ResizeDirection, ResizingAnchor } from "@k8slens/resizing-anchor"; diff --git a/packages/core/src/renderer/components/dock/info-panel.tsx b/packages/core/src/renderer/components/dock/info-panel.tsx index 78f473e83f..0a878e6ea3 100644 --- a/packages/core/src/renderer/components/dock/info-panel.tsx +++ b/packages/core/src/renderer/components/dock/info-panel.tsx @@ -11,7 +11,7 @@ import { disposeOnUnmount, observer } from "mobx-react"; import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { Button } from "@k8slens/button"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Spinner } from "../spinner"; import type { DockStore, TabId } from "./dock/store"; import type { ShowNotification } from "../notifications"; diff --git a/packages/core/src/renderer/components/dock/install-chart/view.tsx b/packages/core/src/renderer/components/dock/install-chart/view.tsx index ba0ca28262..09be180d3a 100644 --- a/packages/core/src/renderer/components/dock/install-chart/view.tsx +++ b/packages/core/src/renderer/components/dock/install-chart/view.tsx @@ -11,7 +11,7 @@ import { InfoPanel } from "../info-panel"; import { Badge } from "../../badge"; import { NamespaceSelect } from "../../namespaces/namespace-select"; import { prevDefault } from "@k8slens/utilities"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { Button } from "@k8slens/button"; import { LogsDialog } from "../../dialog/logs-dialog"; import { Select } from "../../select"; diff --git a/packages/core/src/renderer/components/dock/logs/download-logs-dropdown.tsx b/packages/core/src/renderer/components/dock/logs/download-logs-dropdown.tsx index d2082927fb..cb9f7eb635 100644 --- a/packages/core/src/renderer/components/dock/logs/download-logs-dropdown.tsx +++ b/packages/core/src/renderer/components/dock/logs/download-logs-dropdown.tsx @@ -6,7 +6,7 @@ import styles from "./download-logs-dropdown.module.scss"; import React, { useState } from "react"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { MenuItem } from "../../menu"; import { Dropdown } from "../../dropdown/dropdown"; diff --git a/packages/core/src/renderer/components/dock/logs/search.tsx b/packages/core/src/renderer/components/dock/logs/search.tsx index 892874c53a..02e7cf503a 100644 --- a/packages/core/src/renderer/components/dock/logs/search.tsx +++ b/packages/core/src/renderer/components/dock/logs/search.tsx @@ -8,7 +8,7 @@ import "./search.scss"; import React, { useEffect } from "react"; import { observer } from "mobx-react"; import { SearchInput } from "../../input"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import type { LogTabViewModel } from "./logs-view-model"; export interface PodLogSearchProps { diff --git a/packages/core/src/renderer/components/dock/logs/to-bottom.tsx b/packages/core/src/renderer/components/dock/logs/to-bottom.tsx index f9b5cbb03e..a58ba6b8db 100644 --- a/packages/core/src/renderer/components/dock/logs/to-bottom.tsx +++ b/packages/core/src/renderer/components/dock/logs/to-bottom.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import React from "react"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; export function ToBottom({ onClick }: { onClick: () => void }) { return ( diff --git a/packages/core/src/renderer/components/dock/terminal/dock-tab.tsx b/packages/core/src/renderer/components/dock/terminal/dock-tab.tsx index 960e0c1bad..e11741d393 100644 --- a/packages/core/src/renderer/components/dock/terminal/dock-tab.tsx +++ b/packages/core/src/renderer/components/dock/terminal/dock-tab.tsx @@ -9,7 +9,7 @@ import { disposeOnUnmount, observer } from "mobx-react"; import { cssNames } from "@k8slens/utilities"; import type { DockTabProps } from "../dock-tab"; import { DockTab } from "../dock-tab"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import type { TerminalStore } from "./store"; import type { DockStore } from "../dock/store"; import { reaction } from "mobx"; diff --git a/packages/core/src/renderer/components/drawer/drawer-param-toggler.tsx b/packages/core/src/renderer/components/drawer/drawer-param-toggler.tsx index 0c7948a1ea..98983c4f67 100644 --- a/packages/core/src/renderer/components/drawer/drawer-param-toggler.tsx +++ b/packages/core/src/renderer/components/drawer/drawer-param-toggler.tsx @@ -5,7 +5,7 @@ import "./drawer-param-toggler.scss"; import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; diff --git a/packages/core/src/renderer/components/drawer/drawer.tsx b/packages/core/src/renderer/components/drawer/drawer.tsx index 54843e1533..6a42d1803a 100644 --- a/packages/core/src/renderer/components/drawer/drawer.tsx +++ b/packages/core/src/renderer/components/drawer/drawer.tsx @@ -10,7 +10,7 @@ import { clipboard } from "electron"; import { createPortal } from "react-dom"; import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames, noop } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { AnimateName } from "../animate"; import { Animate } from "../animate"; import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "@k8slens/resizing-anchor"; diff --git a/packages/core/src/renderer/components/editable-list/editable-list.tsx b/packages/core/src/renderer/components/editable-list/editable-list.tsx index 47ff524de6..a6e2cea15f 100644 --- a/packages/core/src/renderer/components/editable-list/editable-list.tsx +++ b/packages/core/src/renderer/components/editable-list/editable-list.tsx @@ -8,7 +8,7 @@ import "./editable-list.scss"; import { observer } from "mobx-react"; import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { InputProps, InputValidator } from "../input"; import { Input } from "../input"; import type { StrictReactNode, SingleOrMany } from "@k8slens/utilities"; diff --git a/packages/core/src/renderer/components/events/events-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/events/events-sidebar-items.injectable.tsx index 02d965c854..69283e8016 100644 --- a/packages/core/src/renderer/components/events/events-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/events/events-sidebar-items.injectable.tsx @@ -10,7 +10,7 @@ import type { import { sidebarItemsInjectionToken, } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import eventsRouteInjectable from "../../../common/front-end-routing/routes/cluster/events/events-route.injectable"; import routeIsActiveInjectable from "../../routes/route-is-active.injectable"; diff --git a/packages/core/src/renderer/components/events/events.tsx b/packages/core/src/renderer/components/events/events.tsx index e59bea2168..118cea54a3 100644 --- a/packages/core/src/renderer/components/events/events.tsx +++ b/packages/core/src/renderer/components/events/events.tsx @@ -20,7 +20,7 @@ import { Tooltip } from "@k8slens/tooltip"; import { Link } from "react-router-dom"; import type { IClassName } from "@k8slens/utilities"; import { cssNames, stopPropagation } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { ApiManager } from "../../../common/k8s-api/api-manager"; import { withInjectables } from "@ogre-tools/injectable-react"; import navigateToEventsInjectable from "../../../common/front-end-routing/routes/cluster/events/navigate-to-events.injectable"; diff --git a/packages/core/src/renderer/components/events/kube-event-icon.tsx b/packages/core/src/renderer/components/events/kube-event-icon.tsx index 76432de753..2bd2240d0f 100644 --- a/packages/core/src/renderer/components/events/kube-event-icon.tsx +++ b/packages/core/src/renderer/components/events/kube-event-icon.tsx @@ -6,7 +6,7 @@ import "./kube-event-icon.scss"; import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { KubeObject, KubeEvent } from "@k8slens/kube-object"; import { cssNames } from "@k8slens/utilities"; import { KubeObjectAge } from "../kube-object/age"; diff --git a/packages/core/src/renderer/components/extensions/install.tsx b/packages/core/src/renderer/components/extensions/install.tsx index 946a0572fa..33da078986 100644 --- a/packages/core/src/renderer/components/extensions/install.tsx +++ b/packages/core/src/renderer/components/extensions/install.tsx @@ -7,7 +7,7 @@ import styles from "./install.module.scss"; import React, { useEffect, useRef, useState } from "react"; import { prevDefault } from "@k8slens/utilities"; import { Button } from "@k8slens/button"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { observer } from "mobx-react"; import { Input, InputValidators } from "../input"; import { SubTitle } from "../layout/sub-title"; diff --git a/packages/core/src/renderer/components/extensions/installed-extensions.tsx b/packages/core/src/renderer/components/extensions/installed-extensions.tsx index 62c40b253a..ed188dce6e 100644 --- a/packages/core/src/renderer/components/extensions/installed-extensions.tsx +++ b/packages/core/src/renderer/components/extensions/installed-extensions.tsx @@ -5,7 +5,7 @@ import styles from "./installed-extensions.module.scss"; import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { List } from "../list/list"; import { MenuActions, MenuItem } from "../menu"; import { Spinner } from "../spinner"; diff --git a/packages/core/src/renderer/components/file-picker/file-picker.tsx b/packages/core/src/renderer/components/file-picker/file-picker.tsx index 6cbadb9a72..9bc44f1f21 100644 --- a/packages/core/src/renderer/components/file-picker/file-picker.tsx +++ b/packages/core/src/renderer/components/file-picker/file-picker.tsx @@ -8,7 +8,7 @@ import "./file-picker.scss"; import React from "react"; import fse from "fs-extra"; import path from "path"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Spinner } from "../spinner"; import { observable, makeObservable } from "mobx"; import { observer } from "mobx-react"; diff --git a/packages/core/src/renderer/components/helm-releases/release-menu.tsx b/packages/core/src/renderer/components/helm-releases/release-menu.tsx index be40e59b11..51a2d903af 100644 --- a/packages/core/src/renderer/components/helm-releases/release-menu.tsx +++ b/packages/core/src/renderer/components/helm-releases/release-menu.tsx @@ -9,7 +9,7 @@ import { cssNames } from "@k8slens/utilities"; import type { MenuActionsProps } from "../menu/menu-actions"; import { MenuActions } from "../menu/menu-actions"; import { MenuItem } from "../menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import createUpgradeChartTabInjectable from "../dock/upgrade-chart/create-upgrade-chart-tab.injectable"; import deleteReleaseInjectable from "./delete-release/delete-release.injectable"; diff --git a/packages/core/src/renderer/components/helm/helm-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/helm/helm-sidebar-items.injectable.tsx index c7085b382a..fa82bad5d6 100644 --- a/packages/core/src/renderer/components/helm/helm-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/helm/helm-sidebar-items.injectable.tsx @@ -10,7 +10,7 @@ import type { import { sidebarItemsInjectionToken, } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { noop } from "lodash/fp"; export const helmSidebarItemId = "helm"; diff --git a/packages/core/src/renderer/components/hotbar/hotbar-entity-icon.tsx b/packages/core/src/renderer/components/hotbar/hotbar-entity-icon.tsx index 0a1987e576..1d61f78a57 100644 --- a/packages/core/src/renderer/components/hotbar/hotbar-entity-icon.tsx +++ b/packages/core/src/renderer/components/hotbar/hotbar-entity-icon.tsx @@ -13,7 +13,7 @@ import { observer } from "mobx-react"; import type { CatalogCategoryRegistry, CatalogEntity, CatalogEntityContextMenu } from "../../../common/catalog"; import type { IClassName } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { HotbarIcon } from "./hotbar-icon"; import { LensKubernetesClusterStatus } from "../../../common/catalog-entities/kubernetes-cluster"; import type { VisitEntityContextMenu } from "../../../common/catalog/visit-entity-context-menu.injectable"; diff --git a/packages/core/src/renderer/components/hotbar/hotbar-icon.tsx b/packages/core/src/renderer/components/hotbar/hotbar-icon.tsx index 2f9ffdd0e6..7a69786ea4 100644 --- a/packages/core/src/renderer/components/hotbar/hotbar-icon.tsx +++ b/packages/core/src/renderer/components/hotbar/hotbar-icon.tsx @@ -13,7 +13,7 @@ import { Menu, MenuItem } from "../menu"; import { observer } from "mobx-react"; import type { AvatarProps } from "../avatar"; import { Avatar } from "../avatar"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Tooltip } from "@k8slens/tooltip"; import type { NormalizeCatalogEntityContextMenu } from "../../catalog/normalize-menu-item.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/hotbar/hotbar-selector.tsx b/packages/core/src/renderer/components/hotbar/hotbar-selector.tsx index eb91653038..f1666e6eba 100644 --- a/packages/core/src/renderer/components/hotbar/hotbar-selector.tsx +++ b/packages/core/src/renderer/components/hotbar/hotbar-selector.tsx @@ -5,7 +5,7 @@ import styles from "./hotbar-selector.module.scss"; import React, { useRef, useState } from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Badge } from "../badge"; import { HotbarSwitchCommand } from "./hotbar-switch-command"; import { Tooltip, TooltipPosition } from "@k8slens/tooltip"; diff --git a/packages/core/src/renderer/components/icon/index.ts b/packages/core/src/renderer/components/icon/index.ts deleted file mode 100644 index 7b7999604d..0000000000 --- a/packages/core/src/renderer/components/icon/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -export * from "./icon"; diff --git a/packages/core/src/renderer/components/input/input.tsx b/packages/core/src/renderer/components/input/input.tsx index cc63ca9f9a..bd6c6be80b 100644 --- a/packages/core/src/renderer/components/input/input.tsx +++ b/packages/core/src/renderer/components/input/input.tsx @@ -9,7 +9,7 @@ import type { DOMAttributes, InputHTMLAttributes, TextareaHTMLAttributes } from import React from "react"; import type { StrictReactNode, SingleOrMany } from "@k8slens/utilities"; import { debouncePromise, isPromiseSettledFulfilled, cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { TooltipProps } from "@k8slens/tooltip"; import { Tooltip } from "@k8slens/tooltip"; import * as Validators from "./input_validators"; diff --git a/packages/core/src/renderer/components/input/search-input.tsx b/packages/core/src/renderer/components/input/search-input.tsx index d0365ba5e9..bf1bfe95fe 100644 --- a/packages/core/src/renderer/components/input/search-input.tsx +++ b/packages/core/src/renderer/components/input/search-input.tsx @@ -8,7 +8,7 @@ import "./search-input.scss"; import React, { createRef } from "react"; import { observer } from "mobx-react"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { InputProps } from "./input"; import { Input } from "./input"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/item-object-list/filter-icon.tsx b/packages/core/src/renderer/components/item-object-list/filter-icon.tsx index 7944140922..cd3e10cc0d 100644 --- a/packages/core/src/renderer/components/item-object-list/filter-icon.tsx +++ b/packages/core/src/renderer/components/item-object-list/filter-icon.tsx @@ -4,8 +4,8 @@ */ import React from "react"; -import type { IconProps } from "../icon"; -import { Icon } from "../icon"; +import type { IconProps } from "@k8slens/icon"; +import { Icon } from "@k8slens/icon"; import { FilterType } from "./page-filters/store"; export interface FilterIconProps extends Partial { diff --git a/packages/core/src/renderer/components/item-object-list/page-filters/list.tsx b/packages/core/src/renderer/components/item-object-list/page-filters/list.tsx index 51590adb23..6affaf943a 100644 --- a/packages/core/src/renderer/components/item-object-list/page-filters/list.tsx +++ b/packages/core/src/renderer/components/item-object-list/page-filters/list.tsx @@ -10,7 +10,7 @@ import { Badge } from "../../badge"; import { cssNames } from "@k8slens/utilities"; import type { Filter, PageFiltersStore } from "./store"; import { FilterIcon } from "../filter-icon"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import type { PageParam } from "../../../navigation/page-param"; import { withInjectables } from "@ogre-tools/injectable-react"; import pageFiltersStoreInjectable from "./store.injectable"; diff --git a/packages/core/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx b/packages/core/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx index ec88303fd5..9280d55ac8 100644 --- a/packages/core/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx +++ b/packages/core/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx @@ -16,7 +16,7 @@ import { ItemListLayout } from "../item-object-list/list-layout"; import { KubeObjectMenu } from "../kube-object-menu"; import { NamespaceSelectFilter } from "../namespaces/namespace-select-filter"; import { ResourceKindMap, ResourceNames } from "../../utils/rbac"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { TooltipPosition } from "@k8slens/tooltip"; import { withInjectables } from "@ogre-tools/injectable-react"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; diff --git a/packages/core/src/renderer/components/kube-object-menu/kube-object-menu.tsx b/packages/core/src/renderer/components/kube-object-menu/kube-object-menu.tsx index 423d8acb33..beadb281df 100644 --- a/packages/core/src/renderer/components/kube-object-menu/kube-object-menu.tsx +++ b/packages/core/src/renderer/components/kube-object-menu/kube-object-menu.tsx @@ -24,7 +24,7 @@ import type { IComputedValue } from "mobx"; import { observable, runInAction } from "mobx"; import type { WithConfirmation } from "../confirm-dialog/with-confirm.injectable"; import type { Navigate } from "../../navigation/navigate.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import navigateInjectable from "../../navigation/navigate.injectable"; import withConfirmationInjectable from "../confirm-dialog/with-confirm.injectable"; import { observer } from "mobx-react"; diff --git a/packages/core/src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx b/packages/core/src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx index 6a05764124..14f6cb5908 100644 --- a/packages/core/src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx +++ b/packages/core/src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx @@ -6,7 +6,7 @@ import "./kube-object-status-icon.scss"; import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { cssNames, formatDuration, getOrInsert, isDefined } from "@k8slens/utilities"; import { withInjectables } from "@ogre-tools/injectable-react"; import kubeObjectStatusTextsForObjectInjectable from "./kube-object-status-texts-for-object.injectable"; diff --git a/packages/core/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx b/packages/core/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx index e6d6030cce..2e2956ab27 100644 --- a/packages/core/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx +++ b/packages/core/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx @@ -12,7 +12,7 @@ import { cssNames } from "@k8slens/utilities"; import { Button } from "@k8slens/button"; import type { DialogProps } from "../dialog"; import { Dialog } from "../dialog"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { ShowNotification } from "../notifications"; import { Wizard, WizardStep } from "../wizard"; import { MonacoEditor } from "../monaco-editor"; diff --git a/packages/core/src/renderer/components/layout/close-button.tsx b/packages/core/src/renderer/components/layout/close-button.tsx index 6d0d8219a6..9fc80fe5f5 100644 --- a/packages/core/src/renderer/components/layout/close-button.tsx +++ b/packages/core/src/renderer/components/layout/close-button.tsx @@ -7,7 +7,7 @@ import styles from "./close-button.module.scss"; import type { HTMLAttributes } from "react"; import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; export interface CloseButtonProps extends HTMLAttributes { } diff --git a/packages/core/src/renderer/components/layout/cluster-page-menu.ts b/packages/core/src/renderer/components/layout/cluster-page-menu.ts index 5504962782..c92bf16301 100644 --- a/packages/core/src/renderer/components/layout/cluster-page-menu.ts +++ b/packages/core/src/renderer/components/layout/cluster-page-menu.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { IconProps } from "../icon"; +import type { IconProps } from "@k8slens/icon"; import type React from "react"; import type { PageTarget } from "../../routes/page-registration"; import type { IComputedValue } from "mobx"; diff --git a/packages/core/src/renderer/components/layout/sidebar-cluster.tsx b/packages/core/src/renderer/components/layout/sidebar-cluster.tsx index 06adad4ea2..4bf752f844 100644 --- a/packages/core/src/renderer/components/layout/sidebar-cluster.tsx +++ b/packages/core/src/renderer/components/layout/sidebar-cluster.tsx @@ -10,7 +10,7 @@ import { broadcastMessage } from "../../../common/ipc"; import type { CatalogEntity, CatalogEntityContextMenu } from "../../api/catalog-entity"; import { IpcRendererNavigationEvents } from "../../../common/ipc/navigation-events"; import { Avatar } from "../avatar"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Menu, MenuItem } from "../menu"; import { Tooltip } from "@k8slens/tooltip"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/layout/sidebar-item.tsx b/packages/core/src/renderer/components/layout/sidebar-item.tsx index e28332dcb7..9a77453671 100644 --- a/packages/core/src/renderer/components/layout/sidebar-item.tsx +++ b/packages/core/src/renderer/components/layout/sidebar-item.tsx @@ -10,7 +10,7 @@ import { computed, makeObservable } from "mobx"; import { cssNames } from "@k8slens/utilities"; import { observer } from "mobx-react"; import { NavLink } from "react-router-dom"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { SidebarStorageState } from "./sidebar-storage/sidebar-storage.injectable"; import sidebarStorageInjectable from "./sidebar-storage/sidebar-storage.injectable"; diff --git a/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-back/navigation-to-back.tsx b/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-back/navigation-to-back.tsx index ebb4f4b620..b1cb2f93df 100644 --- a/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-back/navigation-to-back.tsx +++ b/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-back/navigation-to-back.tsx @@ -5,7 +5,7 @@ import React from "react"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { IComputedValue } from "mobx"; -import { Icon } from "../../../../icon"; +import { Icon } from "@k8slens/icon"; import topBarPrevEnabledInjectable from "./prev-enabled.injectable"; import goBackInjectable from "./go-back/go-back.injectable"; import { observer } from "mobx-react"; diff --git a/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-forward/navigation-to-forward.tsx b/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-forward/navigation-to-forward.tsx index b8c3e70095..649b328a43 100644 --- a/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-forward/navigation-to-forward.tsx +++ b/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-forward/navigation-to-forward.tsx @@ -5,7 +5,7 @@ import React from "react"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { IComputedValue } from "mobx"; -import { Icon } from "../../../../icon"; +import { Icon } from "@k8slens/icon"; import topBarNextEnabledInjectable from "./next-enabled.injectable"; import goForwardInjectable from "./go-forward/go-forward.injectable"; import { observer } from "mobx-react"; diff --git a/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-home/navigation-to-home.tsx b/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-home/navigation-to-home.tsx index 99b11807db..58223fc458 100644 --- a/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-home/navigation-to-home.tsx +++ b/packages/core/src/renderer/components/layout/top-bar/top-bar-items/navigation-to-home/navigation-to-home.tsx @@ -5,7 +5,7 @@ import React from "react"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { IComputedValue } from "mobx"; -import { Icon } from "../../../../icon"; +import { Icon } from "@k8slens/icon"; import routeIsActiveInjectable from "../../../../../routes/route-is-active.injectable"; import { observer } from "mobx-react"; import welcomeRouteInjectable from "../../../../../../common/front-end-routing/routes/welcome/welcome-route.injectable"; diff --git a/packages/core/src/renderer/components/menu/menu-actions.tsx b/packages/core/src/renderer/components/menu/menu-actions.tsx index 2aed12be71..60492482f2 100644 --- a/packages/core/src/renderer/components/menu/menu-actions.tsx +++ b/packages/core/src/renderer/components/menu/menu-actions.tsx @@ -10,8 +10,8 @@ import { observable, makeObservable, reaction } from "mobx"; import { disposeOnUnmount, observer } from "mobx-react"; import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; -import type { IconProps } from "../icon"; -import { Icon } from "../icon"; +import type { IconProps } from "@k8slens/icon"; +import { Icon } from "@k8slens/icon"; import type { MenuProps } from "./menu"; import { Menu, MenuItem } from "./menu"; import isString from "lodash/isString"; diff --git a/packages/core/src/renderer/components/menu/menu.tsx b/packages/core/src/renderer/components/menu/menu.tsx index b01d054386..213cadf78c 100644 --- a/packages/core/src/renderer/components/menu/menu.tsx +++ b/packages/core/src/renderer/components/menu/menu.tsx @@ -11,8 +11,8 @@ import { createPortal } from "react-dom"; import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames, noop } from "@k8slens/utilities"; import { Animate } from "../animate"; -import type { IconProps } from "../icon"; -import { Icon } from "../icon"; +import type { IconProps } from "@k8slens/icon"; +import { Icon } from "@k8slens/icon"; import isEqual from "lodash/isEqual"; import type { RequestAnimationFrame } from "../animate/request-animation-frame.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/namespaces/namespace-select-filter-model/namespace-select-filter-model.tsx b/packages/core/src/renderer/components/namespaces/namespace-select-filter-model/namespace-select-filter-model.tsx index ec4dfbe98e..c0ad194dfb 100644 --- a/packages/core/src/renderer/components/namespaces/namespace-select-filter-model/namespace-select-filter-model.tsx +++ b/packages/core/src/renderer/components/namespaces/namespace-select-filter-model/namespace-select-filter-model.tsx @@ -7,7 +7,7 @@ import type { IComputedValue } from "mobx"; import { observable, action, computed, comparer } from "mobx"; import type { NamespaceStore } from "../store"; import type { ActionMeta, MultiValue } from "react-select"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import type { SelectOption } from "../../select"; import { observableCrate } from "@k8slens/utilities"; import type { IsMultiSelectionKey } from "./is-selection-key.injectable"; diff --git a/packages/core/src/renderer/components/namespaces/namespace-select.tsx b/packages/core/src/renderer/components/namespaces/namespace-select.tsx index 2e2c2926b8..3c1e095d8f 100644 --- a/packages/core/src/renderer/components/namespaces/namespace-select.tsx +++ b/packages/core/src/renderer/components/namespaces/namespace-select.tsx @@ -11,7 +11,7 @@ import { observer } from "mobx-react"; import type { SelectProps } from "../select"; import { Select } from "../select"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; import type { ClusterContext } from "../../cluster-frame-context/cluster-frame-context"; diff --git a/packages/core/src/renderer/components/namespaces/namespaces-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/namespaces/namespaces-sidebar-items.injectable.tsx index 0a17b16fbd..a908e64329 100644 --- a/packages/core/src/renderer/components/namespaces/namespaces-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/namespaces/namespaces-sidebar-items.injectable.tsx @@ -9,7 +9,7 @@ import type { import { sidebarItemsInjectionToken, } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import namespacesRouteInjectable from "../../../common/front-end-routing/routes/cluster/namespaces/namespaces-route.injectable"; import routeIsActiveInjectable from "../../routes/route-is-active.injectable"; diff --git a/packages/core/src/renderer/components/network-ingresses/ingress-class-menu.injectable.tsx b/packages/core/src/renderer/components/network-ingresses/ingress-class-menu.injectable.tsx index 444a2a470c..d40baf5aa2 100644 --- a/packages/core/src/renderer/components/network-ingresses/ingress-class-menu.injectable.tsx +++ b/packages/core/src/renderer/components/network-ingresses/ingress-class-menu.injectable.tsx @@ -13,7 +13,7 @@ import { ingressClassSetDefaultInjectable } from "./ingress-class-set-default.in import { MenuItem } from "../menu"; import type { IngressClass } from "@k8slens/kube-object"; import type { KubeObjectMenuProps } from "../kube-object-menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import hideDetailsInjectable from "../kube-detail-params/hide-details.injectable"; export interface IngressClassMenuProps extends KubeObjectMenuProps { diff --git a/packages/core/src/renderer/components/network-ingresses/ingress-classes.tsx b/packages/core/src/renderer/components/network-ingresses/ingress-classes.tsx index 07805f0aed..9f7368c047 100644 --- a/packages/core/src/renderer/components/network-ingresses/ingress-classes.tsx +++ b/packages/core/src/renderer/components/network-ingresses/ingress-classes.tsx @@ -14,7 +14,7 @@ import type { IngressClassStore } from "./ingress-class-store"; import ingressClassStoreInjectable from "./ingress-class-store.injectable"; import type { IngressClass } from "@k8slens/kube-object"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; enum columnId { name = "name", diff --git a/packages/core/src/renderer/components/network-port-forwards/port-forward-menu.tsx b/packages/core/src/renderer/components/network-port-forwards/port-forward-menu.tsx index 81e15b1746..3e4fb7f298 100644 --- a/packages/core/src/renderer/components/network-port-forwards/port-forward-menu.tsx +++ b/packages/core/src/renderer/components/network-port-forwards/port-forward-menu.tsx @@ -9,7 +9,7 @@ import type { PortForwardItem, PortForwardStore } from "../../port-forward"; import type { MenuActionsProps } from "../menu/menu-actions"; import { MenuActions } from "../menu/menu-actions"; import { MenuItem } from "../menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { ShowNotification } from "../notifications"; import { withInjectables } from "@ogre-tools/injectable-react"; import portForwardDialogModelInjectable from "../../port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable"; diff --git a/packages/core/src/renderer/components/network/network-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/network/network-sidebar-items.injectable.tsx index bb6f107d9d..50e6c5d57c 100644 --- a/packages/core/src/renderer/components/network/network-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/network/network-sidebar-items.injectable.tsx @@ -9,7 +9,7 @@ import type { import { sidebarItemsInjectionToken, } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import { noop } from "lodash/fp"; diff --git a/packages/core/src/renderer/components/nodes/nodes-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/nodes/nodes-sidebar-items.injectable.tsx index 580ebd3c90..612ae63ee3 100644 --- a/packages/core/src/renderer/components/nodes/nodes-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/nodes/nodes-sidebar-items.injectable.tsx @@ -9,7 +9,7 @@ import type { import { sidebarItemsInjectionToken, } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import nodesRouteInjectable from "../../../common/front-end-routing/routes/cluster/nodes/nodes-route.injectable"; diff --git a/packages/core/src/renderer/components/notifications/notifications.tsx b/packages/core/src/renderer/components/notifications/notifications.tsx index 64874dbb50..5a581f812e 100644 --- a/packages/core/src/renderer/components/notifications/notifications.tsx +++ b/packages/core/src/renderer/components/notifications/notifications.tsx @@ -13,7 +13,7 @@ import type { Disposer } from "@k8slens/utilities"; import { cssNames, prevDefault } from "@k8slens/utilities"; import type { CreateNotificationOptions, Notification, NotificationMessage, NotificationsStore } from "./notifications.store"; import { Animate } from "../animate"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import notificationsStoreInjectable from "./notifications-store.injectable"; diff --git a/packages/core/src/renderer/components/resource-metrics/no-metrics.tsx b/packages/core/src/renderer/components/resource-metrics/no-metrics.tsx index cd69b8bbca..d1e895282d 100644 --- a/packages/core/src/renderer/components/resource-metrics/no-metrics.tsx +++ b/packages/core/src/renderer/components/resource-metrics/no-metrics.tsx @@ -4,7 +4,7 @@ */ import React from "react"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; export function NoMetrics() { return ( diff --git a/packages/core/src/renderer/components/storage/storage-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/storage/storage-sidebar-items.injectable.tsx index fe243ba729..90a96ebbd3 100644 --- a/packages/core/src/renderer/components/storage/storage-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/storage/storage-sidebar-items.injectable.tsx @@ -9,7 +9,7 @@ import type { import { sidebarItemsInjectionToken, } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import { noop } from "lodash/fp"; diff --git a/packages/core/src/renderer/components/table/react-table.tsx b/packages/core/src/renderer/components/table/react-table.tsx index 68835e1741..06911c7761 100644 --- a/packages/core/src/renderer/components/table/react-table.tsx +++ b/packages/core/src/renderer/components/table/react-table.tsx @@ -7,7 +7,7 @@ import styles from "./react-table.module.scss"; import React, { useCallback, useMemo } from "react"; import type { Row, UseTableOptions } from "react-table"; import { useFlexLayout, useSortBy, useTable } from "react-table"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { cssNames } from "@k8slens/utilities"; export interface ReactTableProps extends UseTableOptions { diff --git a/packages/core/src/renderer/components/table/table-cell.tsx b/packages/core/src/renderer/components/table/table-cell.tsx index 5794f67cbf..23625f7411 100644 --- a/packages/core/src/renderer/components/table/table-cell.tsx +++ b/packages/core/src/renderer/components/table/table-cell.tsx @@ -7,7 +7,7 @@ import "./table-cell.scss"; import React from "react"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { Checkbox } from "../checkbox"; import autoBindReact from "auto-bind/react"; import type { TableCellProps } from "@k8slens/list-layout"; diff --git a/packages/core/src/renderer/components/tabs/tabs.tsx b/packages/core/src/renderer/components/tabs/tabs.tsx index 3e3a1711c9..f0898a12c5 100644 --- a/packages/core/src/renderer/components/tabs/tabs.tsx +++ b/packages/core/src/renderer/components/tabs/tabs.tsx @@ -8,7 +8,7 @@ import type { DOMAttributes } from "react"; import React from "react"; import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import autoBindReact from "auto-bind/react"; const TabsContext = React.createContext>({}); diff --git a/packages/core/src/renderer/components/tree-view/tree-view.tsx b/packages/core/src/renderer/components/tree-view/tree-view.tsx index ec4b79b431..be56402862 100644 --- a/packages/core/src/renderer/components/tree-view/tree-view.tsx +++ b/packages/core/src/renderer/components/tree-view/tree-view.tsx @@ -8,7 +8,7 @@ import type { MouseEventHandler } from "react"; import React, { useState } from "react"; import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; export interface TreeViewClasses { root?: string; diff --git a/packages/core/src/renderer/components/user-management/cluster-role-bindings/dialog/view.tsx b/packages/core/src/renderer/components/user-management/cluster-role-bindings/dialog/view.tsx index dfc71e3d76..c65b0adda0 100644 --- a/packages/core/src/renderer/components/user-management/cluster-role-bindings/dialog/view.tsx +++ b/packages/core/src/renderer/components/user-management/cluster-role-bindings/dialog/view.tsx @@ -14,7 +14,7 @@ import type { ClusterRole, ServiceAccount, Subject } from "@k8slens/kube-object" import type { DialogProps } from "../../../dialog"; import { Dialog } from "../../../dialog"; import { EditableList } from "../../../editable-list"; -import { Icon } from "../../../icon"; +import { Icon } from "@k8slens/icon"; import { SubTitle } from "../../../layout/sub-title"; import { onMultiSelectFor, Select } from "../../../select"; import { Wizard, WizardStep } from "../../../wizard"; diff --git a/packages/core/src/renderer/components/user-management/role-bindings/dialog/view.tsx b/packages/core/src/renderer/components/user-management/role-bindings/dialog/view.tsx index 92374feba7..1a52e48f51 100644 --- a/packages/core/src/renderer/components/user-management/role-bindings/dialog/view.tsx +++ b/packages/core/src/renderer/components/user-management/role-bindings/dialog/view.tsx @@ -14,7 +14,7 @@ import type { ClusterRole, Role, ServiceAccount, Subject } from "@k8slens/kube-o import type { DialogProps } from "../../../dialog"; import { Dialog } from "../../../dialog"; import { EditableList } from "../../../editable-list"; -import { Icon } from "../../../icon"; +import { Icon } from "@k8slens/icon"; import { SubTitle } from "../../../layout/sub-title"; import type { SelectOption } from "../../../select"; import { onMultiSelectFor, Select } from "../../../select"; diff --git a/packages/core/src/renderer/components/user-management/service-accounts/details.tsx b/packages/core/src/renderer/components/user-management/service-accounts/details.tsx index b792cad576..8a929d8e38 100644 --- a/packages/core/src/renderer/components/user-management/service-accounts/details.tsx +++ b/packages/core/src/renderer/components/user-management/service-accounts/details.tsx @@ -12,7 +12,7 @@ import { Link } from "react-router-dom"; import type { Secret, ServiceAccount } from "@k8slens/kube-object"; import { DrawerItem, DrawerTitle } from "../../drawer"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import type { KubeObjectDetailsProps } from "../../kube-object-details"; import { Spinner } from "../../spinner"; import { ServiceAccountsSecret } from "./secret"; diff --git a/packages/core/src/renderer/components/user-management/service-accounts/secret.tsx b/packages/core/src/renderer/components/user-management/service-accounts/secret.tsx index 0a4aed7903..f35cb57062 100644 --- a/packages/core/src/renderer/components/user-management/service-accounts/secret.tsx +++ b/packages/core/src/renderer/components/user-management/service-accounts/secret.tsx @@ -11,7 +11,7 @@ import React from "react"; import type { Secret } from "@k8slens/kube-object"; import type { StrictReactNode } from "@k8slens/utilities"; import { prevDefault } from "@k8slens/utilities"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; export interface ServiceAccountsSecretProps { secret: Secret | string; diff --git a/packages/core/src/renderer/components/user-management/service-accounts/service-account-menu.tsx b/packages/core/src/renderer/components/user-management/service-accounts/service-account-menu.tsx index 572915ea5a..3a79aaeb36 100644 --- a/packages/core/src/renderer/components/user-management/service-accounts/service-account-menu.tsx +++ b/packages/core/src/renderer/components/user-management/service-accounts/service-account-menu.tsx @@ -7,7 +7,7 @@ import React from "react"; import type { KubeObjectMenuProps } from "../../kube-object-menu"; import type { ServiceAccount } from "@k8slens/kube-object"; import { MenuItem } from "../../menu"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import type { OpenServiceAccountKubeConfigDialog } from "../../kubeconfig-dialog/open-service-account-kube-config-dialog.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import openServiceAccountKubeConfigDialogInjectable from "../../kubeconfig-dialog/open-service-account-kube-config-dialog.injectable"; diff --git a/packages/core/src/renderer/components/user-management/user-management-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/user-management/user-management-sidebar-items.injectable.tsx index 5a14bd083b..30baf59e3c 100644 --- a/packages/core/src/renderer/components/user-management/user-management-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/user-management/user-management-sidebar-items.injectable.tsx @@ -9,7 +9,7 @@ import type { import { sidebarItemsInjectionToken, } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import { noop } from "lodash/fp"; diff --git a/packages/core/src/renderer/components/welcome/welcome.tsx b/packages/core/src/renderer/components/welcome/welcome.tsx index 570bd5bb13..b9562da898 100644 --- a/packages/core/src/renderer/components/welcome/welcome.tsx +++ b/packages/core/src/renderer/components/welcome/welcome.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import type { IComputedValue } from "mobx"; import type { CarouselProps } from "react-material-ui-carousel"; import LegacyCarousel from "react-material-ui-carousel"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { forumsUrl } from "../../../common/vars"; import { withInjectables } from "@ogre-tools/injectable-react"; import welcomeMenuItemsInjectable from "./welcome-menu-items/welcome-menu-items.injectable"; diff --git a/packages/core/src/renderer/components/workloads-cronjobs/cron-job-menu.tsx b/packages/core/src/renderer/components/workloads-cronjobs/cron-job-menu.tsx index a298277cca..e03123e0a3 100644 --- a/packages/core/src/renderer/components/workloads-cronjobs/cron-job-menu.tsx +++ b/packages/core/src/renderer/components/workloads-cronjobs/cron-job-menu.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { KubeObjectMenuProps } from "../kube-object-menu"; import type { CronJob } from "@k8slens/kube-object"; import { MenuItem } from "../menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { OpenConfirmDialog } from "../confirm-dialog/open.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import openConfirmDialogInjectable from "../confirm-dialog/open.injectable"; diff --git a/packages/core/src/renderer/components/workloads-daemonsets/daemonset-menu.tsx b/packages/core/src/renderer/components/workloads-daemonsets/daemonset-menu.tsx index fbe03b1c58..c2f4b77b6b 100644 --- a/packages/core/src/renderer/components/workloads-daemonsets/daemonset-menu.tsx +++ b/packages/core/src/renderer/components/workloads-daemonsets/daemonset-menu.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { KubeObjectMenuProps } from "../kube-object-menu"; import type { DaemonSet } from "@k8slens/kube-object"; import { MenuItem } from "../menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import daemonSetApiInjectable from "../../../common/k8s-api/endpoints/daemon-set.api.injectable"; import type { OpenConfirmDialog } from "../confirm-dialog/open.injectable"; diff --git a/packages/core/src/renderer/components/workloads-deployments/deployment-menu.tsx b/packages/core/src/renderer/components/workloads-deployments/deployment-menu.tsx index 3110321b42..b8af261972 100644 --- a/packages/core/src/renderer/components/workloads-deployments/deployment-menu.tsx +++ b/packages/core/src/renderer/components/workloads-deployments/deployment-menu.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { KubeObjectMenuProps } from "../kube-object-menu"; import type { Deployment } from "@k8slens/kube-object"; import { MenuItem } from "../menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import type { OpenDeploymentScaleDialog } from "./scale/open.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import deploymentApiInjectable from "../../../common/k8s-api/endpoints/deployment.api.injectable"; diff --git a/packages/core/src/renderer/components/workloads-deployments/scale/dialog.tsx b/packages/core/src/renderer/components/workloads-deployments/scale/dialog.tsx index 8a43aeb4c7..51485e92f5 100644 --- a/packages/core/src/renderer/components/workloads-deployments/scale/dialog.tsx +++ b/packages/core/src/renderer/components/workloads-deployments/scale/dialog.tsx @@ -13,7 +13,7 @@ import type { DialogProps } from "../../dialog"; import { Dialog } from "../../dialog"; import { Wizard, WizardStep } from "../../wizard"; import type { Deployment } from "@k8slens/kube-object"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { Slider } from "../../slider"; import { cssNames } from "@k8slens/utilities"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/workloads-overview/overview.tsx b/packages/core/src/renderer/components/workloads-overview/overview.tsx index 42b5e049ad..3ea0a8c2d7 100644 --- a/packages/core/src/renderer/components/workloads-overview/overview.tsx +++ b/packages/core/src/renderer/components/workloads-overview/overview.tsx @@ -14,7 +14,7 @@ import type { CronJobStore } from "../workloads-cronjobs/store"; import type { IComputedValue } from "mobx"; import { makeObservable, observable, reaction } from "mobx"; import { NamespaceSelectFilter } from "../namespaces/namespace-select-filter"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { TooltipPosition } from "@k8slens/tooltip"; import { withInjectables } from "@ogre-tools/injectable-react"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variant.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variant.tsx index 41f5da0412..054206f23c 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variant.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variant.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { Pod, PodSpecVolume, PodVolumeKind } from "@k8slens/kube-object"; import { DrawerItem } from "../../../drawer"; -import { Icon } from "../../../icon"; +import { Icon } from "@k8slens/icon"; import { AwsElasticBlockStore } from "./variants/aws-elastic-block-store"; import { AzureDisk } from "./variants/azure-disk"; import { AzureFile } from "./variants/azure-file"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/view.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/view.tsx index ae665ac8af..763b235a1c 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/view.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/view.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import React from "react"; import type { Pod } from "@k8slens/kube-object"; import { DrawerTitle } from "../../../drawer"; -import { Icon } from "../../../icon"; +import { Icon } from "@k8slens/icon"; import { VolumeVariant } from "./variant"; export interface PodVolumesProps { diff --git a/packages/core/src/renderer/components/workloads-pods/secret-key.tsx b/packages/core/src/renderer/components/workloads-pods/secret-key.tsx index 3894709c76..e754952b23 100644 --- a/packages/core/src/renderer/components/workloads-pods/secret-key.tsx +++ b/packages/core/src/renderer/components/workloads-pods/secret-key.tsx @@ -4,7 +4,7 @@ */ import React, { useState } from "react"; import type { EnvVarKeySelector } from "@k8slens/kube-object"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { base64, cssNames, isObject } from "@k8slens/utilities"; import type { SecretStore } from "../config-secrets/store"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/workloads-replicasets/replica-set-menu.tsx b/packages/core/src/renderer/components/workloads-replicasets/replica-set-menu.tsx index 5419a07dd3..3f12d2a6e1 100644 --- a/packages/core/src/renderer/components/workloads-replicasets/replica-set-menu.tsx +++ b/packages/core/src/renderer/components/workloads-replicasets/replica-set-menu.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { KubeObjectMenuProps } from "../kube-object-menu"; import type { ReplicaSet } from "@k8slens/kube-object"; import { MenuItem } from "../menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { OpenReplicaSetScaleDialog } from "./scale-dialog/open.injectable"; import openReplicaSetScaleDialogInjectable from "./scale-dialog/open.injectable"; diff --git a/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.tsx b/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.tsx index 1d5f7f0495..9a01a617ca 100644 --- a/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.tsx +++ b/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.tsx @@ -12,7 +12,7 @@ import { observer } from "mobx-react"; import type { DialogProps } from "../../dialog"; import { Dialog } from "../../dialog"; import { Wizard, WizardStep } from "../../wizard"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { Slider } from "../../slider"; import { cssNames } from "@k8slens/utilities"; import type { ReplicaSet } from "@k8slens/kube-object"; diff --git a/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.tsx b/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.tsx index b357319518..0f153d685f 100644 --- a/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.tsx +++ b/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.tsx @@ -13,7 +13,7 @@ import { observer } from "mobx-react"; import type { DialogProps } from "../../dialog"; import { Dialog } from "../../dialog"; import { Wizard, WizardStep } from "../../wizard"; -import { Icon } from "../../icon"; +import { Icon } from "@k8slens/icon"; import { Slider } from "../../slider"; import { cssNames } from "@k8slens/utilities"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/workloads-statefulsets/statefulset-menu.tsx b/packages/core/src/renderer/components/workloads-statefulsets/statefulset-menu.tsx index e0f78610d2..8d13696092 100644 --- a/packages/core/src/renderer/components/workloads-statefulsets/statefulset-menu.tsx +++ b/packages/core/src/renderer/components/workloads-statefulsets/statefulset-menu.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { KubeObjectMenuProps } from "../kube-object-menu"; import type { StatefulSet } from "@k8slens/kube-object"; import { MenuItem } from "../menu"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; import statefulSetApiInjectable from "../../../common/k8s-api/endpoints/stateful-set.api.injectable"; import type { OpenConfirmDialog } from "../confirm-dialog/open.injectable"; diff --git a/packages/core/src/renderer/components/workloads/workloads-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/workloads/workloads-sidebar-items.injectable.tsx index 933dced46a..ba34302f9e 100644 --- a/packages/core/src/renderer/components/workloads/workloads-sidebar-items.injectable.tsx +++ b/packages/core/src/renderer/components/workloads/workloads-sidebar-items.injectable.tsx @@ -9,7 +9,7 @@ import type { import { sidebarItemsInjectionToken, } from "../layout/sidebar-items.injectable"; -import { Icon } from "../icon"; +import { Icon } from "@k8slens/icon"; import React from "react"; import { noop } from "lodash/fp"; diff --git a/packages/core/src/renderer/kube-object/handler.ts b/packages/core/src/renderer/kube-object/handler.ts index 7130dda2f0..9afbbd5655 100644 --- a/packages/core/src/renderer/kube-object/handler.ts +++ b/packages/core/src/renderer/kube-object/handler.ts @@ -7,7 +7,7 @@ import { getInjectionToken } from "@ogre-tools/injectable"; import type { IObservableArray } from "mobx"; import type { RequireAtLeastOne } from "type-fest"; import type { KubeObject } from "@k8slens/kube-object"; -import type { BaseIconProps } from "../components/icon"; +import type { BaseIconProps } from "@k8slens/icon"; export interface KubeObjectContextMenuItem { id?: string; diff --git a/packages/infrastructure/jest/monorepo-package-config.js b/packages/infrastructure/jest/monorepo-package-config.js index 17b24ba342..87e0085670 100644 --- a/packages/infrastructure/jest/monorepo-package-config.js +++ b/packages/infrastructure/jest/monorepo-package-config.js @@ -46,6 +46,7 @@ module.exports = (rootDir) => { ...shared, moduleNameMapper: { + "\\.(jpg|jpeg|png|gif|webp|svg)$": "identity-obj-proxy", "\\.(css|scss)$": "identity-obj-proxy", ...shared.moduleNameMapper, }, diff --git a/packages/ui-components/error-boundary/README.md b/packages/ui-components/error-boundary/README.md index 48d5b240c9..625e4849e4 100644 --- a/packages/ui-components/error-boundary/README.md +++ b/packages/ui-components/error-boundary/README.md @@ -9,7 +9,7 @@ $ npm install @k8slens/error-boundary ``` ```typescript -import "@k8slens/error-boundary/dist/index.css"; +import "@k8slens/error-boundary/styles"; ``` ## Extendability diff --git a/packages/ui-components/icon/.eslintrc.json b/packages/ui-components/icon/.eslintrc.json new file mode 100644 index 0000000000..b15115cb69 --- /dev/null +++ b/packages/ui-components/icon/.eslintrc.json @@ -0,0 +1,6 @@ +{ + "extends": "@k8slens/eslint-config/eslint", + "parserOptions": { + "project": "./tsconfig.json" + } +} diff --git a/packages/ui-components/icon/CHANGELOG.md b/packages/ui-components/icon/CHANGELOG.md new file mode 100644 index 0000000000..420e6f23d0 --- /dev/null +++ b/packages/ui-components/icon/CHANGELOG.md @@ -0,0 +1 @@ +# Change Log diff --git a/packages/ui-components/icon/README.md b/packages/ui-components/icon/README.md new file mode 100644 index 0000000000..99bbe108e7 --- /dev/null +++ b/packages/ui-components/icon/README.md @@ -0,0 +1,19 @@ +# @k8slens/error-boundary + +This package contains stuff related to creating Lens-applications. + +# Usage + +```bash +$ npm install @k8slens/icon +``` + +```typescript +import "@k8slens/icon/styles"; + +import type { BaseIconProps } from "@k8slens/icon"; +import type { IconProps } from "@k8slens/icon"; +import { Icon } from "@k8slens/icon"; +``` + +## Extendability diff --git a/packages/core/src/renderer/components/icon/arrow-spinner.svg b/packages/ui-components/icon/assets/arrow-spinner.svg similarity index 100% rename from packages/core/src/renderer/components/icon/arrow-spinner.svg rename to packages/ui-components/icon/assets/arrow-spinner.svg diff --git a/packages/core/src/renderer/components/icon/configuration.svg b/packages/ui-components/icon/assets/configuration.svg similarity index 100% rename from packages/core/src/renderer/components/icon/configuration.svg rename to packages/ui-components/icon/assets/configuration.svg diff --git a/packages/core/src/renderer/components/icon/crane.svg b/packages/ui-components/icon/assets/crane.svg similarity index 100% rename from packages/core/src/renderer/components/icon/crane.svg rename to packages/ui-components/icon/assets/crane.svg diff --git a/packages/ui-components/icon/assets/custom.d.ts b/packages/ui-components/icon/assets/custom.d.ts new file mode 100644 index 0000000000..38a7e6c626 --- /dev/null +++ b/packages/ui-components/icon/assets/custom.d.ts @@ -0,0 +1,10 @@ +declare module "*.svg" { + import * as React from "react"; + + export const ReactComponent: React.FunctionComponent< + React.SVGProps & { title?: string } + >; + + const src: string; + export default src; +} diff --git a/packages/core/src/renderer/components/icon/group.svg b/packages/ui-components/icon/assets/group.svg similarity index 100% rename from packages/core/src/renderer/components/icon/group.svg rename to packages/ui-components/icon/assets/group.svg diff --git a/packages/core/src/renderer/components/icon/helm.svg b/packages/ui-components/icon/assets/helm.svg similarity index 100% rename from packages/core/src/renderer/components/icon/helm.svg rename to packages/ui-components/icon/assets/helm.svg diff --git a/packages/core/src/renderer/components/icon/install.svg b/packages/ui-components/icon/assets/install.svg similarity index 100% rename from packages/core/src/renderer/components/icon/install.svg rename to packages/ui-components/icon/assets/install.svg diff --git a/packages/core/src/renderer/components/icon/kube.svg b/packages/ui-components/icon/assets/kube.svg similarity index 100% rename from packages/core/src/renderer/components/icon/kube.svg rename to packages/ui-components/icon/assets/kube.svg diff --git a/packages/core/src/renderer/components/icon/lens-logo.svg b/packages/ui-components/icon/assets/lens-logo.svg similarity index 100% rename from packages/core/src/renderer/components/icon/lens-logo.svg rename to packages/ui-components/icon/assets/lens-logo.svg diff --git a/packages/core/src/renderer/components/icon/license.svg b/packages/ui-components/icon/assets/license.svg similarity index 100% rename from packages/core/src/renderer/components/icon/license.svg rename to packages/ui-components/icon/assets/license.svg diff --git a/packages/core/src/renderer/components/icon/logo-lens.svg b/packages/ui-components/icon/assets/logo-lens.svg similarity index 100% rename from packages/core/src/renderer/components/icon/logo-lens.svg rename to packages/ui-components/icon/assets/logo-lens.svg diff --git a/packages/core/src/renderer/components/icon/logout.svg b/packages/ui-components/icon/assets/logout.svg similarity index 100% rename from packages/core/src/renderer/components/icon/logout.svg rename to packages/ui-components/icon/assets/logout.svg diff --git a/packages/core/src/renderer/components/icon/nodes.svg b/packages/ui-components/icon/assets/nodes.svg similarity index 100% rename from packages/core/src/renderer/components/icon/nodes.svg rename to packages/ui-components/icon/assets/nodes.svg diff --git a/packages/core/src/renderer/components/icon/notice.svg b/packages/ui-components/icon/assets/notice.svg similarity index 100% rename from packages/core/src/renderer/components/icon/notice.svg rename to packages/ui-components/icon/assets/notice.svg diff --git a/packages/core/src/renderer/components/icon/push_off.svg b/packages/ui-components/icon/assets/push_off.svg similarity index 100% rename from packages/core/src/renderer/components/icon/push_off.svg rename to packages/ui-components/icon/assets/push_off.svg diff --git a/packages/core/src/renderer/components/icon/push_pin.svg b/packages/ui-components/icon/assets/push_pin.svg similarity index 100% rename from packages/core/src/renderer/components/icon/push_pin.svg rename to packages/ui-components/icon/assets/push_pin.svg diff --git a/packages/core/src/renderer/components/icon/spinner.svg b/packages/ui-components/icon/assets/spinner.svg similarity index 100% rename from packages/core/src/renderer/components/icon/spinner.svg rename to packages/ui-components/icon/assets/spinner.svg diff --git a/packages/core/src/renderer/components/icon/ssh.svg b/packages/ui-components/icon/assets/ssh.svg similarity index 100% rename from packages/core/src/renderer/components/icon/ssh.svg rename to packages/ui-components/icon/assets/ssh.svg diff --git a/packages/core/src/renderer/components/icon/storage.svg b/packages/ui-components/icon/assets/storage.svg similarity index 100% rename from packages/core/src/renderer/components/icon/storage.svg rename to packages/ui-components/icon/assets/storage.svg diff --git a/packages/core/src/renderer/components/icon/terminal.svg b/packages/ui-components/icon/assets/terminal.svg similarity index 100% rename from packages/core/src/renderer/components/icon/terminal.svg rename to packages/ui-components/icon/assets/terminal.svg diff --git a/packages/core/src/renderer/components/icon/user.svg b/packages/ui-components/icon/assets/user.svg similarity index 100% rename from packages/core/src/renderer/components/icon/user.svg rename to packages/ui-components/icon/assets/user.svg diff --git a/packages/core/src/renderer/components/icon/users.svg b/packages/ui-components/icon/assets/users.svg similarity index 100% rename from packages/core/src/renderer/components/icon/users.svg rename to packages/ui-components/icon/assets/users.svg diff --git a/packages/core/src/renderer/components/icon/wheel.svg b/packages/ui-components/icon/assets/wheel.svg similarity index 100% rename from packages/core/src/renderer/components/icon/wheel.svg rename to packages/ui-components/icon/assets/wheel.svg diff --git a/packages/core/src/renderer/components/icon/workloads.svg b/packages/ui-components/icon/assets/workloads.svg similarity index 100% rename from packages/core/src/renderer/components/icon/workloads.svg rename to packages/ui-components/icon/assets/workloads.svg diff --git a/packages/ui-components/icon/index.ts b/packages/ui-components/icon/index.ts new file mode 100644 index 0000000000..e2a8732b79 --- /dev/null +++ b/packages/ui-components/icon/index.ts @@ -0,0 +1,10 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +export type { BaseIconProps } from "./src/icon"; +export type { IconProps } from "./src/icon"; +export type { NamedSvg } from "./src/icon"; +export { isSvg } from "./src/icon"; +export { Icon } from "./src/icon"; diff --git a/packages/ui-components/icon/jest.config.js b/packages/ui-components/icon/jest.config.js new file mode 100644 index 0000000000..05ec7ecd4d --- /dev/null +++ b/packages/ui-components/icon/jest.config.js @@ -0,0 +1,3 @@ +const { configForReact } = require("@k8slens/jest").monorepoPackageConfig(__dirname); + +module.exports = configForReact; diff --git a/packages/ui-components/icon/package.json b/packages/ui-components/icon/package.json new file mode 100644 index 0000000000..2dd408b88a --- /dev/null +++ b/packages/ui-components/icon/package.json @@ -0,0 +1,66 @@ +{ + "name": "@k8slens/icon", + "private": false, + "version": "1.0.0-alpha.7", + "description": "Highly extendable icon in the Lens.", + "type": "commonjs", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lensapp/lens.git" + }, + "main": "dist/index.js", + "exports": { + ".": "./dist/index.js", + "./styles": "./dist/index.css", + "./icons/*.svg": "./assets/*.svg" + }, + "types": "dist/index.d.ts", + "author": { + "name": "OpenLens Authors", + "email": "info@k8slens.dev" + }, + "license": "MIT", + "homepage": "https://github.com/lensapp/lens", + "scripts": { + "build": "lens-webpack-build", + "lint": "lens-lint", + "lint:fix": "lens-lint --fix" + }, + "peerDependencies": { + "@k8slens/button": "^1.0.0-alpha.10", + "@k8slens/feature-core": "^6.5.0-alpha.8", + "@k8slens/logger": "^1.0.0-alpha.7", + "@k8slens/tooltip": "^1.0.0-alpha.10", + "@k8slens/routing": "^1.0.0-alpha.8", + "@k8slens/utilities": "^1.0.0-alpha.7", + "@ogre-tools/injectable": "^16.1.0", + "@ogre-tools/injectable-react": "^16.1.0", + "@ogre-tools/injectable-extension-for-auto-registration": "^16.1.0", + "auto-bind": "^4.0.0", + "dompurify": "^2.4.4", + "history": "^4.10.1", + "lodash": "^4.17.21", + "mobx": "^6.9.0", + "mobx-observable-history": "^2.0.3", + "mobx-react": "^7.6.0", + "react": "^17.0.2", + "react-router-dom": "^5.3.4", + "react-dom": "^17.0.2", + "winston": "^3.8.2" + }, + "devDependencies": { + "@async-fn/jest": "^1.6.4", + "@k8slens/eslint-config": "^6.5.0-alpha.3", + "@k8slens/react-testing-library-discovery": "^1.0.0-alpha.4", + "@k8slens/webpack": "^6.5.0-alpha.9", + "@testing-library/react": "^12.1.5", + "@testing-library/user-event": "^13.5.0" + } +} diff --git a/packages/core/src/renderer/components/icon/icon.scss b/packages/ui-components/icon/src/icon.scss similarity index 98% rename from packages/core/src/renderer/components/icon/icon.scss rename to packages/ui-components/icon/src/icon.scss index de8d6fbdf2..2c765318bc 100644 --- a/packages/core/src/renderer/components/icon/icon.scss +++ b/packages/ui-components/icon/src/icon.scss @@ -107,7 +107,7 @@ color: var(--textColorAccent); border-radius: 50%; box-sizing: content-box; - padding: $padding * 0.5; + padding: 8px * 0.5; } &.active { diff --git a/packages/core/src/renderer/components/icon/icon.test.tsx b/packages/ui-components/icon/src/icon.test.tsx similarity index 55% rename from packages/core/src/renderer/components/icon/icon.test.tsx rename to packages/ui-components/icon/src/icon.test.tsx index 6ec7db72ed..9ec30a780f 100644 --- a/packages/core/src/renderer/components/icon/icon.test.tsx +++ b/packages/ui-components/icon/src/icon.test.tsx @@ -5,18 +5,35 @@ import React from "react"; import type { Logger } from "@k8slens/logger"; -import { loggerInjectionToken } from "@k8slens/logger"; -import { getDiForUnitTesting } from "../../getDiForUnitTesting"; -import type { DiRender } from "../test-utils/renderFor"; -import { renderFor } from "../test-utils/renderFor"; +import { loggerFeature, loggerInjectionToken } from "@k8slens/logger"; +import { createContainer } from "@ogre-tools/injectable"; +import type { DiRender } from "@k8slens/test-utils"; +import { renderFor } from "@k8slens/test-utils"; import { Icon } from "./icon"; - +import { runInAction } from "mobx"; +import { registerFeature } from "@k8slens/feature-core"; +import { registerInjectableReact } from "@ogre-tools/injectable-react"; +import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; +import { setLegacyGlobalDiForExtensionApi } from "@k8slens/legacy-global-di"; describe(" href technical tests", () => { let render: DiRender; let logger: jest.MockedObject; beforeEach(() => { - const di = getDiForUnitTesting(); + const environment = "renderer"; + const di = createContainer(environment, { + detectCycles: false, + }); + + registerMobX(di); + registerInjectableReact(di); + setLegacyGlobalDiForExtensionApi(di, environment); + + runInAction(() => { + registerFeature(di, + loggerFeature, + ); + }); logger = { debug: jest.fn(), @@ -32,12 +49,9 @@ describe(" href technical tests", () => { }); it("should render an with http href", () => { - const result = render(( - - )); + const result = render( + + ); const icon = result.queryByTestId("my-icon"); @@ -47,12 +61,9 @@ describe(" href technical tests", () => { }); it("should render an with https href", () => { - const result = render(( - - )); + const result = render( + + ); const icon = result.queryByTestId("my-icon"); @@ -62,12 +73,7 @@ describe(" href technical tests", () => { }); it("should warn about ws hrefs", () => { - const result = render(( - - )); + const result = render(); const icon = result.queryByTestId("my-icon"); @@ -77,17 +83,12 @@ describe(" href technical tests", () => { }); it("should warn about javascript: hrefs", () => { - const result = render(( - - )); + const result = render(); const icon = result.queryByTestId("my-icon"); expect(icon).toBeInTheDocument(); - expect(icon).not.toHaveAttribute("href", "javascript:void 0"); + expect(icon).not.toHaveAttribute("href", "#"); expect(logger.warn).toBeCalled(); }); }); diff --git a/packages/core/src/renderer/components/icon/icon.tsx b/packages/ui-components/icon/src/icon.tsx similarity index 71% rename from packages/core/src/renderer/components/icon/icon.tsx rename to packages/ui-components/icon/src/icon.tsx index 2f06be8c5f..f3b4b70d7a 100644 --- a/packages/core/src/renderer/components/icon/icon.tsx +++ b/packages/ui-components/icon/src/icon.tsx @@ -11,28 +11,28 @@ import type { LocationDescriptor } from "history"; import { cssNames } from "@k8slens/utilities"; import { withTooltip } from "@k8slens/tooltip"; import isNumber from "lodash/isNumber"; -import Configuration from "./configuration.svg"; -import Crane from "./crane.svg"; -import Group from "./group.svg"; -import Helm from "./helm.svg"; -import Install from "./install.svg"; -import Kube from "./kube.svg"; -import LensLogo from "./lens-logo.svg"; -import License from "./license.svg"; -import LogoLens from "./logo-lens.svg"; -import Logout from "./logout.svg"; -import Nodes from "./nodes.svg"; -import PushOff from "./push_off.svg"; -import PushPin from "./push_pin.svg"; -import Spinner from "./spinner.svg"; -import Ssh from "./ssh.svg"; -import Storage from "./storage.svg"; -import Terminal from "./terminal.svg"; -import Notice from "./notice.svg"; -import User from "./user.svg"; -import Users from "./users.svg"; -import Wheel from "./wheel.svg"; -import Workloads from "./workloads.svg"; +import Configuration from "../assets/configuration.svg"; +import Crane from "../assets/crane.svg"; +import Group from "../assets/group.svg"; +import Helm from "../assets/helm.svg"; +import Install from "../assets/install.svg"; +import Kube from "../assets/kube.svg"; +import LensLogo from "../assets/lens-logo.svg"; +import License from "../assets/license.svg"; +import LogoLens from "../assets/logo-lens.svg"; +import Logout from "../assets/logout.svg"; +import Nodes from "../assets/nodes.svg"; +import PushOff from "../assets/push_off.svg"; +import PushPin from "../assets/push_pin.svg"; +import Spinner from "../assets/spinner.svg"; +import Ssh from "../assets/ssh.svg"; +import Storage from "../assets/storage.svg"; +import Terminal from "../assets/terminal.svg"; +import Notice from "../assets/notice.svg"; +import User from "../assets/user.svg"; +import Users from "../assets/users.svg"; +import Wheel from "../assets/wheel.svg"; +import Workloads from "../assets/workloads.svg"; import type { Logger } from "@k8slens/logger"; import { withInjectables } from "@ogre-tools/injectable-react"; import { loggerInjectionToken } from "@k8slens/logger"; @@ -97,7 +97,7 @@ export type NamedSvg = | "workloads"; export interface BaseIconProps { - /** + /** * One of the names from https://material.io/icons/ */ material?: string; @@ -164,6 +164,7 @@ export interface IconProps extends React.HTMLAttributes, BaseIconProps { export function isSvg(content: string): boolean { // source code of the asset + // eslint-disable-next-line xss/no-mixed-html return String(content).includes(" { const { // skip passing props to icon's html element - className, href, link, material, svg, size, smallest, small, big, - disabled, sticker, active, + className, + href, + link, + material, + svg, + size, + smallest, + small, + big, + disabled, + sticker, + active, focusable = true, children, - interactive, onClick, onKeyDown, + interactive, + onClick, + onKeyDown, logger, ...elemProps } = props; @@ -195,7 +208,7 @@ const RawIcon = (props: IconProps & Dependencies) => { switch (event.nativeEvent.code) { case "Space": - // fallthrough + // fallthrough case "Enter": { ref.current?.click(); event.preventDefault(); @@ -208,26 +221,39 @@ const RawIcon = (props: IconProps & Dependencies) => { let iconContent: StrictReactNode; const iconProps: Partial = { - className: cssNames("Icon", className, - { svg, material, interactive: isInteractive, disabled, sticker, active, focusable }, - !size ? { smallest, small, big } : {}, + className: cssNames( + "Icon", + className, + { + svg, + material, + interactive: isInteractive, + disabled, + sticker, + active, + focusable, + }, + !size ? { smallest, small, big } : {} ), onClick: isInteractive ? boundOnClick : undefined, onKeyDown: isInteractive ? boundOnKeyDown : undefined, tabIndex: isInteractive && focusable && !disabled ? 0 : undefined, - style: size ? { "--size": size + (isNumber(size) ? "px" : "") } as React.CSSProperties : undefined, + style: size + ? ({ + "--size": size + (isNumber(size) ? "px" : ""), + } as React.CSSProperties) + : undefined, ...elemProps, }; // render as inline svg-icon if (typeof svg === "string") { - const svgIconText = isSvg(svg) - ? svg - : localSvgIcons.get(svg) ?? ""; + const svgIconText = isSvg(svg) ? svg : localSvgIcons.get(svg) ?? ""; iconContent = ( ); @@ -235,7 +261,11 @@ const RawIcon = (props: IconProps & Dependencies) => { // render as material-icon if (typeof material === "string") { - iconContent = {material}; + iconContent = ( + + {material} + + ); } // wrap icon's content passed from decorator @@ -251,11 +281,7 @@ const RawIcon = (props: IconProps & Dependencies) => { const { className, children } = iconProps; return ( - + {children} ); @@ -263,13 +289,8 @@ const RawIcon = (props: IconProps & Dependencies) => { if (href) { if (hrefIsSafe(href)) { - return ( - - ); + // eslint-disable-next-line jsx-a11y/anchor-has-content + return ; } logger.warn("[ICON]: href prop is unsafe, blocking", { href }); diff --git a/packages/ui-components/icon/tailwind.config.js b/packages/ui-components/icon/tailwind.config.js new file mode 100644 index 0000000000..59cf6201b3 --- /dev/null +++ b/packages/ui-components/icon/tailwind.config.js @@ -0,0 +1,30 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +const path = require('path'); + +module.exports = { + content: [ + path.join(__dirname, "src/**/*.tsx") + ], + darkMode: "class", + theme: { + fontFamily: { + sans: ["Roboto", "Helvetica", "Arial", "sans-serif"], + }, + extend: { + colors: { + textAccent: "var(--textColorAccent)", + textPrimary: "var(--textColorPrimary)", + textTertiary: "var(--textColorTertiary)", + textDimmed: "var(--textColorDimmed)", + }, + }, + }, + variants: { + extend: {}, + }, + plugins: [], +}; diff --git a/packages/ui-components/icon/tsconfig.json b/packages/ui-components/icon/tsconfig.json new file mode 100644 index 0000000000..a0971ea32f --- /dev/null +++ b/packages/ui-components/icon/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@k8slens/typescript/config/base.json", + "files": [ + "assets/custom.d.ts", + "assets/*.svg" + ], + "include": [ + "**/*.ts", + "**/*.tsx" + ], +} diff --git a/packages/ui-components/icon/webpack.config.js b/packages/ui-components/icon/webpack.config.js new file mode 100644 index 0000000000..1cda407f5a --- /dev/null +++ b/packages/ui-components/icon/webpack.config.js @@ -0,0 +1 @@ +module.exports = require("@k8slens/webpack").configForReact;