diff --git a/package-lock.json b/package-lock.json index b5b98bf3a3..28d7beb6c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3969,6 +3969,10 @@ "resolved": "packages/release-tool", "link": true }, + "node_modules/@k8slens/resizing-anchor": { + "resolved": "packages/ui-components/resizing-anchor", + "link": true + }, "node_modules/@k8slens/run-many": { "resolved": "packages/utility-features/run-many", "link": true @@ -35546,10 +35550,11 @@ "@k8slens/messaging": "^1.0.0-alpha.1", "@k8slens/messaging-for-main": "^1.0.0-alpha.1", "@k8slens/messaging-for-renderer": "^1.0.0-alpha.1", + "@k8slens/resizing-anchor": "^1.0.0-alpha.0", + "@k8slens/tooltip": "^1.0.0-alpha.0", "@k8slens/run-many": "^1.0.0-alpha.1", "@k8slens/startable-stoppable": "^1.0.0-alpha.1", "@k8slens/test-utils": "^1.0.0-alpha.1", - "@k8slens/tooltip": "^1.0.0-alpha.0", "@k8slens/utilities": "^1.0.0-alpha.1", "@ogre-tools/fp": "^15.3.1", "@ogre-tools/injectable": "^15.3.1", @@ -36723,6 +36728,57 @@ "react-dom": "^17.0.2" } }, + "packages/ui-components/resizing-anchor": { + "name": "@k8slens/resizing-anchor", + "version": "1.0.0-alpha.0", + "license": "MIT", + "devDependencies": { + "@async-fn/jest": "^1.6.4", + "@k8slens/eslint-config": "6.5.0-alpha.1", + "@k8slens/react-testing-library-discovery": "^1.0.0-alpha.0" + }, + "peerDependencies": { + "@k8slens/feature-core": "^6.5.0-alpha.0", + "@k8slens/utilities": "^1.0.0-alpha.1", + "@ogre-tools/fp": "^15.1.2", + "@ogre-tools/injectable": "^15.1.2", + "@ogre-tools/injectable-extension-for-auto-registration": "^15.1.2", + "auto-bind": "^4.0.0", + "lodash": "^4.17.21", + "mobx": "^6.8.0", + "mobx-react": "^7.6.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, + "packages/ui-components/resizing-anchor/node_modules/@k8slens/eslint-config": { + "version": "6.5.0-alpha.1", + "resolved": "https://registry.npmjs.org/@k8slens/eslint-config/-/eslint-config-6.5.0-alpha.1.tgz", + "integrity": "sha512-6DdfKe/iafX85GBK/UlKgz29FOIOp/UVS03bFGLyw7Vmm7pauB0FEHTAdbr3g1qG/Zcn6nxhOM3uqQyRY/uEyA==", + "dev": true, + "bin": { + "lens-lint": "bin/lint" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": ">= 5", + "@typescript-eslint/parser": ">= 5", + "eslint": ">= 7", + "eslint-config-airbnb-typescript": ">= 17", + "eslint-config-prettier": ">= 8", + "eslint-config-react-app": "^7.0.1", + "eslint-plugin-import": ">= 2", + "eslint-plugin-jest": ">= 27", + "eslint-plugin-jsx-a11y": ">= 6", + "eslint-plugin-no-unsanitized": ">= 4.0.2", + "eslint-plugin-prettier": ">= 4", + "eslint-plugin-react-hooks": ">= 4", + "eslint-plugin-security": ">= 1.6.0", + "eslint-plugin-simple-import-sort": ">= 7", + "eslint-plugin-unused-imports": ">= 2", + "eslint-plugin-xss": ">= 0.1.12", + "prettier": ">= 2" + } + }, "packages/ui-components/tooltip": { "name": "@k8slens/tooltip", "version": "1.0.0-alpha.0", diff --git a/packages/core/package.json b/packages/core/package.json index 6e41cc2bca..9de4773753 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -322,6 +322,7 @@ "@k8slens/startable-stoppable": "^1.0.0-alpha.1", "@k8slens/test-utils": "^1.0.0-alpha.1", "@k8slens/tooltip": "^1.0.0-alpha.0", + "@k8slens/resizing-anchor": "^1.0.0-alpha.0", "@k8slens/utilities": "^1.0.0-alpha.1", "@ogre-tools/fp": "^15.3.1", "@ogre-tools/injectable": "^15.3.1", diff --git a/packages/core/src/renderer/components/dock/dock.tsx b/packages/core/src/renderer/components/dock/dock.tsx index 4d18c316d9..c6111a31f4 100644 --- a/packages/core/src/renderer/components/dock/dock.tsx +++ b/packages/core/src/renderer/components/dock/dock.tsx @@ -10,7 +10,7 @@ import { cssNames } from "@k8slens/utilities"; import { Icon } from "../icon"; import { MenuItem } from "../menu"; import { MenuActions } from "../menu/menu-actions"; -import { ResizeDirection, ResizingAnchor } from "../resizing-anchor"; +import { ResizeDirection, ResizingAnchor } from "@k8slens/resizing-anchor"; import { CreateResource } from "./create-resource/view"; import { DockTabs } from "./dock-tabs"; import type { DockStore, DockTab } from "./dock/store"; diff --git a/packages/core/src/renderer/components/drawer/drawer.tsx b/packages/core/src/renderer/components/drawer/drawer.tsx index 5959c0c098..3a4f2a72f4 100644 --- a/packages/core/src/renderer/components/drawer/drawer.tsx +++ b/packages/core/src/renderer/components/drawer/drawer.tsx @@ -13,7 +13,7 @@ import { cssNames, noop } from "@k8slens/utilities"; import { Icon } from "../icon"; import type { AnimateName } from "../animate"; import { Animate } from "../animate"; -import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "../resizing-anchor"; +import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "@k8slens/resizing-anchor"; import drawerStorageInjectable, { defaultDrawerWidth } from "./drawer-storage/drawer-storage.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import historyInjectable from "../../navigation/history.injectable"; diff --git a/packages/core/src/renderer/components/layout/main-layout.tsx b/packages/core/src/renderer/components/layout/main-layout.tsx index a078ac7b74..c97327cfe5 100755 --- a/packages/core/src/renderer/components/layout/main-layout.tsx +++ b/packages/core/src/renderer/components/layout/main-layout.tsx @@ -9,7 +9,7 @@ import React from "react"; import { observer } from "mobx-react"; import { cssNames } from "@k8slens/utilities"; import { ErrorBoundary } from "../error-boundary"; -import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "../resizing-anchor"; +import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "@k8slens/resizing-anchor"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { SidebarStorageState } from "./sidebar-storage/sidebar-storage.injectable"; import sidebarStorageInjectable, { defaultSidebarWidth } from "./sidebar-storage/sidebar-storage.injectable"; diff --git a/packages/open-lens/src/renderer/index.ts b/packages/open-lens/src/renderer/index.ts index 2446390d29..3c24d56065 100644 --- a/packages/open-lens/src/renderer/index.ts +++ b/packages/open-lens/src/renderer/index.ts @@ -1,5 +1,6 @@ import "@k8slens/core/styles"; import "@k8slens/tooltip/dist/index.css"; +import "@k8slens/resizing-anchor/dist/index.css"; import { runInAction } from "mobx"; import { rendererExtensionApi as Renderer, diff --git a/packages/ui-components/resizing-anchor/.eslintrc.json b/packages/ui-components/resizing-anchor/.eslintrc.json new file mode 100644 index 0000000000..b15115cb69 --- /dev/null +++ b/packages/ui-components/resizing-anchor/.eslintrc.json @@ -0,0 +1,6 @@ +{ + "extends": "@k8slens/eslint-config/eslint", + "parserOptions": { + "project": "./tsconfig.json" + } +} diff --git a/packages/ui-components/resizing-anchor/.prettierrc b/packages/ui-components/resizing-anchor/.prettierrc new file mode 100644 index 0000000000..edd47b479e --- /dev/null +++ b/packages/ui-components/resizing-anchor/.prettierrc @@ -0,0 +1 @@ +"@k8slens/eslint-config/prettier" diff --git a/packages/ui-components/resizing-anchor/.swcrc b/packages/ui-components/resizing-anchor/.swcrc new file mode 100644 index 0000000000..4dd5c11a89 --- /dev/null +++ b/packages/ui-components/resizing-anchor/.swcrc @@ -0,0 +1,19 @@ +{ + "module": { + "type": "commonjs" + }, + "jsc": { + "parser": { + "syntax": "typescript", + "tsx": true, + "decorators": true, + "dynamicImport": false + }, + "transform": { + "legacyDecorator": true, + "decoratorMetadata": true + }, + "target": "es2019" + } +} + diff --git a/packages/ui-components/resizing-anchor/README.md b/packages/ui-components/resizing-anchor/README.md new file mode 100644 index 0000000000..bcf7e3003e --- /dev/null +++ b/packages/ui-components/resizing-anchor/README.md @@ -0,0 +1,15 @@ +# @k8slens/resizing-anchor + +This package contains stuff related to creating Lens-applications. + +# Usage + +```bash +$ npm install @k8slens/resizing-anchor +``` + +```typescript +import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "@k8slens/resizing-anchor"; +``` + +## Extendability diff --git a/packages/ui-components/resizing-anchor/index.ts b/packages/ui-components/resizing-anchor/index.ts new file mode 100644 index 0000000000..f76358c781 --- /dev/null +++ b/packages/ui-components/resizing-anchor/index.ts @@ -0,0 +1,6 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +export * from "./src/resizing-anchor"; diff --git a/packages/ui-components/resizing-anchor/jest.config.js b/packages/ui-components/resizing-anchor/jest.config.js new file mode 100644 index 0000000000..38d54ab7b6 --- /dev/null +++ b/packages/ui-components/resizing-anchor/jest.config.js @@ -0,0 +1 @@ +module.exports = require("@k8slens/jest").monorepoPackageConfig(__dirname).configForReact; diff --git a/packages/ui-components/resizing-anchor/package.json b/packages/ui-components/resizing-anchor/package.json new file mode 100644 index 0000000000..5df84aacfa --- /dev/null +++ b/packages/ui-components/resizing-anchor/package.json @@ -0,0 +1,50 @@ +{ + "name": "@k8slens/resizing-anchor", + "private": false, + "version": "1.0.0-alpha.0", + "description": "Highly extendable resizing-anchor 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", + "types": "dist/index.d.ts", + "author": { + "name": "OpenLens Authors", + "email": "info@k8slens.dev" + }, + "license": "MIT", + "homepage": "https://github.com/lensapp/lens", + "scripts": { + "build": "webpack", + "test:unit": "jest --coverage --runInBand", + "lint": "lens-lint", + "lint:fix": "lens-lint --fix" + }, + "peerDependencies": { + "@k8slens/feature-core": "^6.5.0-alpha.0", + "@k8slens/utilities": "^1.0.0-alpha.1", + "@ogre-tools/injectable": "^15.1.2", + "@ogre-tools/injectable-extension-for-auto-registration": "^15.1.2", + "@ogre-tools/fp": "^15.1.2", + "auto-bind": "^4.0.0", + "lodash": "^4.17.21", + "mobx": "^6.8.0", + "mobx-react": "^7.6.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + }, + "devDependencies": { + "@async-fn/jest": "^1.6.4", + "@k8slens/eslint-config": "6.5.0-alpha.1", + "@k8slens/react-testing-library-discovery": "^1.0.0-alpha.0" + } +} diff --git a/packages/core/src/renderer/components/resizing-anchor/index.ts b/packages/ui-components/resizing-anchor/src/index.ts similarity index 100% rename from packages/core/src/renderer/components/resizing-anchor/index.ts rename to packages/ui-components/resizing-anchor/src/index.ts diff --git a/packages/core/src/renderer/components/resizing-anchor/resizing-anchor.scss b/packages/ui-components/resizing-anchor/src/resizing-anchor.scss similarity index 100% rename from packages/core/src/renderer/components/resizing-anchor/resizing-anchor.scss rename to packages/ui-components/resizing-anchor/src/resizing-anchor.scss diff --git a/packages/core/src/renderer/components/resizing-anchor/resizing-anchor.tsx b/packages/ui-components/resizing-anchor/src/resizing-anchor.tsx similarity index 100% rename from packages/core/src/renderer/components/resizing-anchor/resizing-anchor.tsx rename to packages/ui-components/resizing-anchor/src/resizing-anchor.tsx diff --git a/packages/ui-components/resizing-anchor/tailwind.config.js b/packages/ui-components/resizing-anchor/tailwind.config.js new file mode 100644 index 0000000000..59cf6201b3 --- /dev/null +++ b/packages/ui-components/resizing-anchor/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/resizing-anchor/tsconfig.json b/packages/ui-components/resizing-anchor/tsconfig.json new file mode 100644 index 0000000000..9e140d79da --- /dev/null +++ b/packages/ui-components/resizing-anchor/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@k8slens/typescript/config/base.json", + "include": ["**/*.ts", "**/*.tsx"], +} diff --git a/packages/ui-components/resizing-anchor/webpack.config.js b/packages/ui-components/resizing-anchor/webpack.config.js new file mode 100644 index 0000000000..1cda407f5a --- /dev/null +++ b/packages/ui-components/resizing-anchor/webpack.config.js @@ -0,0 +1 @@ +module.exports = require("@k8slens/webpack").configForReact;