From 4ab97d2372874d053f1eb607432d21e8e632095f Mon Sep 17 00:00:00 2001 From: Gabriel Date: Fri, 2 Jun 2023 11:41:07 +0200 Subject: [PATCH] chore: Extract @k8slens/spinner Signed-off-by: Gabriel --- open-lens/src/renderer/index.ts | 1 + package-lock.json | 17 ++++++++ packages/core/package.json | 1 + .../src/extensions/renderer-api/components.ts | 2 +- .../renderer/helm-repositories.tsx | 2 +- .../kubeconfig-sync/kubeconfig-sync.tsx | 2 +- .../cluster-manager/cluster-status.tsx | 2 +- .../local-terminal-settings.tsx | 2 +- .../cluster-settings/prometheus-setting.tsx | 2 +- .../components/cluster/cluster-issues.tsx | 2 +- .../components/cluster/cluster-metrics.tsx | 2 +- .../components/cluster/cluster-overview.tsx | 2 +- .../components/cluster/cluster-pie-charts.tsx | 2 +- .../components/dock/create-resource/view.tsx | 2 +- .../components/dock/edit-resource/view.tsx | 2 +- .../renderer/components/dock/info-panel.tsx | 2 +- .../components/dock/install-chart/view.tsx | 2 +- .../renderer/components/dock/logs/list.tsx | 2 +- .../components/dock/upgrade-chart/view.tsx | 2 +- .../extensions/installed-extensions.tsx | 2 +- .../components/file-picker/file-picker.tsx | 2 +- .../helm-charts/helm-chart-details.tsx | 2 +- .../release-details-content.tsx | 2 +- .../components/item-object-list/content.tsx | 2 +- .../kube-object-details.tsx | 2 +- .../namespaces/namespace-details.tsx | 2 +- .../service-port-component.tsx | 2 +- .../resource-metrics/resource-metrics.tsx | 2 +- .../storage-volumes/volume-details-list.tsx | 2 +- .../service-accounts/details.tsx | 2 +- .../src/renderer/components/wizard/wizard.tsx | 2 +- .../deployment-replicasets.tsx | 2 +- .../workloads-pods/pod-container-port.tsx | 2 +- .../workloads-pods/pod-details-list.tsx | 2 +- packages/ui-components/animate/README.md | 10 ++--- packages/ui-components/spinner/.eslintrc.json | 6 +++ packages/ui-components/spinner/.prettierrc | 1 + packages/ui-components/spinner/CHANGELOG.md | 4 ++ packages/ui-components/spinner/README.md | 15 +++++++ .../spinner/index.ts | 3 +- packages/ui-components/spinner/jest.config.js | 3 ++ packages/ui-components/spinner/package.json | 43 +++++++++++++++++++ .../spinner/src}/spinner.scss | 0 .../spinner/src}/spinner.tsx | 0 .../ui-components/spinner/tailwind.config.js | 28 ++++++++++++ packages/ui-components/spinner/tsconfig.json | 4 ++ .../ui-components/spinner/webpack.config.js | 1 + 47 files changed, 162 insertions(+), 37 deletions(-) create mode 100644 packages/ui-components/spinner/.eslintrc.json create mode 100644 packages/ui-components/spinner/.prettierrc create mode 100644 packages/ui-components/spinner/CHANGELOG.md create mode 100644 packages/ui-components/spinner/README.md rename packages/{core/src/renderer/components => ui-components}/spinner/index.ts (61%) create mode 100644 packages/ui-components/spinner/jest.config.js create mode 100644 packages/ui-components/spinner/package.json rename packages/{core/src/renderer/components/spinner => ui-components/spinner/src}/spinner.scss (100%) rename packages/{core/src/renderer/components/spinner => ui-components/spinner/src}/spinner.tsx (100%) create mode 100644 packages/ui-components/spinner/tailwind.config.js create mode 100644 packages/ui-components/spinner/tsconfig.json create mode 100644 packages/ui-components/spinner/webpack.config.js diff --git a/open-lens/src/renderer/index.ts b/open-lens/src/renderer/index.ts index bfcb814a8acd..4f7d66452016 100644 --- a/open-lens/src/renderer/index.ts +++ b/open-lens/src/renderer/index.ts @@ -6,6 +6,7 @@ import "@k8slens/resizing-anchor/styles"; import "@k8slens/icon/styles"; import "@k8slens/animate/styles"; import "@k8slens/notifications/styles"; +import "@k8slens/spinner/styles"; import { runInAction } from "mobx"; import { diff --git a/package-lock.json b/package-lock.json index 552593e91c95..9278ce31fd79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3875,6 +3875,10 @@ "resolved": "packages/semver", "link": true }, + "node_modules/@k8slens/spinner": { + "resolved": "packages/ui-components/spinner", + "link": true + }, "node_modules/@k8slens/startable-stoppable": { "resolved": "packages/utility-features/startable-stoppable", "link": true @@ -35776,6 +35780,19 @@ "react-dom": "^17.0.2" } }, + "packages/ui-components/spinner": { + "name": "@k8slens/spinner", + "version": "1.0.0-alpha.0", + "license": "MIT", + "devDependencies": { + "@k8slens/eslint-config": "^6.5.0", + "@k8slens/webpack": "^6.5.0" + }, + "peerDependencies": { + "@k8slens/utilities": "^1.0.0-alpha.1", + "react": "^17.0.2" + } + }, "packages/ui-components/tooltip": { "name": "@k8slens/tooltip", "version": "1.0.0", diff --git a/packages/core/package.json b/packages/core/package.json index 59a4d351cc5b..e830c28b8d79 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -236,6 +236,7 @@ "@k8slens/resource-templates": "^1.0.0-alpha.1", "@k8slens/routing": "^1.0.0-alpha.5", "@k8slens/run-many": "^1.0.0-alpha.1", + "@k8slens/spinner": "^1.0.0", "@k8slens/startable-stoppable": "^1.0.0-alpha.1", "@k8slens/tooltip": "^1.0.0-alpha.5", "@k8slens/utilities": "^1.0.0-alpha.1", diff --git a/packages/core/src/extensions/renderer-api/components.ts b/packages/core/src/extensions/renderer-api/components.ts index 91c5e9856093..56f5f7e28eec 100644 --- a/packages/core/src/extensions/renderer-api/components.ts +++ b/packages/core/src/extensions/renderer-api/components.ts @@ -92,7 +92,7 @@ export const Notifications = { shortInfo: asLegacyGlobalFunctionForExtensionApi(showShortInfoNotificationInjectable), }; -export * from "../../renderer/components/spinner"; +export * from "@k8slens/spinner"; export * from "../../renderer/components/stepper"; export * from "../../renderer/components/wizard"; export * from "../../renderer/components/workloads-pods/pod-details-list"; diff --git a/packages/core/src/features/helm-charts/child-features/preferences/renderer/helm-repositories.tsx b/packages/core/src/features/helm-charts/child-features/preferences/renderer/helm-repositories.tsx index fd3cd333d8de..1f78b8699091 100644 --- a/packages/core/src/features/helm-charts/child-features/preferences/renderer/helm-repositories.tsx +++ b/packages/core/src/features/helm-charts/child-features/preferences/renderer/helm-repositories.tsx @@ -11,7 +11,7 @@ import { observer } from "mobx-react"; import activeHelmRepositoriesInjectable from "./active-helm-repositories.injectable"; import type { IAsyncComputed } from "@ogre-tools/injectable-react"; import { withInjectables } from "@ogre-tools/injectable-react"; -import { Spinner } from "../../../../../renderer/components/spinner"; +import { Spinner } from "@k8slens/spinner"; import type { HelmRepo } from "../../../../../common/helm/helm-repo"; import { RemovableItem } from "../../../../preferences/renderer/removable-item/removable-item"; import removeHelmRepositoryInjectable from "./remove-helm-repository.injectable"; diff --git a/packages/core/src/features/preferences/renderer/preference-items/kubernetes/kubeconfig-sync/kubeconfig-sync.tsx b/packages/core/src/features/preferences/renderer/preference-items/kubernetes/kubeconfig-sync/kubeconfig-sync.tsx index 3e75bea51743..8c302f05176e 100644 --- a/packages/core/src/features/preferences/renderer/preference-items/kubernetes/kubeconfig-sync/kubeconfig-sync.tsx +++ b/packages/core/src/features/preferences/renderer/preference-items/kubernetes/kubeconfig-sync/kubeconfig-sync.tsx @@ -10,7 +10,7 @@ import { Notice } from "../../../../../../renderer/components/extensions/notice" import { iter, tuple } from "@k8slens/utilities"; import { SubTitle } from "../../../../../../renderer/components/layout/sub-title"; import { PathPicker } from "../../../../../../renderer/components/path-picker/path-picker"; -import { Spinner } from "../../../../../../renderer/components/spinner"; +import { Spinner } from "@k8slens/spinner"; import { RemovableItem } from "../../../removable-item/removable-item"; import isWindowsInjectable from "../../../../../../common/vars/is-windows.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; 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 e72d4872c273..45aba97654a6 100644 --- a/packages/core/src/renderer/components/cluster-manager/cluster-status.tsx +++ b/packages/core/src/renderer/components/cluster-manager/cluster-status.tsx @@ -14,7 +14,7 @@ import type { IClassName } from "@k8slens/utilities"; import { hasTypedProperty, isObject, isString, cssNames } from "@k8slens/utilities"; import { Button } from "@k8slens/button"; import { Icon } from "@k8slens/icon"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import type { KubeAuthUpdate } from "../../../common/cluster-types"; import type { CatalogEntityRegistry } from "../../api/catalog/entity/registry"; import type { NavigateToEntitySettings } from "../../../common/front-end-routing/routes/entity-settings/navigate-to-entity-settings.injectable"; 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 f87b970ea3eb..997992b9a9df 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 @@ -22,7 +22,7 @@ import type { OpenPathPickingDialog } from "../../../features/path-picking-dialo import openPathPickingDialogInjectable from "../../../features/path-picking-dialog/renderer/pick-paths.injectable"; import type { LocalTerminalSettingPresenter } from "./local-terminal-setting-presenter.injectable"; import localTerminalSettingPresenterInjectable from "./local-terminal-setting-presenter.injectable"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { action, runInAction } from "mobx"; export interface ClusterLocalTerminalSettingProps { diff --git a/packages/core/src/renderer/components/cluster-settings/prometheus-setting.tsx b/packages/core/src/renderer/components/cluster-settings/prometheus-setting.tsx index 4a1d7b5b66f4..011107101f06 100644 --- a/packages/core/src/renderer/components/cluster-settings/prometheus-setting.tsx +++ b/packages/core/src/renderer/components/cluster-settings/prometheus-setting.tsx @@ -11,7 +11,7 @@ import type { SelectOption } from "../select"; import { Select } from "../select"; import { Input } from "../input"; import { observable, computed, autorun, makeObservable } from "mobx"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import type { MetricProviderInfo, RequestMetricsProviders } from "../../../common/k8s-api/endpoints/metrics.api/request-providers.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import requestMetricsProvidersInjectable from "../../../common/k8s-api/endpoints/metrics.api/request-providers.injectable"; diff --git a/packages/core/src/renderer/components/cluster/cluster-issues.tsx b/packages/core/src/renderer/components/cluster/cluster-issues.tsx index be2d1a395cfa..3de8b613b959 100644 --- a/packages/core/src/renderer/components/cluster/cluster-issues.tsx +++ b/packages/core/src/renderer/components/cluster/cluster-issues.tsx @@ -13,7 +13,7 @@ import { Icon } from "@k8slens/icon"; import { SubHeader } from "../layout/sub-header"; import { Table, TableCell, TableHead, TableRow } from "../table"; import { cssNames, prevDefault } from "@k8slens/utilities"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import type { ApiManager } from "../../../common/k8s-api/api-manager"; import { KubeObjectAge } from "../kube-object/age"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/cluster/cluster-metrics.tsx b/packages/core/src/renderer/components/cluster/cluster-metrics.tsx index 9f837e43061a..e4968efc8756 100644 --- a/packages/core/src/renderer/components/cluster/cluster-metrics.tsx +++ b/packages/core/src/renderer/components/cluster/cluster-metrics.tsx @@ -10,7 +10,7 @@ import { observer } from "mobx-react"; import type { ChartOptions, ChartPoint } from "chart.js"; import { BarChart } from "../chart"; import { bytesToUnits, cssNames } from "@k8slens/utilities"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { ZebraStripesPlugin } from "../chart/zebra-stripes.plugin"; import { ClusterNoMetrics } from "./cluster-no-metrics"; import { ClusterMetricSwitchers } from "./cluster-metric-switchers"; diff --git a/packages/core/src/renderer/components/cluster/cluster-overview.tsx b/packages/core/src/renderer/components/cluster/cluster-overview.tsx index f2c5c1dace97..925181067058 100644 --- a/packages/core/src/renderer/components/cluster/cluster-overview.tsx +++ b/packages/core/src/renderer/components/cluster/cluster-overview.tsx @@ -12,7 +12,7 @@ import type { NodeStore } from "../nodes/store"; import type { PodStore } from "../workloads-pods/store"; import { byOrderNumber } from "@k8slens/utilities"; import { TabLayout } from "../layout/tab-layout"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { ClusterIssues } from "./cluster-issues"; import { ClusterMetricsResourceType } from "../../../common/cluster-types"; import type { EventStore } from "../events/store"; 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 68f87fdec309..e7c24c95eb18 100644 --- a/packages/core/src/renderer/components/cluster/cluster-pie-charts.tsx +++ b/packages/core/src/renderer/components/cluster/cluster-pie-charts.tsx @@ -7,7 +7,7 @@ import styles from "./cluster-pie-charts.module.scss"; import React from "react"; import { observer } from "mobx-react"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { Icon } from "@k8slens/icon"; import type { PieChartData } from "../chart"; import { PieChart } from "../chart"; diff --git a/packages/core/src/renderer/components/dock/create-resource/view.tsx b/packages/core/src/renderer/components/dock/create-resource/view.tsx index 5638594b2381..d0d35996a492 100644 --- a/packages/core/src/renderer/components/dock/create-resource/view.tsx +++ b/packages/core/src/renderer/components/dock/create-resource/view.tsx @@ -20,7 +20,7 @@ import { isObject, prevDefault } from "@k8slens/utilities"; import { withInjectables } from "@ogre-tools/injectable-react"; import createResourceTabStoreInjectable from "./store.injectable"; import createResourceTemplatesInjectable from "./create-resource-templates.injectable"; -import { Spinner } from "../../spinner"; +import { Spinner } from "@k8slens/spinner"; import type { GroupBase } from "react-select"; import type { Navigate } from "../../../navigation/navigate.injectable"; import type { GetDetailsUrl } from "../../kube-detail-params/get-details-url.injectable"; diff --git a/packages/core/src/renderer/components/dock/edit-resource/view.tsx b/packages/core/src/renderer/components/dock/edit-resource/view.tsx index 98524cf9b517..843161d0e162 100644 --- a/packages/core/src/renderer/components/dock/edit-resource/view.tsx +++ b/packages/core/src/renderer/components/dock/edit-resource/view.tsx @@ -5,7 +5,7 @@ import React from "react"; import { observer } from "mobx-react"; -import { Spinner } from "../../spinner"; +import { Spinner } from "@k8slens/spinner"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { EditResourceModel } from "./edit-resource-model/edit-resource-model.injectable"; import editResourceModelInjectable from "./edit-resource-model/edit-resource-model.injectable"; diff --git a/packages/core/src/renderer/components/dock/info-panel.tsx b/packages/core/src/renderer/components/dock/info-panel.tsx index f1be17d99065..40816c01bc10 100644 --- a/packages/core/src/renderer/components/dock/info-panel.tsx +++ b/packages/core/src/renderer/components/dock/info-panel.tsx @@ -12,7 +12,7 @@ import type { StrictReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { Button } from "@k8slens/button"; import { Icon } from "@k8slens/icon"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import type { DockStore, TabId } from "./dock/store"; import type { ShowNotification, ShowCheckedErrorNotification } from "@k8slens/notifications"; import { withInjectables } from "@ogre-tools/injectable-react"; 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 09be180d3a18..58921bbdd5ab 100644 --- a/packages/core/src/renderer/components/dock/install-chart/view.tsx +++ b/packages/core/src/renderer/components/dock/install-chart/view.tsx @@ -20,7 +20,7 @@ import { EditorPanel } from "../editor-panel"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { InstallChartModel } from "./install-chart-model.injectable"; import installChartModelInjectable from "./install-chart-model.injectable"; -import { Spinner } from "../../spinner"; +import { Spinner } from "@k8slens/spinner"; export interface InstallChartProps { tabId: string; diff --git a/packages/core/src/renderer/components/dock/logs/list.tsx b/packages/core/src/renderer/components/dock/logs/list.tsx index d0e437e72047..920a5064cec6 100644 --- a/packages/core/src/renderer/components/dock/logs/list.tsx +++ b/packages/core/src/renderer/components/dock/logs/list.tsx @@ -20,7 +20,7 @@ import type { VirtualListRef } from "../../virtual-list"; import { VirtualList } from "../../virtual-list"; import { ToBottom } from "./to-bottom"; import type { LogTabViewModel } from "../logs/logs-view-model"; -import { Spinner } from "../../spinner"; +import { Spinner } from "@k8slens/spinner"; import { withInjectables } from "@ogre-tools/injectable-react"; import autoBindReact from "auto-bind/react"; import type { UserPreferencesState } from "../../../../features/user-preferences/common/state.injectable"; diff --git a/packages/core/src/renderer/components/dock/upgrade-chart/view.tsx b/packages/core/src/renderer/components/dock/upgrade-chart/view.tsx index 973ead54d9f7..3cd3147235fe 100644 --- a/packages/core/src/renderer/components/dock/upgrade-chart/view.tsx +++ b/packages/core/src/renderer/components/dock/upgrade-chart/view.tsx @@ -10,7 +10,7 @@ import { observer } from "mobx-react"; import { cssNames } from "@k8slens/utilities"; import type { DockTab } from "../dock/store"; import { InfoPanel } from "../info-panel"; -import { Spinner } from "../../spinner"; +import { Spinner } from "@k8slens/spinner"; import { Badge } from "../../badge"; import { EditorPanel } from "../editor-panel"; import type { SelectOption } from "../../select"; diff --git a/packages/core/src/renderer/components/extensions/installed-extensions.tsx b/packages/core/src/renderer/components/extensions/installed-extensions.tsx index ed188dce6e02..8d70c0f5b2bd 100644 --- a/packages/core/src/renderer/components/extensions/installed-extensions.tsx +++ b/packages/core/src/renderer/components/extensions/installed-extensions.tsx @@ -8,7 +8,7 @@ import React from "react"; import { Icon } from "@k8slens/icon"; import { List } from "../list/list"; import { MenuActions, MenuItem } from "../menu"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { cssNames } from "@k8slens/utilities"; import { observer } from "mobx-react"; import type { Row } from "react-table"; 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 9bc44f1f21c4..bef9d0f4f679 100644 --- a/packages/core/src/renderer/components/file-picker/file-picker.tsx +++ b/packages/core/src/renderer/components/file-picker/file-picker.tsx @@ -9,7 +9,7 @@ import React from "react"; import fse from "fs-extra"; import path from "path"; import { Icon } from "@k8slens/icon"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { observable, makeObservable } from "mobx"; import { observer } from "mobx-react"; import _ from "lodash"; diff --git a/packages/core/src/renderer/components/helm-charts/helm-chart-details.tsx b/packages/core/src/renderer/components/helm-charts/helm-chart-details.tsx index ef331a133a7e..c5cfdc8190c8 100644 --- a/packages/core/src/renderer/components/helm-charts/helm-chart-details.tsx +++ b/packages/core/src/renderer/components/helm-charts/helm-chart-details.tsx @@ -11,7 +11,7 @@ import { observer } from "mobx-react"; import { Drawer, DrawerItem } from "../drawer"; import { stopPropagation } from "@k8slens/utilities"; import { MarkdownViewer } from "../markdown-viewer"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { Button } from "@k8slens/button"; import { Select } from "../select"; import { Badge } from "../badge"; diff --git a/packages/core/src/renderer/components/helm-releases/release-details/release-details-content.tsx b/packages/core/src/renderer/components/helm-releases/release-details/release-details-content.tsx index 9ec1ea7e9a80..e076d6048c4d 100644 --- a/packages/core/src/renderer/components/helm-releases/release-details/release-details-content.tsx +++ b/packages/core/src/renderer/components/helm-releases/release-details/release-details-content.tsx @@ -21,7 +21,7 @@ import { SubTitle } from "../../layout/sub-title"; import { Table, TableCell, TableHead, TableRow } from "../../table"; import { Checkbox } from "../../checkbox"; import { MonacoEditor } from "../../monaco-editor"; -import { Spinner } from "../../spinner"; +import { Spinner } from "@k8slens/spinner"; import type { TargetHelmRelease } from "./target-helm-release.injectable"; interface ReleaseDetailsContentProps { diff --git a/packages/core/src/renderer/components/item-object-list/content.tsx b/packages/core/src/renderer/components/item-object-list/content.tsx index de19c1c0588f..dde58ca7eee0 100644 --- a/packages/core/src/renderer/components/item-object-list/content.tsx +++ b/packages/core/src/renderer/components/item-object-list/content.tsx @@ -17,7 +17,7 @@ import { cssNames, isDefined, isReactNode, noop, prevDefault, stopPropagation } import type { AddRemoveButtonsProps } from "../add-remove-buttons"; import { AddRemoveButtons } from "../add-remove-buttons"; import { NoItems } from "../no-items"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import type { ItemObject, TableCellProps } from "@k8slens/list-layout"; import type { Filter, PageFiltersStore } from "./page-filters/store"; import type { LensTheme } from "../../themes/lens-theme"; diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-details.tsx b/packages/core/src/renderer/components/kube-object-details/kube-object-details.tsx index bf6c6566f705..06815db89bbe 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-details.tsx +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-details.tsx @@ -10,7 +10,7 @@ import { observer } from "mobx-react"; import type { IComputedValue } from "mobx"; import { Drawer } from "../drawer"; import type { KubeObject } from "@k8slens/kube-object"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { KubeObjectMenu } from "../kube-object-menu"; import type { HideDetails } from "../kube-detail-params/hide-details.injectable"; import type { IAsyncComputed } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/namespaces/namespace-details.tsx b/packages/core/src/renderer/components/namespaces/namespace-details.tsx index 3304026de170..5013a4c3e5ea 100644 --- a/packages/core/src/renderer/components/namespaces/namespace-details.tsx +++ b/packages/core/src/renderer/components/namespaces/namespace-details.tsx @@ -13,7 +13,7 @@ import { cssNames } from "@k8slens/utilities"; import { Namespace } from "@k8slens/kube-object"; import type { KubeObjectDetailsProps } from "../kube-object-details"; import { Link } from "react-router-dom"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { SubscribeStores } from "../../kube-watch-api/kube-watch-api"; diff --git a/packages/core/src/renderer/components/network-services/service-port-component.tsx b/packages/core/src/renderer/components/network-services/service-port-component.tsx index 8455fbe34e0c..251f6e9bf8e7 100644 --- a/packages/core/src/renderer/components/network-services/service-port-component.tsx +++ b/packages/core/src/renderer/components/network-services/service-port-component.tsx @@ -14,7 +14,7 @@ import type { ShowNotification } from "@k8slens/notifications"; import { Button } from "@k8slens/button"; import type { ForwardedPort, PortForwardStore } from "../../port-forward"; import { predictProtocol } from "../../port-forward"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { withInjectables } from "@ogre-tools/injectable-react"; import portForwardStoreInjectable from "../../port-forward/port-forward-store/port-forward-store.injectable"; import portForwardDialogModelInjectable from "../../port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable"; diff --git a/packages/core/src/renderer/components/resource-metrics/resource-metrics.tsx b/packages/core/src/renderer/components/resource-metrics/resource-metrics.tsx index acac2e0cc373..233e9f16e623 100644 --- a/packages/core/src/renderer/components/resource-metrics/resource-metrics.tsx +++ b/packages/core/src/renderer/components/resource-metrics/resource-metrics.tsx @@ -9,7 +9,7 @@ import React, { createContext, useState } from "react"; import { Radio, RadioGroup } from "../radio"; import type { KubeObject } from "@k8slens/kube-object"; import { cssNames } from "@k8slens/utilities"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import type { MetricsTab } from "../chart/options"; import type { MetricData } from "../../../common/k8s-api/endpoints/metrics.api"; import type { IAsyncComputed } from "@ogre-tools/injectable-react"; diff --git a/packages/core/src/renderer/components/storage-volumes/volume-details-list.tsx b/packages/core/src/renderer/components/storage-volumes/volume-details-list.tsx index 510229dfdd63..fabf448b5cf4 100644 --- a/packages/core/src/renderer/components/storage-volumes/volume-details-list.tsx +++ b/packages/core/src/renderer/components/storage-volumes/volume-details-list.tsx @@ -11,7 +11,7 @@ import type { PersistentVolume } from "@k8slens/kube-object"; import { TableRow } from "../table/table-row"; import { cssNames, prevDefault } from "@k8slens/utilities"; import { TableCell } from "../table/table-cell"; -import { Spinner } from "../spinner/spinner"; +import { Spinner } from "@k8slens/spinner"; import { DrawerTitle } from "../drawer/drawer-title"; import { Table } from "../table/table"; import { TableHead } from "../table/table-head"; 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 8a929d8e38d9..63998e437db0 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 @@ -14,7 +14,7 @@ import type { Secret, ServiceAccount } from "@k8slens/kube-object"; import { DrawerItem, DrawerTitle } from "../../drawer"; import { Icon } from "@k8slens/icon"; import type { KubeObjectDetailsProps } from "../../kube-object-details"; -import { Spinner } from "../../spinner"; +import { Spinner } from "@k8slens/spinner"; import { ServiceAccountsSecret } from "./secret"; import type { SecretStore } from "../../config-secrets/store"; import type { GetDetailsUrl } from "../../kube-detail-params/get-details-url.injectable"; diff --git a/packages/core/src/renderer/components/wizard/wizard.tsx b/packages/core/src/renderer/components/wizard/wizard.tsx index 3bcd8d271d13..da362ee89a38 100755 --- a/packages/core/src/renderer/components/wizard/wizard.tsx +++ b/packages/core/src/renderer/components/wizard/wizard.tsx @@ -10,7 +10,7 @@ import { cssNames, prevDefault } from "@k8slens/utilities"; import { Button } from "@k8slens/button"; import { Stepper } from "../stepper"; import { SubTitle } from "../layout/sub-title"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { debounce } from "lodash"; export interface WizardCommonProps { diff --git a/packages/core/src/renderer/components/workloads-deployments/deployment-replicasets.tsx b/packages/core/src/renderer/components/workloads-deployments/deployment-replicasets.tsx index 71c7c5e3a718..44cb5e452772 100644 --- a/packages/core/src/renderer/components/workloads-deployments/deployment-replicasets.tsx +++ b/packages/core/src/renderer/components/workloads-deployments/deployment-replicasets.tsx @@ -9,7 +9,7 @@ import React from "react"; import { observer } from "mobx-react"; import type { ReplicaSet } from "@k8slens/kube-object"; import { KubeObjectMenu } from "../kube-object-menu"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { prevDefault, stopPropagation } from "@k8slens/utilities"; import { DrawerTitle } from "../drawer"; import { Table, TableCell, TableHead, TableRow } from "../table"; diff --git a/packages/core/src/renderer/components/workloads-pods/pod-container-port.tsx b/packages/core/src/renderer/components/workloads-pods/pod-container-port.tsx index b2d35718d526..d2f2484ad845 100644 --- a/packages/core/src/renderer/components/workloads-pods/pod-container-port.tsx +++ b/packages/core/src/renderer/components/workloads-pods/pod-container-port.tsx @@ -14,7 +14,7 @@ import type { ShowNotification } from "@k8slens/notifications"; import { Button } from "@k8slens/button"; import type { ForwardedPort, PortForwardStore } from "../../port-forward"; import { predictProtocol } from "../../port-forward"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { withInjectables } from "@ogre-tools/injectable-react"; import portForwardStoreInjectable from "../../port-forward/port-forward-store/port-forward-store.injectable"; import portForwardDialogModelInjectable from "../../port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable"; diff --git a/packages/core/src/renderer/components/workloads-pods/pod-details-list.tsx b/packages/core/src/renderer/components/workloads-pods/pod-details-list.tsx index eae4d4ee3688..32c8b96d005c 100644 --- a/packages/core/src/renderer/components/workloads-pods/pod-details-list.tsx +++ b/packages/core/src/renderer/components/workloads-pods/pod-details-list.tsx @@ -13,7 +13,7 @@ import type { Pod, KubeObject } from "@k8slens/kube-object"; import { bytesToUnits, cssNames, interval, prevDefault } from "@k8slens/utilities"; import { LineProgress } from "../line-progress"; import { Table, TableCell, TableHead, TableRow } from "../table"; -import { Spinner } from "../spinner"; +import { Spinner } from "@k8slens/spinner"; import { DrawerTitle } from "../drawer"; import { KubeObjectStatusIcon } from "../kube-object-status-icon"; import type { PodStore } from "./store"; diff --git a/packages/ui-components/animate/README.md b/packages/ui-components/animate/README.md index 8649e2bab5a7..5c602b7e222b 100644 --- a/packages/ui-components/animate/README.md +++ b/packages/ui-components/animate/README.md @@ -9,11 +9,11 @@ $ npm install @k8slens/animate ``` ```typescript -export type { AnimateName, AnimateProps } from "@k8slens/button"; -export type { Animate } from "@k8slens/button"; -export { defaultEnterDurationForAnimatedInjectable } from "@k8slens/button"; -export { defaultLeaveDurationForAnimatedInjectable } from "@k8slens/button"; -export { requestAnimationFrameInjectable } from "@k8slens/button"; +import { animateFeature } from "@k8slens/animate"; +import { animateFeature, requestAnimationFrameInjectable } from "@k8slens/animate"; +import { Animate } from "@k8slens/animate"; +import type { AnimateName } from "@k8slens/animate"; +import type { RequestAnimationFrame } from "@k8slens/animate"; ``` ## Extendability diff --git a/packages/ui-components/spinner/.eslintrc.json b/packages/ui-components/spinner/.eslintrc.json new file mode 100644 index 000000000000..b15115cb694e --- /dev/null +++ b/packages/ui-components/spinner/.eslintrc.json @@ -0,0 +1,6 @@ +{ + "extends": "@k8slens/eslint-config/eslint", + "parserOptions": { + "project": "./tsconfig.json" + } +} diff --git a/packages/ui-components/spinner/.prettierrc b/packages/ui-components/spinner/.prettierrc new file mode 100644 index 000000000000..edd47b479e93 --- /dev/null +++ b/packages/ui-components/spinner/.prettierrc @@ -0,0 +1 @@ +"@k8slens/eslint-config/prettier" diff --git a/packages/ui-components/spinner/CHANGELOG.md b/packages/ui-components/spinner/CHANGELOG.md new file mode 100644 index 000000000000..e4d87c4d45c4 --- /dev/null +++ b/packages/ui-components/spinner/CHANGELOG.md @@ -0,0 +1,4 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. diff --git a/packages/ui-components/spinner/README.md b/packages/ui-components/spinner/README.md new file mode 100644 index 000000000000..5e3c49363dd6 --- /dev/null +++ b/packages/ui-components/spinner/README.md @@ -0,0 +1,15 @@ +# @k8slens/spinner + +This package contains stuff related to creating Lens-applications. + +# Usage + +```bash +$ npm install @k8slens/spinner +``` + +```typescript +import { Spinner } from "@k8slens/spinner"; +``` + +## Extendability diff --git a/packages/core/src/renderer/components/spinner/index.ts b/packages/ui-components/spinner/index.ts similarity index 61% rename from packages/core/src/renderer/components/spinner/index.ts rename to packages/ui-components/spinner/index.ts index f95bac13b319..a9a65d3b7ace 100644 --- a/packages/core/src/renderer/components/spinner/index.ts +++ b/packages/ui-components/spinner/index.ts @@ -3,4 +3,5 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -export * from "./spinner"; +export type { SpinnerProps } from "./src/spinner"; +export { Spinner } from "./src/spinner"; diff --git a/packages/ui-components/spinner/jest.config.js b/packages/ui-components/spinner/jest.config.js new file mode 100644 index 000000000000..05ec7ecd4d66 --- /dev/null +++ b/packages/ui-components/spinner/jest.config.js @@ -0,0 +1,3 @@ +const { configForReact } = require("@k8slens/jest").monorepoPackageConfig(__dirname); + +module.exports = configForReact; diff --git a/packages/ui-components/spinner/package.json b/packages/ui-components/spinner/package.json new file mode 100644 index 000000000000..411ebf1b7552 --- /dev/null +++ b/packages/ui-components/spinner/package.json @@ -0,0 +1,43 @@ +{ + "name": "@k8slens/spinner", + "private": false, + "version": "1.0.0", + "description": "Highly extendable spinner 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" + }, + "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/utilities": "^1.0.0-alpha.1", + "react": "^17.0.2" + }, + "devDependencies": { + "@k8slens/eslint-config": "^6.5.0", + "@k8slens/webpack": "^6.5.0" + } +} diff --git a/packages/core/src/renderer/components/spinner/spinner.scss b/packages/ui-components/spinner/src/spinner.scss similarity index 100% rename from packages/core/src/renderer/components/spinner/spinner.scss rename to packages/ui-components/spinner/src/spinner.scss diff --git a/packages/core/src/renderer/components/spinner/spinner.tsx b/packages/ui-components/spinner/src/spinner.tsx similarity index 100% rename from packages/core/src/renderer/components/spinner/spinner.tsx rename to packages/ui-components/spinner/src/spinner.tsx diff --git a/packages/ui-components/spinner/tailwind.config.js b/packages/ui-components/spinner/tailwind.config.js new file mode 100644 index 000000000000..0feb6790ac2f --- /dev/null +++ b/packages/ui-components/spinner/tailwind.config.js @@ -0,0 +1,28 @@ +/** + * 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/spinner/tsconfig.json b/packages/ui-components/spinner/tsconfig.json new file mode 100644 index 000000000000..9e140d79da37 --- /dev/null +++ b/packages/ui-components/spinner/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@k8slens/typescript/config/base.json", + "include": ["**/*.ts", "**/*.tsx"], +} diff --git a/packages/ui-components/spinner/webpack.config.js b/packages/ui-components/spinner/webpack.config.js new file mode 100644 index 000000000000..1cda407f5a9a --- /dev/null +++ b/packages/ui-components/spinner/webpack.config.js @@ -0,0 +1 @@ +module.exports = require("@k8slens/webpack").configForReact;