diff --git a/.github/workflows/block-apps.yml b/.github/workflows/block-apps.yml index 0ad038d64..c56309813 100644 --- a/.github/workflows/block-apps.yml +++ b/.github/workflows/block-apps.yml @@ -1,4 +1,4 @@ -name: Block PRs on following apps supernova, huereka, greenhouse and greenhouse-management +name: Block PRs on apps and libs migrated to cloudoperators on: pull_request: @@ -68,6 +68,9 @@ jobs: evaluate-changes: needs: changes runs-on: [ubuntu-latest] + env: + APPS: "supernova heureka greenhouse greenhouse-management exampleapp template" + LIBS: "communicator oauth policy-engine messages-provider juno-ui-components url-state-provider url-state-router utils" steps: - name: Show inputs run: | @@ -75,12 +78,28 @@ jobs: echo libs: ${{ needs.changes.outputs.libs }} echo app changes: ${{ needs.changes.outputs.app-changes }} echo lib changes: ${{ needs.changes.outputs.lib-changes }} - - name: Check if any of the apps are supernova, huereka, greenhouse or greenhouse-management - if: | - contains(needs.changes.outputs.app-changes, 'supernova') || - contains(needs.changes.outputs.app-changes, 'huereka') || - contains(needs.changes.outputs.app-changes, 'greenhouse') || - contains(needs.changes.outputs.app-changes, 'greenhouse-management') + + - name: Check if changes belong to restricted apps or libs + id: check-changes run: | - echo "::error not allowed to make changes to supernova, huereka, greenhouse or greenhouse-management apps" - exit 1 + check_changes() { + local changes=$1 + local list=$2 + local type=$3 + for item in $list; do + if [[ $changes == *"$item"* ]]; then + echo "Not allowed to make changes to specified $type: $item" + exit 1 + fi + done + echo "No restricted changes found in $type" + return 0 + } + + app_changes="${{ needs.changes.outputs.app-changes }}" + lib_changes="${{ needs.changes.outputs.lib-changes }}" + + check_changes "$app_changes" "$APPS" "app" + check_changes "$lib_changes" "$LIBS" "lib" + + echo "Changes are allowed." diff --git a/apps/assets-overview/README.md b/apps/assets-overview/README.md index cc416c355..0afa519ff 100644 --- a/apps/assets-overview/README.md +++ b/apps/assets-overview/README.md @@ -1,5 +1,7 @@ # Assets Overview +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) + This app displays all available Juno apps using the manifest.json file. The manifest.json file is located on the assets server and contains various data, including the path to the build of the app. This app uses the same techniques as all Juno apps and is integrated in the same way via widget-loader. It serves both as an overview of available apps and as an example of what such an app can look like. diff --git a/apps/assets-overview/jest.config.js b/apps/assets-overview/jest.config.js index d16f3da9d..fd60a61f4 100644 --- a/apps/assets-overview/jest.config.js +++ b/apps/assets-overview/jest.config.js @@ -8,7 +8,7 @@ module.exports = { testEnvironment: "jsdom", setupFilesAfterEnv: ["/setupTests.js"], transformIgnorePatterns: [ - "node_modules/(?!(juno-ui-components|messages-provider)/)", + "node_modules/(?!(juno-ui-components|messages-provider|url-state-router|utils)/)", ], moduleNameMapper: { // Jest currently doesn't support resources with query parameters. diff --git a/apps/assets-overview/package.json b/apps/assets-overview/package.json index 25b94a563..41f3d5b05 100644 --- a/apps/assets-overview/package.json +++ b/apps/assets-overview/package.json @@ -31,9 +31,9 @@ "github-markdown-css": "^5.1.0", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "3.3.0", - "messages-provider": "*", + "messages-provider": "https://assets.juno.global.cloud.sap/libs/messages-provider@0.1.12/package.tgz", "postcss": "^8.4.21", "postcss-url": "^10.1.3", "prop-types": "15.8.1", @@ -45,10 +45,10 @@ "sass": "^1.60.0", "shadow-dom-testing-library": "^1.7.1", "tailwindcss": "^3.3.1", - "url-state-provider": "*", - "url-state-router": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", + "url-state-router": "https://assets.juno.global.cloud.sap/libs/url-state-router@1.0.3/package.tgz", "util": "^0.12.4", - "utils": "*", + "utils": "https://assets.juno.global.cloud.sap/libs/utils@1.1.6/package.tgz", "zustand": "4.3.7" }, "scripts": { @@ -60,15 +60,15 @@ "peerDependencies": { "@tanstack/react-query": "4.28.0", "custom-event-polyfill": "1.0.7", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "3.3.0", - "messages-provider": "*", + "messages-provider": "https://assets.juno.global.cloud.sap/libs/messages-provider@0.1.12/package.tgz", "prop-types": "15.8.1", "react": "18.2.0", "react-dom": "18.2.0", - "url-state-provider": "*", - "url-state-router": "*", - "utils": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", + "url-state-router": "https://assets.juno.global.cloud.sap/libs/url-state-router@1.0.3/package.tgz", + "utils": "https://assets.juno.global.cloud.sap/libs/utils@1.1.6/package.tgz", "zustand": "4.3.7" }, "appProps": { diff --git a/apps/auth/README.md b/apps/auth/README.md index d0e2d7408..1a51eb71a 100644 --- a/apps/auth/README.md +++ b/apps/auth/README.md @@ -1,5 +1,7 @@ # Auth App +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) + This app implements the OIDC flow to login the user. ## Usage diff --git a/apps/auth/package.json b/apps/auth/package.json index b2d1c80fa..40d2bcce2 100644 --- a/apps/auth/package.json +++ b/apps/auth/package.json @@ -25,14 +25,14 @@ "autoprefixer": "^10.4.2", "babel-jest": "^29.3.1", "babel-plugin-transform-import-meta": "^2.2.0", - "communicator": "*", + "communicator": "https://assets.juno.global.cloud.sap/libs/communicator@2.2.6/package.tgz", "custom-event-polyfill": "^1.0.7", "esbuild": "^0.17.12", "interweave": "^13.0.0", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", - "juno-ui-components": "*", - "oauth": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", + "oauth": "https://assets.juno.global.cloud.sap/libs/oauth@1.2.1/package.tgz", "postcss": "^8.4.21", "postcss-url": "^10.1.3", "prop-types": "^15.8.1", @@ -51,8 +51,8 @@ }, "peerDependencies": { "custom-event-polyfill": "^1.0.7", - "juno-ui-components": "latest", - "oauth": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", + "oauth": "https://assets.juno.global.cloud.sap/libs/oauth@1.2.1/package.tgz", "prop-types": "^15.8.1", "react": "18.2.0", "react-dom": "^18.2.0" diff --git a/apps/dashboard/README.md b/apps/dashboard/README.md index c8ec37f20..31cb95eb2 100644 --- a/apps/dashboard/README.md +++ b/apps/dashboard/README.md @@ -1,3 +1,5 @@ # Global Dashboard +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) + This app implements the global landing apge for Converged Cloud (CC). It offers a region and domain selection so that the user can navigate directly to the CC Dashboard in the desired region. diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index 258a3d5e0..85e58ad4a 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -24,9 +24,10 @@ "autoprefixer": "^10.4.2", "babel-jest": "^29.3.1", "babel-plugin-transform-import-meta": "^2.2.0", + "esbuild": "^0.19.5", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", "postcss": "^8.4.21", "postcss-url": "^10.1.3", @@ -47,7 +48,7 @@ }, "peerDependencies": { "custom-event-polyfill": "^1.0.7", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", "prop-types": "^15.8.1", "react": "18.2.0", diff --git a/apps/playground/README.md b/apps/playground/README.md index 14a26fd28..e5bb823eb 100644 --- a/apps/playground/README.md +++ b/apps/playground/README.md @@ -1 +1,3 @@ # Payground app + +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) diff --git a/apps/playground/package.json b/apps/playground/package.json index 1b2b95459..7999a3af5 100644 --- a/apps/playground/package.json +++ b/apps/playground/package.json @@ -29,7 +29,7 @@ "esbuild": "^0.19.5", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "postcss": "^8.4.21", "postcss-url": "^10.1.3", "prop-types": "^15.8.1", @@ -40,7 +40,7 @@ "sass": "^1.60.0", "shadow-dom-testing-library": "^1.7.1", "tailwindcss": "^3.3.1", - "url-state-provider": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", "util": "^0.12.4", "zustand": "4.3.7" }, @@ -50,11 +50,11 @@ "build": "NODE_ENV=production node esbuild.config.js" }, "peerDependencies": { - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "prop-types": "^15.8.1", "react": "18.2.0", "react-dom": "18.2.0", - "url-state-provider": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", "zustand": "4.3.7" }, "importmapExtras": { diff --git a/apps/user-activity/README.md b/apps/user-activity/README.md index 9e5f64647..04afb1d03 100644 --- a/apps/user-activity/README.md +++ b/apps/user-activity/README.md @@ -1,5 +1,7 @@ # User-activity App +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) + This app tracks the user activity (using event listeners as per example `mousemove`) to notify per broadcast events when the user has been inactive for a default period of 1800 seconds or again active. All other apps listening to the broadcast events can react accordingly and set the application to standby or reactivate and so save resources or reduce the amount of request during the inactive period. Please visit the section **scrip tag** to see all available **props** and their **default values**. diff --git a/apps/user-activity/package.json b/apps/user-activity/package.json index dca41ced2..1da877bb1 100644 --- a/apps/user-activity/package.json +++ b/apps/user-activity/package.json @@ -24,7 +24,7 @@ "autoprefixer": "^10.4.2", "babel-jest": "^29.3.1", "babel-plugin-transform-import-meta": "^2.2.0", - "communicator": "*", + "communicator": "https://assets.juno.global.cloud.sap/libs/communicator@2.2.6/package.tgz", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", "postcss": "^8.4.21", diff --git a/apps/volta/README.md b/apps/volta/README.md index bb176968e..4e9cc374f 100644 --- a/apps/volta/README.md +++ b/apps/volta/README.md @@ -1,5 +1,7 @@ # VOLTA UI +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) + This mircro frontent uses the Volta API to manage own certificates providing: - Create signed certificates diff --git a/apps/volta/jest.config.js b/apps/volta/jest.config.js index d16f3da9d..cd58e0648 100644 --- a/apps/volta/jest.config.js +++ b/apps/volta/jest.config.js @@ -8,7 +8,7 @@ module.exports = { testEnvironment: "jsdom", setupFilesAfterEnv: ["/setupTests.js"], transformIgnorePatterns: [ - "node_modules/(?!(juno-ui-components|messages-provider)/)", + "node_modules/(?!(juno-ui-components|messages-provider|utils)/)", ], moduleNameMapper: { // Jest currently doesn't support resources with query parameters. diff --git a/apps/volta/package.json b/apps/volta/package.json index c57b058e8..2a4855697 100644 --- a/apps/volta/package.json +++ b/apps/volta/package.json @@ -27,14 +27,14 @@ "autoprefixer": "^10.4.2", "babel-jest": "^29.3.1", "babel-plugin-transform-import-meta": "^2.2.0", - "communicator": "*", + "communicator": "https://assets.juno.global.cloud.sap/libs/communicator@2.2.6/package.tgz", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "lodash.uniqueid": "^4.0.1", "luxon": "^2.3.0", - "messages-provider": "*", - "oauth": "*", + "messages-provider": "https://assets.juno.global.cloud.sap/libs/messages-provider@0.1.12/package.tgz", + "oauth": "https://assets.juno.global.cloud.sap/libs/oauth@1.2.1/package.tgz", "postcss": "^8.4.21", "postcss-url": "^10.1.3", "prop-types": "^15.8.1", @@ -45,23 +45,23 @@ "sass": "^1.60.0", "shadow-dom-testing-library": "^1.7.1", "tailwindcss": "^3.3.1", - "url-state-provider": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", "util": "^0.12.4", - "utils": "*", + "utils": "https://assets.juno.global.cloud.sap/libs/utils@1.1.6/package.tgz", "zustand": "4.3.7" }, "peerDependencies": { "@tanstack/react-query": "4.28.0", "custom-event-polyfill": "^1.0.7", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", - "messages-provider": "*", - "oauth": "*", + "messages-provider": "https://assets.juno.global.cloud.sap/libs/messages-provider@0.1.12/package.tgz", + "oauth": "https://assets.juno.global.cloud.sap/libs/oauth@1.2.1/package.tgz", "prop-types": "^15.8.1", "react": "18.2.0", "react-dom": "^18.2.0", - "url-state-provider": "*", - "utils": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", + "utils": "https://assets.juno.global.cloud.sap/libs/utils@1.1.6/package.tgz", "zustand": "4.3.7" }, "importmapExtras": { diff --git a/apps/whois/README.md b/apps/whois/README.md index d2a09af70..fc9f91f33 100644 --- a/apps/whois/README.md +++ b/apps/whois/README.md @@ -1,3 +1,5 @@ # WHOIS UI +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) + This is the micro frontend app for the whois service. Whois allows you to get detailed information about a specific IP in Converged Cloud. diff --git a/apps/whois/package.json b/apps/whois/package.json index 0160a7b69..cfa5992f1 100644 --- a/apps/whois/package.json +++ b/apps/whois/package.json @@ -26,11 +26,11 @@ "babel-jest": "^29.3.1", "babel-plugin-transform-import-meta": "^2.2.0", "cidr-regex": "^3.1.1", - "communicator": "*", + "communicator": "https://assets.juno.global.cloud.sap/libs/communicator@2.2.6/package.tgz", "ip-regex": "^5.0.0", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", "postcss": "^8.4.21", "postcss-url": "^10.1.3", @@ -41,7 +41,7 @@ "sass": "^1.60.0", "shadow-dom-testing-library": "^1.8.0", "tailwindcss": "^3.3.1", - "url-state-provider": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", "util": "^0.12.4" }, "scripts": { @@ -50,12 +50,12 @@ "build": "NODE_ENV=production node esbuild.config.js" }, "peerDependencies": { - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", "prop-types": "^15.8.1", "react": "18.2.0", "react-dom": "^18.2.0", - "url-state-provider": "*" + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz" }, "appProps": { "theme": { diff --git a/apps/widget-loader/README.md b/apps/widget-loader/README.md index e492b8e6d..0d6bea2f4 100644 --- a/apps/widget-loader/README.md +++ b/apps/widget-loader/README.md @@ -1,5 +1,7 @@ # Widget Loader +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) + The Widget Loader streamlines the efficient loading of diverse applications. It initiates the process by loading an import map, serving as a comprehensive repository of dependencies for all assets. This import map is a collection of key-value pairs, where keys represent package names, and corresponding values indicate URLs leading to the package sources. It lays the foundation for subsequent loading steps, ensuring the runtime availability of all dependencies and enabling multiple applications to efficiently share libraries. ## Usage diff --git a/apps/exampleapp/LICENSE b/apps_deprecated/exampleapp/LICENSE similarity index 100% rename from apps/exampleapp/LICENSE rename to apps_deprecated/exampleapp/LICENSE diff --git a/apps/exampleapp/README.md b/apps_deprecated/exampleapp/README.md similarity index 100% rename from apps/exampleapp/README.md rename to apps_deprecated/exampleapp/README.md diff --git a/apps/exampleapp/__mocks__/client.js b/apps_deprecated/exampleapp/__mocks__/client.js similarity index 100% rename from apps/exampleapp/__mocks__/client.js rename to apps_deprecated/exampleapp/__mocks__/client.js diff --git a/apps/exampleapp/__mocks__/fileMock.js b/apps_deprecated/exampleapp/__mocks__/fileMock.js similarity index 100% rename from apps/exampleapp/__mocks__/fileMock.js rename to apps_deprecated/exampleapp/__mocks__/fileMock.js diff --git a/apps/exampleapp/__mocks__/styleMock.js b/apps_deprecated/exampleapp/__mocks__/styleMock.js similarity index 100% rename from apps/exampleapp/__mocks__/styleMock.js rename to apps_deprecated/exampleapp/__mocks__/styleMock.js diff --git a/apps/exampleapp/babel.config.js b/apps_deprecated/exampleapp/babel.config.js similarity index 100% rename from apps/exampleapp/babel.config.js rename to apps_deprecated/exampleapp/babel.config.js diff --git a/apps/exampleapp/db.json b/apps_deprecated/exampleapp/db.json similarity index 100% rename from apps/exampleapp/db.json rename to apps_deprecated/exampleapp/db.json diff --git a/apps/exampleapp/esbuild.config.js b/apps_deprecated/exampleapp/esbuild.config.js similarity index 100% rename from apps/exampleapp/esbuild.config.js rename to apps_deprecated/exampleapp/esbuild.config.js diff --git a/apps/exampleapp/jest.config.js b/apps_deprecated/exampleapp/jest.config.js similarity index 86% rename from apps/exampleapp/jest.config.js rename to apps_deprecated/exampleapp/jest.config.js index 5f65d6a46..33ea7ddfe 100644 --- a/apps/exampleapp/jest.config.js +++ b/apps_deprecated/exampleapp/jest.config.js @@ -7,7 +7,9 @@ module.exports = { transform: { "\\.[jt]sx?$": "babel-jest" }, testEnvironment: "jsdom", setupFilesAfterEnv: ["/setupTests.js"], - transformIgnorePatterns: ["node_modules/(?!(juno-ui-components)/)"], + transformIgnorePatterns: [ + "node_modules/(?!(juno-ui-components|oauth|messages-provider|utils)/)", + ], moduleNameMapper: { // Jest currently doesn't support resources with query parameters. // Therefore we add the optional query parameter matcher at the end diff --git a/apps/exampleapp/package.json b/apps_deprecated/exampleapp/package.json similarity index 70% rename from apps/exampleapp/package.json rename to apps_deprecated/exampleapp/package.json index 1a1e48134..afadd9c51 100644 --- a/apps/exampleapp/package.json +++ b/apps_deprecated/exampleapp/package.json @@ -29,10 +29,10 @@ "esbuild": "^0.17.19", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", - "messages-provider": "*", - "oauth": "*", + "messages-provider": "https://assets.juno.global.cloud.sap/libs/messages-provider@0.1.12/package.tgz", + "oauth": "https://assets.juno.global.cloud.sap/libs/oauth@1.2.1/package.tgz", "postcss": "^8.4.21", "postcss-url": "^10.1.3", "prop-types": "^15.8.1", @@ -42,9 +42,9 @@ "sass": "^1.60.0", "shadow-dom-testing-library": "^1.7.1", "tailwindcss": "^3.3.1", - "url-state-provider": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", "util": "^0.12.4", - "utils": "*", + "utils": "https://assets.juno.global.cloud.sap/libs/utils@1.1.6/package.tgz", "zustand": "4.3.7" }, "scripts": { @@ -55,15 +55,15 @@ "peerDependencies": { "@tanstack/react-query": "4.28.0", "custom-event-polyfill": "^1.0.7", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", - "messages-provider": "*", - "oauth": "*", + "messages-provider": "https://assets.juno.global.cloud.sap/libs/messages-provider@0.1.12/package.tgz", + "oauth": "https://assets.juno.global.cloud.sap/libs/oauth@1.2.1/package.tgz", "prop-types": "^15.8.1", "react": "18.2.0", "react-dom": "^18.2.0", - "url-state-provider": "*", - "utils": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", + "utils": "https://assets.juno.global.cloud.sap/libs/utils@1.1.6/package.tgz", "zustand": "4.3.7" }, "importmapExtras": { diff --git a/apps/exampleapp/public/favicon.ico b/apps_deprecated/exampleapp/public/favicon.ico similarity index 100% rename from apps/exampleapp/public/favicon.ico rename to apps_deprecated/exampleapp/public/favicon.ico diff --git a/apps/exampleapp/public/index.html b/apps_deprecated/exampleapp/public/index.html similarity index 100% rename from apps/exampleapp/public/index.html rename to apps_deprecated/exampleapp/public/index.html diff --git a/apps/exampleapp/setupTests.js b/apps_deprecated/exampleapp/setupTests.js similarity index 100% rename from apps/exampleapp/setupTests.js rename to apps_deprecated/exampleapp/setupTests.js diff --git a/apps/exampleapp/src/App.jsx b/apps_deprecated/exampleapp/src/App.jsx similarity index 100% rename from apps/exampleapp/src/App.jsx rename to apps_deprecated/exampleapp/src/App.jsx diff --git a/apps/exampleapp/src/App.test.js b/apps_deprecated/exampleapp/src/App.test.js similarity index 100% rename from apps/exampleapp/src/App.test.js rename to apps_deprecated/exampleapp/src/App.test.js diff --git a/apps/exampleapp/src/components/AppContent.js b/apps_deprecated/exampleapp/src/components/AppContent.js similarity index 100% rename from apps/exampleapp/src/components/AppContent.js rename to apps_deprecated/exampleapp/src/components/AppContent.js diff --git a/apps/exampleapp/src/components/AsyncWorker.jsx b/apps_deprecated/exampleapp/src/components/AsyncWorker.jsx similarity index 100% rename from apps/exampleapp/src/components/AsyncWorker.jsx rename to apps_deprecated/exampleapp/src/components/AsyncWorker.jsx diff --git a/apps/exampleapp/src/components/ModalManager.js b/apps_deprecated/exampleapp/src/components/ModalManager.js similarity index 100% rename from apps/exampleapp/src/components/ModalManager.js rename to apps_deprecated/exampleapp/src/components/ModalManager.js diff --git a/apps/exampleapp/src/components/PanelManager.js b/apps_deprecated/exampleapp/src/components/PanelManager.js similarity index 100% rename from apps/exampleapp/src/components/PanelManager.js rename to apps_deprecated/exampleapp/src/components/PanelManager.js diff --git a/apps/exampleapp/src/components/Playground.js b/apps_deprecated/exampleapp/src/components/Playground.js similarity index 100% rename from apps/exampleapp/src/components/Playground.js rename to apps_deprecated/exampleapp/src/components/Playground.js diff --git a/apps/exampleapp/src/components/StoreProvider.jsx b/apps_deprecated/exampleapp/src/components/StoreProvider.jsx similarity index 100% rename from apps/exampleapp/src/components/StoreProvider.jsx rename to apps_deprecated/exampleapp/src/components/StoreProvider.jsx diff --git a/apps/exampleapp/src/components/TestModal.js b/apps_deprecated/exampleapp/src/components/TestModal.js similarity index 100% rename from apps/exampleapp/src/components/TestModal.js rename to apps_deprecated/exampleapp/src/components/TestModal.js diff --git a/apps/exampleapp/src/components/WelcomeView.js b/apps_deprecated/exampleapp/src/components/WelcomeView.js similarity index 100% rename from apps/exampleapp/src/components/WelcomeView.js rename to apps_deprecated/exampleapp/src/components/WelcomeView.js diff --git a/apps/exampleapp/src/components/auth/Avatar.js b/apps_deprecated/exampleapp/src/components/auth/Avatar.js similarity index 100% rename from apps/exampleapp/src/components/auth/Avatar.js rename to apps_deprecated/exampleapp/src/components/auth/Avatar.js diff --git a/apps/exampleapp/src/components/auth/HeaderUser.js b/apps_deprecated/exampleapp/src/components/auth/HeaderUser.js similarity index 100% rename from apps/exampleapp/src/components/auth/HeaderUser.js rename to apps_deprecated/exampleapp/src/components/auth/HeaderUser.js diff --git a/apps/exampleapp/src/components/peaks/Peaks.js b/apps_deprecated/exampleapp/src/components/peaks/Peaks.js similarity index 100% rename from apps/exampleapp/src/components/peaks/Peaks.js rename to apps_deprecated/exampleapp/src/components/peaks/Peaks.js diff --git a/apps/exampleapp/src/components/peaks/PeaksEdit.js b/apps_deprecated/exampleapp/src/components/peaks/PeaksEdit.js similarity index 100% rename from apps/exampleapp/src/components/peaks/PeaksEdit.js rename to apps_deprecated/exampleapp/src/components/peaks/PeaksEdit.js diff --git a/apps/exampleapp/src/components/peaks/PeaksList.js b/apps_deprecated/exampleapp/src/components/peaks/PeaksList.js similarity index 100% rename from apps/exampleapp/src/components/peaks/PeaksList.js rename to apps_deprecated/exampleapp/src/components/peaks/PeaksList.js diff --git a/apps/exampleapp/src/components/peaks/PeaksListItem.js b/apps_deprecated/exampleapp/src/components/peaks/PeaksListItem.js similarity index 100% rename from apps/exampleapp/src/components/peaks/PeaksListItem.js rename to apps_deprecated/exampleapp/src/components/peaks/PeaksListItem.js diff --git a/apps/exampleapp/src/components/peaks/PeaksNew.js b/apps_deprecated/exampleapp/src/components/peaks/PeaksNew.js similarity index 100% rename from apps/exampleapp/src/components/peaks/PeaksNew.js rename to apps_deprecated/exampleapp/src/components/peaks/PeaksNew.js diff --git a/apps/exampleapp/src/components/shared/HintLoading.js b/apps_deprecated/exampleapp/src/components/shared/HintLoading.js similarity index 100% rename from apps/exampleapp/src/components/shared/HintLoading.js rename to apps_deprecated/exampleapp/src/components/shared/HintLoading.js diff --git a/apps/exampleapp/src/components/shared/HintNotFound.jsx b/apps_deprecated/exampleapp/src/components/shared/HintNotFound.jsx similarity index 100% rename from apps/exampleapp/src/components/shared/HintNotFound.jsx rename to apps_deprecated/exampleapp/src/components/shared/HintNotFound.jsx diff --git a/apps/exampleapp/src/hooks/useEndlessScrollList.js b/apps_deprecated/exampleapp/src/hooks/useEndlessScrollList.js similarity index 100% rename from apps/exampleapp/src/hooks/useEndlessScrollList.js rename to apps_deprecated/exampleapp/src/hooks/useEndlessScrollList.js diff --git a/apps/exampleapp/src/hooks/useQueryClientFn.js b/apps_deprecated/exampleapp/src/hooks/useQueryClientFn.js similarity index 100% rename from apps/exampleapp/src/hooks/useQueryClientFn.js rename to apps_deprecated/exampleapp/src/hooks/useQueryClientFn.js diff --git a/apps/exampleapp/src/hooks/useUrlState.js b/apps_deprecated/exampleapp/src/hooks/useUrlState.js similarity index 100% rename from apps/exampleapp/src/hooks/useUrlState.js rename to apps_deprecated/exampleapp/src/hooks/useUrlState.js diff --git a/apps/exampleapp/src/img/app_bg_example.svg b/apps_deprecated/exampleapp/src/img/app_bg_example.svg similarity index 100% rename from apps/exampleapp/src/img/app_bg_example.svg rename to apps_deprecated/exampleapp/src/img/app_bg_example.svg diff --git a/apps/exampleapp/src/index.js b/apps_deprecated/exampleapp/src/index.js similarity index 100% rename from apps/exampleapp/src/index.js rename to apps_deprecated/exampleapp/src/index.js diff --git a/apps/exampleapp/src/lib/store/createAuthSlice.js b/apps_deprecated/exampleapp/src/lib/store/createAuthSlice.js similarity index 100% rename from apps/exampleapp/src/lib/store/createAuthSlice.js rename to apps_deprecated/exampleapp/src/lib/store/createAuthSlice.js diff --git a/apps/exampleapp/src/lib/store/createGlobalsSlice.js b/apps_deprecated/exampleapp/src/lib/store/createGlobalsSlice.js similarity index 100% rename from apps/exampleapp/src/lib/store/createGlobalsSlice.js rename to apps_deprecated/exampleapp/src/lib/store/createGlobalsSlice.js diff --git a/apps/exampleapp/src/lib/store/index.js b/apps_deprecated/exampleapp/src/lib/store/index.js similarity index 100% rename from apps/exampleapp/src/lib/store/index.js rename to apps_deprecated/exampleapp/src/lib/store/index.js diff --git a/apps/exampleapp/src/styles.scss b/apps_deprecated/exampleapp/src/styles.scss similarity index 100% rename from apps/exampleapp/src/styles.scss rename to apps_deprecated/exampleapp/src/styles.scss diff --git a/apps/exampleapp/tailwind.config.js b/apps_deprecated/exampleapp/tailwind.config.js similarity index 100% rename from apps/exampleapp/tailwind.config.js rename to apps_deprecated/exampleapp/tailwind.config.js diff --git a/apps/greenhouse-management/LICENSE b/apps_deprecated/greenhouse-management/LICENSE similarity index 100% rename from apps/greenhouse-management/LICENSE rename to apps_deprecated/greenhouse-management/LICENSE diff --git a/apps/greenhouse-management/README.md b/apps_deprecated/greenhouse-management/README.md similarity index 100% rename from apps/greenhouse-management/README.md rename to apps_deprecated/greenhouse-management/README.md diff --git a/apps/greenhouse-management/__mocks__/client.js b/apps_deprecated/greenhouse-management/__mocks__/client.js similarity index 100% rename from apps/greenhouse-management/__mocks__/client.js rename to apps_deprecated/greenhouse-management/__mocks__/client.js diff --git a/apps/greenhouse-management/__mocks__/fileMock.js b/apps_deprecated/greenhouse-management/__mocks__/fileMock.js similarity index 100% rename from apps/greenhouse-management/__mocks__/fileMock.js rename to apps_deprecated/greenhouse-management/__mocks__/fileMock.js diff --git a/apps/greenhouse-management/__mocks__/styleMock.js b/apps_deprecated/greenhouse-management/__mocks__/styleMock.js similarity index 100% rename from apps/greenhouse-management/__mocks__/styleMock.js rename to apps_deprecated/greenhouse-management/__mocks__/styleMock.js diff --git a/apps/greenhouse-management/babel.config.js b/apps_deprecated/greenhouse-management/babel.config.js similarity index 100% rename from apps/greenhouse-management/babel.config.js rename to apps_deprecated/greenhouse-management/babel.config.js diff --git a/apps/greenhouse-management/esbuild.config.js b/apps_deprecated/greenhouse-management/esbuild.config.js similarity index 100% rename from apps/greenhouse-management/esbuild.config.js rename to apps_deprecated/greenhouse-management/esbuild.config.js diff --git a/apps/greenhouse-management/jest.config.js b/apps_deprecated/greenhouse-management/jest.config.js similarity index 100% rename from apps/greenhouse-management/jest.config.js rename to apps_deprecated/greenhouse-management/jest.config.js diff --git a/apps/greenhouse-management/package.json b/apps_deprecated/greenhouse-management/package.json similarity index 100% rename from apps/greenhouse-management/package.json rename to apps_deprecated/greenhouse-management/package.json diff --git a/apps/greenhouse-management/public/favicon-16x16.png b/apps_deprecated/greenhouse-management/public/favicon-16x16.png similarity index 100% rename from apps/greenhouse-management/public/favicon-16x16.png rename to apps_deprecated/greenhouse-management/public/favicon-16x16.png diff --git a/apps/greenhouse-management/public/favicon-32x32.png b/apps_deprecated/greenhouse-management/public/favicon-32x32.png similarity index 100% rename from apps/greenhouse-management/public/favicon-32x32.png rename to apps_deprecated/greenhouse-management/public/favicon-32x32.png diff --git a/apps/greenhouse-management/public/favicon.ico b/apps_deprecated/greenhouse-management/public/favicon.ico similarity index 100% rename from apps/greenhouse-management/public/favicon.ico rename to apps_deprecated/greenhouse-management/public/favicon.ico diff --git a/apps/greenhouse-management/public/index.html b/apps_deprecated/greenhouse-management/public/index.html similarity index 100% rename from apps/greenhouse-management/public/index.html rename to apps_deprecated/greenhouse-management/public/index.html diff --git a/apps/greenhouse-management/secretProps.template.json b/apps_deprecated/greenhouse-management/secretProps.template.json similarity index 100% rename from apps/greenhouse-management/secretProps.template.json rename to apps_deprecated/greenhouse-management/secretProps.template.json diff --git a/apps/greenhouse-management/setupTests.js b/apps_deprecated/greenhouse-management/setupTests.js similarity index 100% rename from apps/greenhouse-management/setupTests.js rename to apps_deprecated/greenhouse-management/setupTests.js diff --git a/apps/greenhouse-management/src/App.js b/apps_deprecated/greenhouse-management/src/App.js similarity index 100% rename from apps/greenhouse-management/src/App.js rename to apps_deprecated/greenhouse-management/src/App.js diff --git a/apps/greenhouse-management/src/App.test.js b/apps_deprecated/greenhouse-management/src/App.test.js similarity index 100% rename from apps/greenhouse-management/src/App.test.js rename to apps_deprecated/greenhouse-management/src/App.test.js diff --git a/apps/greenhouse-management/src/AppContent.js b/apps_deprecated/greenhouse-management/src/AppContent.js similarity index 100% rename from apps/greenhouse-management/src/AppContent.js rename to apps_deprecated/greenhouse-management/src/AppContent.js diff --git a/apps/greenhouse-management/src/assets/.gitkeep b/apps_deprecated/greenhouse-management/src/assets/.gitkeep similarity index 100% rename from apps/greenhouse-management/src/assets/.gitkeep rename to apps_deprecated/greenhouse-management/src/assets/.gitkeep diff --git a/apps/greenhouse-management/src/assets/juno-danger.svg b/apps_deprecated/greenhouse-management/src/assets/juno-danger.svg similarity index 100% rename from apps/greenhouse-management/src/assets/juno-danger.svg rename to apps_deprecated/greenhouse-management/src/assets/juno-danger.svg diff --git a/apps/greenhouse-management/src/assets/map.svg b/apps_deprecated/greenhouse-management/src/assets/map.svg similarity index 100% rename from apps/greenhouse-management/src/assets/map.svg rename to apps_deprecated/greenhouse-management/src/assets/map.svg diff --git a/apps/greenhouse-management/src/assets/rocket.gif b/apps_deprecated/greenhouse-management/src/assets/rocket.gif similarity index 100% rename from apps/greenhouse-management/src/assets/rocket.gif rename to apps_deprecated/greenhouse-management/src/assets/rocket.gif diff --git a/apps/greenhouse-management/src/components/AsyncWorker.jsx b/apps_deprecated/greenhouse-management/src/components/AsyncWorker.jsx similarity index 100% rename from apps/greenhouse-management/src/components/AsyncWorker.jsx rename to apps_deprecated/greenhouse-management/src/components/AsyncWorker.jsx diff --git a/apps/greenhouse-management/src/components/Auth.jsx b/apps_deprecated/greenhouse-management/src/components/Auth.jsx similarity index 100% rename from apps/greenhouse-management/src/components/Auth.jsx rename to apps_deprecated/greenhouse-management/src/components/Auth.jsx diff --git a/apps/greenhouse-management/src/components/OrgInfo.jsx b/apps_deprecated/greenhouse-management/src/components/OrgInfo.jsx similarity index 100% rename from apps/greenhouse-management/src/components/OrgInfo.jsx rename to apps_deprecated/greenhouse-management/src/components/OrgInfo.jsx diff --git a/apps/greenhouse-management/src/components/Plugin.jsx b/apps_deprecated/greenhouse-management/src/components/Plugin.jsx similarity index 100% rename from apps/greenhouse-management/src/components/Plugin.jsx rename to apps_deprecated/greenhouse-management/src/components/Plugin.jsx diff --git a/apps/greenhouse-management/src/components/PluginContainer.jsx b/apps_deprecated/greenhouse-management/src/components/PluginContainer.jsx similarity index 100% rename from apps/greenhouse-management/src/components/PluginContainer.jsx rename to apps_deprecated/greenhouse-management/src/components/PluginContainer.jsx diff --git a/apps/greenhouse-management/src/components/SideNav.js b/apps_deprecated/greenhouse-management/src/components/SideNav.js similarity index 100% rename from apps/greenhouse-management/src/components/SideNav.js rename to apps_deprecated/greenhouse-management/src/components/SideNav.js diff --git a/apps/greenhouse-management/src/components/StoreProvider.js b/apps_deprecated/greenhouse-management/src/components/StoreProvider.js similarity index 100% rename from apps/greenhouse-management/src/components/StoreProvider.js rename to apps_deprecated/greenhouse-management/src/components/StoreProvider.js diff --git a/apps/greenhouse-management/src/components/UrlState.jsx b/apps_deprecated/greenhouse-management/src/components/UrlState.jsx similarity index 100% rename from apps/greenhouse-management/src/components/UrlState.jsx rename to apps_deprecated/greenhouse-management/src/components/UrlState.jsx diff --git a/apps/greenhouse-management/src/components/shared/HintLoading.js b/apps_deprecated/greenhouse-management/src/components/shared/HintLoading.js similarity index 100% rename from apps/greenhouse-management/src/components/shared/HintLoading.js rename to apps_deprecated/greenhouse-management/src/components/shared/HintLoading.js diff --git a/apps/greenhouse-management/src/hooks/.gitkeep b/apps_deprecated/greenhouse-management/src/hooks/.gitkeep similarity index 100% rename from apps/greenhouse-management/src/hooks/.gitkeep rename to apps_deprecated/greenhouse-management/src/hooks/.gitkeep diff --git a/apps/greenhouse-management/src/hooks/useCommunication.js b/apps_deprecated/greenhouse-management/src/hooks/useCommunication.js similarity index 100% rename from apps/greenhouse-management/src/hooks/useCommunication.js rename to apps_deprecated/greenhouse-management/src/hooks/useCommunication.js diff --git a/apps/greenhouse-management/src/hooks/useUrlState.js b/apps_deprecated/greenhouse-management/src/hooks/useUrlState.js similarity index 100% rename from apps/greenhouse-management/src/hooks/useUrlState.js rename to apps_deprecated/greenhouse-management/src/hooks/useUrlState.js diff --git a/apps/greenhouse-management/src/index.js b/apps_deprecated/greenhouse-management/src/index.js similarity index 100% rename from apps/greenhouse-management/src/index.js rename to apps_deprecated/greenhouse-management/src/index.js diff --git a/apps/greenhouse-management/src/lib/helpers.js b/apps_deprecated/greenhouse-management/src/lib/helpers.js similarity index 100% rename from apps/greenhouse-management/src/lib/helpers.js rename to apps_deprecated/greenhouse-management/src/lib/helpers.js diff --git a/apps/greenhouse-management/src/lib/store.js b/apps_deprecated/greenhouse-management/src/lib/store.js similarity index 100% rename from apps/greenhouse-management/src/lib/store.js rename to apps_deprecated/greenhouse-management/src/lib/store.js diff --git a/apps/greenhouse-management/src/styles.scss b/apps_deprecated/greenhouse-management/src/styles.scss similarity index 100% rename from apps/greenhouse-management/src/styles.scss rename to apps_deprecated/greenhouse-management/src/styles.scss diff --git a/apps/greenhouse-management/tailwind.config.js b/apps_deprecated/greenhouse-management/tailwind.config.js similarity index 100% rename from apps/greenhouse-management/tailwind.config.js rename to apps_deprecated/greenhouse-management/tailwind.config.js diff --git a/apps/greenhouse/.gitignore b/apps_deprecated/greenhouse/.gitignore similarity index 100% rename from apps/greenhouse/.gitignore rename to apps_deprecated/greenhouse/.gitignore diff --git a/apps/greenhouse/LICENSE b/apps_deprecated/greenhouse/LICENSE similarity index 100% rename from apps/greenhouse/LICENSE rename to apps_deprecated/greenhouse/LICENSE diff --git a/apps/greenhouse/README.md b/apps_deprecated/greenhouse/README.md similarity index 100% rename from apps/greenhouse/README.md rename to apps_deprecated/greenhouse/README.md diff --git a/apps/greenhouse/__mocks__/client.js b/apps_deprecated/greenhouse/__mocks__/client.js similarity index 100% rename from apps/greenhouse/__mocks__/client.js rename to apps_deprecated/greenhouse/__mocks__/client.js diff --git a/apps/greenhouse/__mocks__/fileMock.js b/apps_deprecated/greenhouse/__mocks__/fileMock.js similarity index 100% rename from apps/greenhouse/__mocks__/fileMock.js rename to apps_deprecated/greenhouse/__mocks__/fileMock.js diff --git a/apps/greenhouse/__mocks__/styleMock.js b/apps_deprecated/greenhouse/__mocks__/styleMock.js similarity index 100% rename from apps/greenhouse/__mocks__/styleMock.js rename to apps_deprecated/greenhouse/__mocks__/styleMock.js diff --git a/apps/greenhouse/babel.config.js b/apps_deprecated/greenhouse/babel.config.js similarity index 100% rename from apps/greenhouse/babel.config.js rename to apps_deprecated/greenhouse/babel.config.js diff --git a/apps/greenhouse/esbuild.config.js b/apps_deprecated/greenhouse/esbuild.config.js similarity index 100% rename from apps/greenhouse/esbuild.config.js rename to apps_deprecated/greenhouse/esbuild.config.js diff --git a/apps/greenhouse/jest.config.js b/apps_deprecated/greenhouse/jest.config.js similarity index 100% rename from apps/greenhouse/jest.config.js rename to apps_deprecated/greenhouse/jest.config.js diff --git a/apps/greenhouse/package.json b/apps_deprecated/greenhouse/package.json similarity index 100% rename from apps/greenhouse/package.json rename to apps_deprecated/greenhouse/package.json diff --git a/apps/greenhouse/public/android-chrome-192x192.png b/apps_deprecated/greenhouse/public/android-chrome-192x192.png similarity index 100% rename from apps/greenhouse/public/android-chrome-192x192.png rename to apps_deprecated/greenhouse/public/android-chrome-192x192.png diff --git a/apps/greenhouse/public/android-chrome-512x512.png b/apps_deprecated/greenhouse/public/android-chrome-512x512.png similarity index 100% rename from apps/greenhouse/public/android-chrome-512x512.png rename to apps_deprecated/greenhouse/public/android-chrome-512x512.png diff --git a/apps/greenhouse/public/apple-touch-icon.png b/apps_deprecated/greenhouse/public/apple-touch-icon.png similarity index 100% rename from apps/greenhouse/public/apple-touch-icon.png rename to apps_deprecated/greenhouse/public/apple-touch-icon.png diff --git a/apps/greenhouse/public/favicon.ico b/apps_deprecated/greenhouse/public/favicon.ico similarity index 100% rename from apps/greenhouse/public/favicon.ico rename to apps_deprecated/greenhouse/public/favicon.ico diff --git a/apps/greenhouse/public/favicon.svg b/apps_deprecated/greenhouse/public/favicon.svg similarity index 100% rename from apps/greenhouse/public/favicon.svg rename to apps_deprecated/greenhouse/public/favicon.svg diff --git a/apps/greenhouse/public/index.html b/apps_deprecated/greenhouse/public/index.html similarity index 100% rename from apps/greenhouse/public/index.html rename to apps_deprecated/greenhouse/public/index.html diff --git a/apps/greenhouse/secretProps.template.json b/apps_deprecated/greenhouse/secretProps.template.json similarity index 100% rename from apps/greenhouse/secretProps.template.json rename to apps_deprecated/greenhouse/secretProps.template.json diff --git a/apps/greenhouse/setupTests.js b/apps_deprecated/greenhouse/setupTests.js similarity index 100% rename from apps/greenhouse/setupTests.js rename to apps_deprecated/greenhouse/setupTests.js diff --git a/apps/greenhouse/src/Shell.js b/apps_deprecated/greenhouse/src/Shell.js similarity index 100% rename from apps/greenhouse/src/Shell.js rename to apps_deprecated/greenhouse/src/Shell.js diff --git a/apps/greenhouse/src/Shell.test.js b/apps_deprecated/greenhouse/src/Shell.test.js similarity index 100% rename from apps/greenhouse/src/Shell.test.js rename to apps_deprecated/greenhouse/src/Shell.test.js diff --git a/apps/greenhouse/src/actions.js b/apps_deprecated/greenhouse/src/actions.js similarity index 100% rename from apps/greenhouse/src/actions.js rename to apps_deprecated/greenhouse/src/actions.js diff --git a/apps/greenhouse/src/assets/ccloud_shape.svg b/apps_deprecated/greenhouse/src/assets/ccloud_shape.svg similarity index 100% rename from apps/greenhouse/src/assets/ccloud_shape.svg rename to apps_deprecated/greenhouse/src/assets/ccloud_shape.svg diff --git a/apps/greenhouse/src/assets/greenhouse_logo.svg b/apps_deprecated/greenhouse/src/assets/greenhouse_logo.svg similarity index 100% rename from apps/greenhouse/src/assets/greenhouse_logo.svg rename to apps_deprecated/greenhouse/src/assets/greenhouse_logo.svg diff --git a/apps/greenhouse/src/assets/juno_default_app.svg b/apps_deprecated/greenhouse/src/assets/juno_default_app.svg similarity index 100% rename from apps/greenhouse/src/assets/juno_default_app.svg rename to apps_deprecated/greenhouse/src/assets/juno_default_app.svg diff --git a/apps/greenhouse/src/assets/juno_doop.svg b/apps_deprecated/greenhouse/src/assets/juno_doop.svg similarity index 100% rename from apps/greenhouse/src/assets/juno_doop.svg rename to apps_deprecated/greenhouse/src/assets/juno_doop.svg diff --git a/apps/greenhouse/src/assets/juno_heureka.svg b/apps_deprecated/greenhouse/src/assets/juno_heureka.svg similarity index 100% rename from apps/greenhouse/src/assets/juno_heureka.svg rename to apps_deprecated/greenhouse/src/assets/juno_heureka.svg diff --git a/apps/greenhouse/src/assets/juno_supernova.svg b/apps_deprecated/greenhouse/src/assets/juno_supernova.svg similarity index 100% rename from apps/greenhouse/src/assets/juno_supernova.svg rename to apps_deprecated/greenhouse/src/assets/juno_supernova.svg diff --git a/apps/greenhouse/src/components/AsyncWorker.jsx b/apps_deprecated/greenhouse/src/components/AsyncWorker.jsx similarity index 100% rename from apps/greenhouse/src/components/AsyncWorker.jsx rename to apps_deprecated/greenhouse/src/components/AsyncWorker.jsx diff --git a/apps/greenhouse/src/components/Auth.jsx b/apps_deprecated/greenhouse/src/components/Auth.jsx similarity index 100% rename from apps/greenhouse/src/components/Auth.jsx rename to apps_deprecated/greenhouse/src/components/Auth.jsx diff --git a/apps/greenhouse/src/components/Avatar.jsx b/apps_deprecated/greenhouse/src/components/Avatar.jsx similarity index 100% rename from apps/greenhouse/src/components/Avatar.jsx rename to apps_deprecated/greenhouse/src/components/Avatar.jsx diff --git a/apps/greenhouse/src/components/NotificationsContainer.jsx b/apps_deprecated/greenhouse/src/components/NotificationsContainer.jsx similarity index 100% rename from apps/greenhouse/src/components/NotificationsContainer.jsx rename to apps_deprecated/greenhouse/src/components/NotificationsContainer.jsx diff --git a/apps/greenhouse/src/components/Plugin.jsx b/apps_deprecated/greenhouse/src/components/Plugin.jsx similarity index 100% rename from apps/greenhouse/src/components/Plugin.jsx rename to apps_deprecated/greenhouse/src/components/Plugin.jsx diff --git a/apps/greenhouse/src/components/PluginContainer.jsx b/apps_deprecated/greenhouse/src/components/PluginContainer.jsx similarity index 100% rename from apps/greenhouse/src/components/PluginContainer.jsx rename to apps_deprecated/greenhouse/src/components/PluginContainer.jsx diff --git a/apps/greenhouse/src/components/StoreProvider.jsx b/apps_deprecated/greenhouse/src/components/StoreProvider.jsx similarity index 100% rename from apps/greenhouse/src/components/StoreProvider.jsx rename to apps_deprecated/greenhouse/src/components/StoreProvider.jsx diff --git a/apps/greenhouse/src/components/layout/ShellLayout.js b/apps_deprecated/greenhouse/src/components/layout/ShellLayout.js similarity index 100% rename from apps/greenhouse/src/components/layout/ShellLayout.js rename to apps_deprecated/greenhouse/src/components/layout/ShellLayout.js diff --git a/apps/greenhouse/src/components/layout/ShellLayout.test.js b/apps_deprecated/greenhouse/src/components/layout/ShellLayout.test.js similarity index 100% rename from apps/greenhouse/src/components/layout/ShellLayout.test.js rename to apps_deprecated/greenhouse/src/components/layout/ShellLayout.test.js diff --git a/apps/greenhouse/src/components/nav/PluginNav.js b/apps_deprecated/greenhouse/src/components/nav/PluginNav.js similarity index 100% rename from apps/greenhouse/src/components/nav/PluginNav.js rename to apps_deprecated/greenhouse/src/components/nav/PluginNav.js diff --git a/apps/greenhouse/src/components/shared/HintLoading.js b/apps_deprecated/greenhouse/src/components/shared/HintLoading.js similarity index 100% rename from apps/greenhouse/src/components/shared/HintLoading.js rename to apps_deprecated/greenhouse/src/components/shared/HintLoading.js diff --git a/apps/greenhouse/src/hooks/useApi.js b/apps_deprecated/greenhouse/src/hooks/useApi.js similarity index 100% rename from apps/greenhouse/src/hooks/useApi.js rename to apps_deprecated/greenhouse/src/hooks/useApi.js diff --git a/apps/greenhouse/src/hooks/useCommunication.js b/apps_deprecated/greenhouse/src/hooks/useCommunication.js similarity index 100% rename from apps/greenhouse/src/hooks/useCommunication.js rename to apps_deprecated/greenhouse/src/hooks/useCommunication.js diff --git a/apps/greenhouse/src/hooks/useUrlState.js b/apps_deprecated/greenhouse/src/hooks/useUrlState.js similarity index 100% rename from apps/greenhouse/src/hooks/useUrlState.js rename to apps_deprecated/greenhouse/src/hooks/useUrlState.js diff --git a/apps/greenhouse/src/index.js b/apps_deprecated/greenhouse/src/index.js similarity index 100% rename from apps/greenhouse/src/index.js rename to apps_deprecated/greenhouse/src/index.js diff --git a/apps/greenhouse/src/lib/helpers.js b/apps_deprecated/greenhouse/src/lib/helpers.js similarity index 100% rename from apps/greenhouse/src/lib/helpers.js rename to apps_deprecated/greenhouse/src/lib/helpers.js diff --git a/apps/greenhouse/src/lib/plugin.js b/apps_deprecated/greenhouse/src/lib/plugin.js similarity index 100% rename from apps/greenhouse/src/lib/plugin.js rename to apps_deprecated/greenhouse/src/lib/plugin.js diff --git a/apps/greenhouse/src/lib/plugin.test.js b/apps_deprecated/greenhouse/src/lib/plugin.test.js similarity index 100% rename from apps/greenhouse/src/lib/plugin.test.js rename to apps_deprecated/greenhouse/src/lib/plugin.test.js diff --git a/apps/greenhouse/src/lib/store/createAuthDataSlice.js b/apps_deprecated/greenhouse/src/lib/store/createAuthDataSlice.js similarity index 100% rename from apps/greenhouse/src/lib/store/createAuthDataSlice.js rename to apps_deprecated/greenhouse/src/lib/store/createAuthDataSlice.js diff --git a/apps/greenhouse/src/lib/store/createGlobalsSlice.js b/apps_deprecated/greenhouse/src/lib/store/createGlobalsSlice.js similarity index 100% rename from apps/greenhouse/src/lib/store/createGlobalsSlice.js rename to apps_deprecated/greenhouse/src/lib/store/createGlobalsSlice.js diff --git a/apps/greenhouse/src/lib/store/index.js b/apps_deprecated/greenhouse/src/lib/store/index.js similarity index 100% rename from apps/greenhouse/src/lib/store/index.js rename to apps_deprecated/greenhouse/src/lib/store/index.js diff --git a/apps/greenhouse/src/styles.scss b/apps_deprecated/greenhouse/src/styles.scss similarity index 100% rename from apps/greenhouse/src/styles.scss rename to apps_deprecated/greenhouse/src/styles.scss diff --git a/apps/greenhouse/tailwind.config.js b/apps_deprecated/greenhouse/tailwind.config.js similarity index 100% rename from apps/greenhouse/tailwind.config.js rename to apps_deprecated/greenhouse/tailwind.config.js diff --git a/apps/heureka/LICENSE b/apps_deprecated/heureka/LICENSE similarity index 100% rename from apps/heureka/LICENSE rename to apps_deprecated/heureka/LICENSE diff --git a/apps/heureka/README.md b/apps_deprecated/heureka/README.md similarity index 100% rename from apps/heureka/README.md rename to apps_deprecated/heureka/README.md diff --git a/apps/heureka/__mocks__/client.js b/apps_deprecated/heureka/__mocks__/client.js similarity index 100% rename from apps/heureka/__mocks__/client.js rename to apps_deprecated/heureka/__mocks__/client.js diff --git a/apps/heureka/__mocks__/fileMock.js b/apps_deprecated/heureka/__mocks__/fileMock.js similarity index 100% rename from apps/heureka/__mocks__/fileMock.js rename to apps_deprecated/heureka/__mocks__/fileMock.js diff --git a/apps/heureka/__mocks__/styleMock.js b/apps_deprecated/heureka/__mocks__/styleMock.js similarity index 100% rename from apps/heureka/__mocks__/styleMock.js rename to apps_deprecated/heureka/__mocks__/styleMock.js diff --git a/apps/heureka/babel.config.js b/apps_deprecated/heureka/babel.config.js similarity index 100% rename from apps/heureka/babel.config.js rename to apps_deprecated/heureka/babel.config.js diff --git a/apps/heureka/esbuild.config.js b/apps_deprecated/heureka/esbuild.config.js similarity index 100% rename from apps/heureka/esbuild.config.js rename to apps_deprecated/heureka/esbuild.config.js diff --git a/apps/heureka/jest.config.js b/apps_deprecated/heureka/jest.config.js similarity index 100% rename from apps/heureka/jest.config.js rename to apps_deprecated/heureka/jest.config.js diff --git a/apps/heureka/package.json b/apps_deprecated/heureka/package.json similarity index 100% rename from apps/heureka/package.json rename to apps_deprecated/heureka/package.json diff --git a/apps/heureka/public/favicon.ico b/apps_deprecated/heureka/public/favicon.ico similarity index 100% rename from apps/heureka/public/favicon.ico rename to apps_deprecated/heureka/public/favicon.ico diff --git a/apps/heureka/public/index.html b/apps_deprecated/heureka/public/index.html similarity index 100% rename from apps/heureka/public/index.html rename to apps_deprecated/heureka/public/index.html diff --git a/apps/heureka/setupTests.js b/apps_deprecated/heureka/setupTests.js similarity index 100% rename from apps/heureka/setupTests.js rename to apps_deprecated/heureka/setupTests.js diff --git a/apps/heureka/src/App.js b/apps_deprecated/heureka/src/App.js similarity index 100% rename from apps/heureka/src/App.js rename to apps_deprecated/heureka/src/App.js diff --git a/apps/heureka/src/App.test.js b/apps_deprecated/heureka/src/App.test.js similarity index 100% rename from apps/heureka/src/App.test.js rename to apps_deprecated/heureka/src/App.test.js diff --git a/apps/heureka/src/actions.js b/apps_deprecated/heureka/src/actions.js similarity index 100% rename from apps/heureka/src/actions.js rename to apps_deprecated/heureka/src/actions.js diff --git a/apps/heureka/src/components/AsyncWorker.jsx b/apps_deprecated/heureka/src/components/AsyncWorker.jsx similarity index 100% rename from apps/heureka/src/components/AsyncWorker.jsx rename to apps_deprecated/heureka/src/components/AsyncWorker.jsx diff --git a/apps/heureka/src/components/StoreProvider.jsx b/apps_deprecated/heureka/src/components/StoreProvider.jsx similarity index 100% rename from apps/heureka/src/components/StoreProvider.jsx rename to apps_deprecated/heureka/src/components/StoreProvider.jsx diff --git a/apps/heureka/src/components/backup/AppContainer.js b/apps_deprecated/heureka/src/components/backup/AppContainer.js similarity index 100% rename from apps/heureka/src/components/backup/AppContainer.js rename to apps_deprecated/heureka/src/components/backup/AppContainer.js diff --git a/apps/heureka/src/components/backup/AppRouter.js b/apps_deprecated/heureka/src/components/backup/AppRouter.js similarity index 100% rename from apps/heureka/src/components/backup/AppRouter.js rename to apps_deprecated/heureka/src/components/backup/AppRouter.js diff --git a/apps/heureka/src/components/backup/Avatar.js b/apps_deprecated/heureka/src/components/backup/Avatar.js similarity index 100% rename from apps/heureka/src/components/backup/Avatar.js rename to apps_deprecated/heureka/src/components/backup/Avatar.js diff --git a/apps/heureka/src/components/backup/Breadcrumb.js b/apps_deprecated/heureka/src/components/backup/Breadcrumb.js similarity index 100% rename from apps/heureka/src/components/backup/Breadcrumb.js rename to apps_deprecated/heureka/src/components/backup/Breadcrumb.js diff --git a/apps/heureka/src/components/backup/ChangesLogDetail.js b/apps_deprecated/heureka/src/components/backup/ChangesLogDetail.js similarity index 100% rename from apps/heureka/src/components/backup/ChangesLogDetail.js rename to apps_deprecated/heureka/src/components/backup/ChangesLogDetail.js diff --git a/apps/heureka/src/components/backup/ChangesLogList.js b/apps_deprecated/heureka/src/components/backup/ChangesLogList.js similarity index 100% rename from apps/heureka/src/components/backup/ChangesLogList.js rename to apps_deprecated/heureka/src/components/backup/ChangesLogList.js diff --git a/apps/heureka/src/components/backup/ChangesLogListItem.js b/apps_deprecated/heureka/src/components/backup/ChangesLogListItem.js similarity index 100% rename from apps/heureka/src/components/backup/ChangesLogListItem.js rename to apps_deprecated/heureka/src/components/backup/ChangesLogListItem.js diff --git a/apps/heureka/src/components/backup/ComponentDetail.js b/apps_deprecated/heureka/src/components/backup/ComponentDetail.js similarity index 100% rename from apps/heureka/src/components/backup/ComponentDetail.js rename to apps_deprecated/heureka/src/components/backup/ComponentDetail.js diff --git a/apps/heureka/src/components/backup/Components.js b/apps_deprecated/heureka/src/components/backup/Components.js similarity index 100% rename from apps/heureka/src/components/backup/Components.js rename to apps_deprecated/heureka/src/components/backup/Components.js diff --git a/apps/heureka/src/components/backup/ComponentsList.js b/apps_deprecated/heureka/src/components/backup/ComponentsList.js similarity index 100% rename from apps/heureka/src/components/backup/ComponentsList.js rename to apps_deprecated/heureka/src/components/backup/ComponentsList.js diff --git a/apps/heureka/src/components/backup/ComponentsListItem.js b/apps_deprecated/heureka/src/components/backup/ComponentsListItem.js similarity index 100% rename from apps/heureka/src/components/backup/ComponentsListItem.js rename to apps_deprecated/heureka/src/components/backup/ComponentsListItem.js diff --git a/apps/heureka/src/components/backup/CustomBadge.js b/apps_deprecated/heureka/src/components/backup/CustomBadge.js similarity index 100% rename from apps/heureka/src/components/backup/CustomBadge.js rename to apps_deprecated/heureka/src/components/backup/CustomBadge.js diff --git a/apps/heureka/src/components/backup/CustomPageHeader.js b/apps_deprecated/heureka/src/components/backup/CustomPageHeader.js similarity index 100% rename from apps/heureka/src/components/backup/CustomPageHeader.js rename to apps_deprecated/heureka/src/components/backup/CustomPageHeader.js diff --git a/apps/heureka/src/components/backup/EvidenceNew.js b/apps_deprecated/heureka/src/components/backup/EvidenceNew.js similarity index 100% rename from apps/heureka/src/components/backup/EvidenceNew.js rename to apps_deprecated/heureka/src/components/backup/EvidenceNew.js diff --git a/apps/heureka/src/components/backup/EvidencesList.js b/apps_deprecated/heureka/src/components/backup/EvidencesList.js similarity index 100% rename from apps/heureka/src/components/backup/EvidencesList.js rename to apps_deprecated/heureka/src/components/backup/EvidencesList.js diff --git a/apps/heureka/src/components/backup/EvidencesListItem.js b/apps_deprecated/heureka/src/components/backup/EvidencesListItem.js similarity index 100% rename from apps/heureka/src/components/backup/EvidencesListItem.js rename to apps_deprecated/heureka/src/components/backup/EvidencesListItem.js diff --git a/apps/heureka/src/components/backup/FilterToolbar.js b/apps_deprecated/heureka/src/components/backup/FilterToolbar.js similarity index 100% rename from apps/heureka/src/components/backup/FilterToolbar.js rename to apps_deprecated/heureka/src/components/backup/FilterToolbar.js diff --git a/apps/heureka/src/components/backup/FilterToolbarCore.js b/apps_deprecated/heureka/src/components/backup/FilterToolbarCore.js similarity index 100% rename from apps/heureka/src/components/backup/FilterToolbarCore.js rename to apps_deprecated/heureka/src/components/backup/FilterToolbarCore.js diff --git a/apps/heureka/src/components/backup/FilterToolbarStore.js b/apps_deprecated/heureka/src/components/backup/FilterToolbarStore.js similarity index 100% rename from apps/heureka/src/components/backup/FilterToolbarStore.js rename to apps_deprecated/heureka/src/components/backup/FilterToolbarStore.js diff --git a/apps/heureka/src/components/backup/HeaderUser.js b/apps_deprecated/heureka/src/components/backup/HeaderUser.js similarity index 100% rename from apps/heureka/src/components/backup/HeaderUser.js rename to apps_deprecated/heureka/src/components/backup/HeaderUser.js diff --git a/apps/heureka/src/components/backup/Home.js b/apps_deprecated/heureka/src/components/backup/Home.js similarity index 100% rename from apps/heureka/src/components/backup/Home.js rename to apps_deprecated/heureka/src/components/backup/Home.js diff --git a/apps/heureka/src/components/backup/PackagesList.js b/apps_deprecated/heureka/src/components/backup/PackagesList.js similarity index 100% rename from apps/heureka/src/components/backup/PackagesList.js rename to apps_deprecated/heureka/src/components/backup/PackagesList.js diff --git a/apps/heureka/src/components/backup/PackagesListItem.js b/apps_deprecated/heureka/src/components/backup/PackagesListItem.js similarity index 100% rename from apps/heureka/src/components/backup/PackagesListItem.js rename to apps_deprecated/heureka/src/components/backup/PackagesListItem.js diff --git a/apps/heureka/src/components/backup/Pagination.js b/apps_deprecated/heureka/src/components/backup/Pagination.js similarity index 100% rename from apps/heureka/src/components/backup/Pagination.js rename to apps_deprecated/heureka/src/components/backup/Pagination.js diff --git a/apps/heureka/src/components/backup/PatchLogDetail.js b/apps_deprecated/heureka/src/components/backup/PatchLogDetail.js similarity index 100% rename from apps/heureka/src/components/backup/PatchLogDetail.js rename to apps_deprecated/heureka/src/components/backup/PatchLogDetail.js diff --git a/apps/heureka/src/components/backup/PatchLogNew.js b/apps_deprecated/heureka/src/components/backup/PatchLogNew.js similarity index 100% rename from apps/heureka/src/components/backup/PatchLogNew.js rename to apps_deprecated/heureka/src/components/backup/PatchLogNew.js diff --git a/apps/heureka/src/components/backup/PatchLogsList.js b/apps_deprecated/heureka/src/components/backup/PatchLogsList.js similarity index 100% rename from apps/heureka/src/components/backup/PatchLogsList.js rename to apps_deprecated/heureka/src/components/backup/PatchLogsList.js diff --git a/apps/heureka/src/components/backup/PatchLogsListItem.js b/apps_deprecated/heureka/src/components/backup/PatchLogsListItem.js similarity index 100% rename from apps/heureka/src/components/backup/PatchLogsListItem.js rename to apps_deprecated/heureka/src/components/backup/PatchLogsListItem.js diff --git a/apps/heureka/src/components/backup/ServiceDetail.js b/apps_deprecated/heureka/src/components/backup/ServiceDetail.js similarity index 100% rename from apps/heureka/src/components/backup/ServiceDetail.js rename to apps_deprecated/heureka/src/components/backup/ServiceDetail.js diff --git a/apps/heureka/src/components/backup/Services.js b/apps_deprecated/heureka/src/components/backup/Services.js similarity index 100% rename from apps/heureka/src/components/backup/Services.js rename to apps_deprecated/heureka/src/components/backup/Services.js diff --git a/apps/heureka/src/components/backup/ServicesList.js b/apps_deprecated/heureka/src/components/backup/ServicesList.js similarity index 100% rename from apps/heureka/src/components/backup/ServicesList.js rename to apps_deprecated/heureka/src/components/backup/ServicesList.js diff --git a/apps/heureka/src/components/backup/ServicesListItem.js b/apps_deprecated/heureka/src/components/backup/ServicesListItem.js similarity index 100% rename from apps/heureka/src/components/backup/ServicesListItem.js rename to apps_deprecated/heureka/src/components/backup/ServicesListItem.js diff --git a/apps/heureka/src/components/backup/SupportGroups.js b/apps_deprecated/heureka/src/components/backup/SupportGroups.js similarity index 100% rename from apps/heureka/src/components/backup/SupportGroups.js rename to apps_deprecated/heureka/src/components/backup/SupportGroups.js diff --git a/apps/heureka/src/components/backup/SupportGroupsList.js b/apps_deprecated/heureka/src/components/backup/SupportGroupsList.js similarity index 100% rename from apps/heureka/src/components/backup/SupportGroupsList.js rename to apps_deprecated/heureka/src/components/backup/SupportGroupsList.js diff --git a/apps/heureka/src/components/backup/UserDetail.js b/apps_deprecated/heureka/src/components/backup/UserDetail.js similarity index 100% rename from apps/heureka/src/components/backup/UserDetail.js rename to apps_deprecated/heureka/src/components/backup/UserDetail.js diff --git a/apps/heureka/src/components/backup/Users.js b/apps_deprecated/heureka/src/components/backup/Users.js similarity index 100% rename from apps/heureka/src/components/backup/Users.js rename to apps_deprecated/heureka/src/components/backup/Users.js diff --git a/apps/heureka/src/components/backup/UsersList.js b/apps_deprecated/heureka/src/components/backup/UsersList.js similarity index 100% rename from apps/heureka/src/components/backup/UsersList.js rename to apps_deprecated/heureka/src/components/backup/UsersList.js diff --git a/apps/heureka/src/components/backup/UsersListItem.js b/apps_deprecated/heureka/src/components/backup/UsersListItem.js similarity index 100% rename from apps/heureka/src/components/backup/UsersListItem.js rename to apps_deprecated/heureka/src/components/backup/UsersListItem.js diff --git a/apps/heureka/src/components/backup/Vulnerabilities.js b/apps_deprecated/heureka/src/components/backup/Vulnerabilities.js similarity index 100% rename from apps/heureka/src/components/backup/Vulnerabilities.js rename to apps_deprecated/heureka/src/components/backup/Vulnerabilities.js diff --git a/apps/heureka/src/components/backup/VulnerabilitiesList.js b/apps_deprecated/heureka/src/components/backup/VulnerabilitiesList.js similarity index 100% rename from apps/heureka/src/components/backup/VulnerabilitiesList.js rename to apps_deprecated/heureka/src/components/backup/VulnerabilitiesList.js diff --git a/apps/heureka/src/components/backup/VulnerabilitiesListItem.js b/apps_deprecated/heureka/src/components/backup/VulnerabilitiesListItem.js similarity index 100% rename from apps/heureka/src/components/backup/VulnerabilitiesListItem.js rename to apps_deprecated/heureka/src/components/backup/VulnerabilitiesListItem.js diff --git a/apps/heureka/src/components/backup/VulnerabilitiesOverview.js b/apps_deprecated/heureka/src/components/backup/VulnerabilitiesOverview.js similarity index 100% rename from apps/heureka/src/components/backup/VulnerabilitiesOverview.js rename to apps_deprecated/heureka/src/components/backup/VulnerabilitiesOverview.js diff --git a/apps/heureka/src/components/backup/VulnerabilitiyDetails.js b/apps_deprecated/heureka/src/components/backup/VulnerabilitiyDetails.js similarity index 100% rename from apps/heureka/src/components/backup/VulnerabilitiyDetails.js rename to apps_deprecated/heureka/src/components/backup/VulnerabilitiyDetails.js diff --git a/apps/heureka/src/components/backup/VulnerabilityBadge.js b/apps_deprecated/heureka/src/components/backup/VulnerabilityBadge.js similarity index 100% rename from apps/heureka/src/components/backup/VulnerabilityBadge.js rename to apps_deprecated/heureka/src/components/backup/VulnerabilityBadge.js diff --git a/apps/heureka/src/components/backup/WelcomeView.js b/apps_deprecated/heureka/src/components/backup/WelcomeView.js similarity index 100% rename from apps/heureka/src/components/backup/WelcomeView.js rename to apps_deprecated/heureka/src/components/backup/WelcomeView.js diff --git a/apps/heureka/src/components/filters/FilterPills.jsx b/apps_deprecated/heureka/src/components/filters/FilterPills.jsx similarity index 100% rename from apps/heureka/src/components/filters/FilterPills.jsx rename to apps_deprecated/heureka/src/components/filters/FilterPills.jsx diff --git a/apps/heureka/src/components/filters/FilterSelect.jsx b/apps_deprecated/heureka/src/components/filters/FilterSelect.jsx similarity index 100% rename from apps/heureka/src/components/filters/FilterSelect.jsx rename to apps_deprecated/heureka/src/components/filters/FilterSelect.jsx diff --git a/apps/heureka/src/components/filters/Filters.jsx b/apps_deprecated/heureka/src/components/filters/Filters.jsx similarity index 100% rename from apps/heureka/src/components/filters/Filters.jsx rename to apps_deprecated/heureka/src/components/filters/Filters.jsx diff --git a/apps/heureka/src/components/services/ServicesList.jsx b/apps_deprecated/heureka/src/components/services/ServicesList.jsx similarity index 100% rename from apps/heureka/src/components/services/ServicesList.jsx rename to apps_deprecated/heureka/src/components/services/ServicesList.jsx diff --git a/apps/heureka/src/components/services/ServicesListController.jsx b/apps_deprecated/heureka/src/components/services/ServicesListController.jsx similarity index 100% rename from apps/heureka/src/components/services/ServicesListController.jsx rename to apps_deprecated/heureka/src/components/services/ServicesListController.jsx diff --git a/apps/heureka/src/components/services/ServicesListItem.js b/apps_deprecated/heureka/src/components/services/ServicesListItem.js similarity index 100% rename from apps/heureka/src/components/services/ServicesListItem.js rename to apps_deprecated/heureka/src/components/services/ServicesListItem.js diff --git a/apps/heureka/src/components/services/ServicesTab.jsx b/apps_deprecated/heureka/src/components/services/ServicesTab.jsx similarity index 100% rename from apps/heureka/src/components/services/ServicesTab.jsx rename to apps_deprecated/heureka/src/components/services/ServicesTab.jsx diff --git a/apps/heureka/src/components/shared/HintLoading.jsx b/apps_deprecated/heureka/src/components/shared/HintLoading.jsx similarity index 100% rename from apps/heureka/src/components/shared/HintLoading.jsx rename to apps_deprecated/heureka/src/components/shared/HintLoading.jsx diff --git a/apps/heureka/src/components/shared/HintNotFound.jsx b/apps_deprecated/heureka/src/components/shared/HintNotFound.jsx similarity index 100% rename from apps/heureka/src/components/shared/HintNotFound.jsx rename to apps_deprecated/heureka/src/components/shared/HintNotFound.jsx diff --git a/apps/heureka/src/components/shared/Pagination.jsx b/apps_deprecated/heureka/src/components/shared/Pagination.jsx similarity index 100% rename from apps/heureka/src/components/shared/Pagination.jsx rename to apps_deprecated/heureka/src/components/shared/Pagination.jsx diff --git a/apps/heureka/src/components/shared/PaginationV2.jsx b/apps_deprecated/heureka/src/components/shared/PaginationV2.jsx similarity index 100% rename from apps/heureka/src/components/shared/PaginationV2.jsx rename to apps_deprecated/heureka/src/components/shared/PaginationV2.jsx diff --git a/apps/heureka/src/components/tabs/TabContext.jsx b/apps_deprecated/heureka/src/components/tabs/TabContext.jsx similarity index 100% rename from apps/heureka/src/components/tabs/TabContext.jsx rename to apps_deprecated/heureka/src/components/tabs/TabContext.jsx diff --git a/apps/heureka/src/components/tabs/TabPanel.jsx b/apps_deprecated/heureka/src/components/tabs/TabPanel.jsx similarity index 100% rename from apps/heureka/src/components/tabs/TabPanel.jsx rename to apps_deprecated/heureka/src/components/tabs/TabPanel.jsx diff --git a/apps/heureka/src/components/vulnerabilities/VulnerabilitiesList.jsx b/apps_deprecated/heureka/src/components/vulnerabilities/VulnerabilitiesList.jsx similarity index 100% rename from apps/heureka/src/components/vulnerabilities/VulnerabilitiesList.jsx rename to apps_deprecated/heureka/src/components/vulnerabilities/VulnerabilitiesList.jsx diff --git a/apps/heureka/src/components/vulnerabilities/VulnerabilitiesListController.jsx b/apps_deprecated/heureka/src/components/vulnerabilities/VulnerabilitiesListController.jsx similarity index 100% rename from apps/heureka/src/components/vulnerabilities/VulnerabilitiesListController.jsx rename to apps_deprecated/heureka/src/components/vulnerabilities/VulnerabilitiesListController.jsx diff --git a/apps/heureka/src/components/vulnerabilities/VulnerabilitiesListItem.jsx b/apps_deprecated/heureka/src/components/vulnerabilities/VulnerabilitiesListItem.jsx similarity index 100% rename from apps/heureka/src/components/vulnerabilities/VulnerabilitiesListItem.jsx rename to apps_deprecated/heureka/src/components/vulnerabilities/VulnerabilitiesListItem.jsx diff --git a/apps/heureka/src/components/vulnerabilities/VulnerabilitiesTab.jsx b/apps_deprecated/heureka/src/components/vulnerabilities/VulnerabilitiesTab.jsx similarity index 100% rename from apps/heureka/src/components/vulnerabilities/VulnerabilitiesTab.jsx rename to apps_deprecated/heureka/src/components/vulnerabilities/VulnerabilitiesTab.jsx diff --git a/apps/heureka/src/helpers.js b/apps_deprecated/heureka/src/helpers.js similarity index 100% rename from apps/heureka/src/helpers.js rename to apps_deprecated/heureka/src/helpers.js diff --git a/apps/heureka/src/helpers.test.js b/apps_deprecated/heureka/src/helpers.test.js similarity index 100% rename from apps/heureka/src/helpers.test.js rename to apps_deprecated/heureka/src/helpers.test.js diff --git a/apps/heureka/src/hooks/useCommunication.js b/apps_deprecated/heureka/src/hooks/useCommunication.js similarity index 100% rename from apps/heureka/src/hooks/useCommunication.js rename to apps_deprecated/heureka/src/hooks/useCommunication.js diff --git a/apps/heureka/src/hooks/useQueryClientFn.js b/apps_deprecated/heureka/src/hooks/useQueryClientFn.js similarity index 100% rename from apps/heureka/src/hooks/useQueryClientFn.js rename to apps_deprecated/heureka/src/hooks/useQueryClientFn.js diff --git a/apps/heureka/src/hooks/useUrlState.js b/apps_deprecated/heureka/src/hooks/useUrlState.js similarity index 100% rename from apps/heureka/src/hooks/useUrlState.js rename to apps_deprecated/heureka/src/hooks/useUrlState.js diff --git a/apps/heureka/src/img/app_bg_example.svg b/apps_deprecated/heureka/src/img/app_bg_example.svg similarity index 100% rename from apps/heureka/src/img/app_bg_example.svg rename to apps_deprecated/heureka/src/img/app_bg_example.svg diff --git a/apps/heureka/src/index.js b/apps_deprecated/heureka/src/index.js similarity index 100% rename from apps/heureka/src/index.js rename to apps_deprecated/heureka/src/index.js diff --git a/apps/heureka/src/lib/queries/serviceFilters.js b/apps_deprecated/heureka/src/lib/queries/serviceFilters.js similarity index 100% rename from apps/heureka/src/lib/queries/serviceFilters.js rename to apps_deprecated/heureka/src/lib/queries/serviceFilters.js diff --git a/apps/heureka/src/lib/queries/services.js b/apps_deprecated/heureka/src/lib/queries/services.js similarity index 100% rename from apps/heureka/src/lib/queries/services.js rename to apps_deprecated/heureka/src/lib/queries/services.js diff --git a/apps/heureka/src/lib/queries/vulnerabilityMatches.js b/apps_deprecated/heureka/src/lib/queries/vulnerabilityMatches.js similarity index 100% rename from apps/heureka/src/lib/queries/vulnerabilityMatches.js rename to apps_deprecated/heureka/src/lib/queries/vulnerabilityMatches.js diff --git a/apps/heureka/src/lib/store.js b/apps_deprecated/heureka/src/lib/store.js similarity index 100% rename from apps/heureka/src/lib/store.js rename to apps_deprecated/heureka/src/lib/store.js diff --git a/apps/heureka/src/queries.js b/apps_deprecated/heureka/src/queries.js similarity index 100% rename from apps/heureka/src/queries.js rename to apps_deprecated/heureka/src/queries.js diff --git a/apps/heureka/src/styles.js b/apps_deprecated/heureka/src/styles.js similarity index 100% rename from apps/heureka/src/styles.js rename to apps_deprecated/heureka/src/styles.js diff --git a/apps/heureka/src/styles.scss b/apps_deprecated/heureka/src/styles.scss similarity index 100% rename from apps/heureka/src/styles.scss rename to apps_deprecated/heureka/src/styles.scss diff --git a/apps/heureka/tailwind.config.js b/apps_deprecated/heureka/tailwind.config.js similarity index 100% rename from apps/heureka/tailwind.config.js rename to apps_deprecated/heureka/tailwind.config.js diff --git a/apps/supernova/LICENSE b/apps_deprecated/supernova/LICENSE similarity index 100% rename from apps/supernova/LICENSE rename to apps_deprecated/supernova/LICENSE diff --git a/apps/supernova/README.md b/apps_deprecated/supernova/README.md similarity index 100% rename from apps/supernova/README.md rename to apps_deprecated/supernova/README.md diff --git a/apps/supernova/__mocks__/client.js b/apps_deprecated/supernova/__mocks__/client.js similarity index 100% rename from apps/supernova/__mocks__/client.js rename to apps_deprecated/supernova/__mocks__/client.js diff --git a/apps/supernova/__mocks__/fileMock.js b/apps_deprecated/supernova/__mocks__/fileMock.js similarity index 100% rename from apps/supernova/__mocks__/fileMock.js rename to apps_deprecated/supernova/__mocks__/fileMock.js diff --git a/apps/supernova/__mocks__/styleMock.js b/apps_deprecated/supernova/__mocks__/styleMock.js similarity index 100% rename from apps/supernova/__mocks__/styleMock.js rename to apps_deprecated/supernova/__mocks__/styleMock.js diff --git a/apps/supernova/babel.config.js b/apps_deprecated/supernova/babel.config.js similarity index 100% rename from apps/supernova/babel.config.js rename to apps_deprecated/supernova/babel.config.js diff --git a/apps/supernova/esbuild.config.js b/apps_deprecated/supernova/esbuild.config.js similarity index 100% rename from apps/supernova/esbuild.config.js rename to apps_deprecated/supernova/esbuild.config.js diff --git a/apps/supernova/jest.config.js b/apps_deprecated/supernova/jest.config.js similarity index 100% rename from apps/supernova/jest.config.js rename to apps_deprecated/supernova/jest.config.js diff --git a/apps/supernova/package.json b/apps_deprecated/supernova/package.json similarity index 100% rename from apps/supernova/package.json rename to apps_deprecated/supernova/package.json diff --git a/apps/supernova/public/favicon.ico b/apps_deprecated/supernova/public/favicon.ico similarity index 100% rename from apps/supernova/public/favicon.ico rename to apps_deprecated/supernova/public/favicon.ico diff --git a/apps/supernova/public/index.html b/apps_deprecated/supernova/public/index.html similarity index 100% rename from apps/supernova/public/index.html rename to apps_deprecated/supernova/public/index.html diff --git a/apps/supernova/public/index_test.html b/apps_deprecated/supernova/public/index_test.html similarity index 100% rename from apps/supernova/public/index_test.html rename to apps_deprecated/supernova/public/index_test.html diff --git a/apps/supernova/setupTests.js b/apps_deprecated/supernova/setupTests.js similarity index 100% rename from apps/supernova/setupTests.js rename to apps_deprecated/supernova/setupTests.js diff --git a/apps/supernova/src/App.jsx b/apps_deprecated/supernova/src/App.jsx similarity index 100% rename from apps/supernova/src/App.jsx rename to apps_deprecated/supernova/src/App.jsx diff --git a/apps/supernova/src/App.test.js b/apps_deprecated/supernova/src/App.test.js similarity index 100% rename from apps/supernova/src/App.test.js rename to apps_deprecated/supernova/src/App.test.js diff --git a/apps/supernova/src/AppContent.jsx b/apps_deprecated/supernova/src/AppContent.jsx similarity index 100% rename from apps/supernova/src/AppContent.jsx rename to apps_deprecated/supernova/src/AppContent.jsx diff --git a/apps/supernova/src/api/apiService.js b/apps_deprecated/supernova/src/api/apiService.js similarity index 100% rename from apps/supernova/src/api/apiService.js rename to apps_deprecated/supernova/src/api/apiService.js diff --git a/apps/supernova/src/api/client.js b/apps_deprecated/supernova/src/api/client.js similarity index 100% rename from apps/supernova/src/api/client.js rename to apps_deprecated/supernova/src/api/client.js diff --git a/apps/supernova/src/components/AsyncWorker.jsx b/apps_deprecated/supernova/src/components/AsyncWorker.jsx similarity index 100% rename from apps/supernova/src/components/AsyncWorker.jsx rename to apps_deprecated/supernova/src/components/AsyncWorker.jsx diff --git a/apps/supernova/src/components/Avatar.jsx b/apps_deprecated/supernova/src/components/Avatar.jsx similarity index 100% rename from apps/supernova/src/components/Avatar.jsx rename to apps_deprecated/supernova/src/components/Avatar.jsx diff --git a/apps/supernova/src/components/CustomAppShell.jsx b/apps_deprecated/supernova/src/components/CustomAppShell.jsx similarity index 100% rename from apps/supernova/src/components/CustomAppShell.jsx rename to apps_deprecated/supernova/src/components/CustomAppShell.jsx diff --git a/apps/supernova/src/components/HeaderUser.jsx b/apps_deprecated/supernova/src/components/HeaderUser.jsx similarity index 100% rename from apps/supernova/src/components/HeaderUser.jsx rename to apps_deprecated/supernova/src/components/HeaderUser.jsx diff --git a/apps/supernova/src/components/WelcomeView.jsx b/apps_deprecated/supernova/src/components/WelcomeView.jsx similarity index 100% rename from apps/supernova/src/components/WelcomeView.jsx rename to apps_deprecated/supernova/src/components/WelcomeView.jsx diff --git a/apps/supernova/src/components/alerts/Alert.jsx b/apps_deprecated/supernova/src/components/alerts/Alert.jsx similarity index 100% rename from apps/supernova/src/components/alerts/Alert.jsx rename to apps_deprecated/supernova/src/components/alerts/Alert.jsx diff --git a/apps/supernova/src/components/alerts/AlertDetail.jsx b/apps_deprecated/supernova/src/components/alerts/AlertDetail.jsx similarity index 100% rename from apps/supernova/src/components/alerts/AlertDetail.jsx rename to apps_deprecated/supernova/src/components/alerts/AlertDetail.jsx diff --git a/apps/supernova/src/components/alerts/AlertSilences.jsx b/apps_deprecated/supernova/src/components/alerts/AlertSilences.jsx similarity index 100% rename from apps/supernova/src/components/alerts/AlertSilences.jsx rename to apps_deprecated/supernova/src/components/alerts/AlertSilences.jsx diff --git a/apps/supernova/src/components/alerts/AlertStatus.jsx b/apps_deprecated/supernova/src/components/alerts/AlertStatus.jsx similarity index 100% rename from apps/supernova/src/components/alerts/AlertStatus.jsx rename to apps_deprecated/supernova/src/components/alerts/AlertStatus.jsx diff --git a/apps/supernova/src/components/alerts/AlertsList.jsx b/apps_deprecated/supernova/src/components/alerts/AlertsList.jsx similarity index 100% rename from apps/supernova/src/components/alerts/AlertsList.jsx rename to apps_deprecated/supernova/src/components/alerts/AlertsList.jsx diff --git a/apps/supernova/src/components/alerts/shared/AlertDescription.jsx b/apps_deprecated/supernova/src/components/alerts/shared/AlertDescription.jsx similarity index 100% rename from apps/supernova/src/components/alerts/shared/AlertDescription.jsx rename to apps_deprecated/supernova/src/components/alerts/shared/AlertDescription.jsx diff --git a/apps/supernova/src/components/alerts/shared/AlertIcon.jsx b/apps_deprecated/supernova/src/components/alerts/shared/AlertIcon.jsx similarity index 100% rename from apps/supernova/src/components/alerts/shared/AlertIcon.jsx rename to apps_deprecated/supernova/src/components/alerts/shared/AlertIcon.jsx diff --git a/apps/supernova/src/components/alerts/shared/AlertLabels.jsx b/apps_deprecated/supernova/src/components/alerts/shared/AlertLabels.jsx similarity index 100% rename from apps/supernova/src/components/alerts/shared/AlertLabels.jsx rename to apps_deprecated/supernova/src/components/alerts/shared/AlertLabels.jsx diff --git a/apps/supernova/src/components/alerts/shared/AlertLinks.jsx b/apps_deprecated/supernova/src/components/alerts/shared/AlertLinks.jsx similarity index 100% rename from apps/supernova/src/components/alerts/shared/AlertLinks.jsx rename to apps_deprecated/supernova/src/components/alerts/shared/AlertLinks.jsx diff --git a/apps/supernova/src/components/alerts/shared/AlertRegion.jsx b/apps_deprecated/supernova/src/components/alerts/shared/AlertRegion.jsx similarity index 100% rename from apps/supernova/src/components/alerts/shared/AlertRegion.jsx rename to apps_deprecated/supernova/src/components/alerts/shared/AlertRegion.jsx diff --git a/apps/supernova/src/components/alerts/shared/AlertSilencesList.jsx b/apps_deprecated/supernova/src/components/alerts/shared/AlertSilencesList.jsx similarity index 100% rename from apps/supernova/src/components/alerts/shared/AlertSilencesList.jsx rename to apps_deprecated/supernova/src/components/alerts/shared/AlertSilencesList.jsx diff --git a/apps/supernova/src/components/alerts/shared/AlertTimestamp.jsx b/apps_deprecated/supernova/src/components/alerts/shared/AlertTimestamp.jsx similarity index 100% rename from apps/supernova/src/components/alerts/shared/AlertTimestamp.jsx rename to apps_deprecated/supernova/src/components/alerts/shared/AlertTimestamp.jsx diff --git a/apps/supernova/src/components/filters/FilterPills.jsx b/apps_deprecated/supernova/src/components/filters/FilterPills.jsx similarity index 100% rename from apps/supernova/src/components/filters/FilterPills.jsx rename to apps_deprecated/supernova/src/components/filters/FilterPills.jsx diff --git a/apps/supernova/src/components/filters/FilterSelect.jsx b/apps_deprecated/supernova/src/components/filters/FilterSelect.jsx similarity index 100% rename from apps/supernova/src/components/filters/FilterSelect.jsx rename to apps_deprecated/supernova/src/components/filters/FilterSelect.jsx diff --git a/apps/supernova/src/components/filters/Filters.jsx b/apps_deprecated/supernova/src/components/filters/Filters.jsx similarity index 100% rename from apps/supernova/src/components/filters/Filters.jsx rename to apps_deprecated/supernova/src/components/filters/Filters.jsx diff --git a/apps/supernova/src/components/filters/PredefinedFilters.jsx b/apps_deprecated/supernova/src/components/filters/PredefinedFilters.jsx similarity index 100% rename from apps/supernova/src/components/filters/PredefinedFilters.jsx rename to apps_deprecated/supernova/src/components/filters/PredefinedFilters.jsx diff --git a/apps/supernova/src/components/regions/Region.jsx b/apps_deprecated/supernova/src/components/regions/Region.jsx similarity index 100% rename from apps/supernova/src/components/regions/Region.jsx rename to apps_deprecated/supernova/src/components/regions/Region.jsx diff --git a/apps/supernova/src/components/regions/RegionSeverity.jsx b/apps_deprecated/supernova/src/components/regions/RegionSeverity.jsx similarity index 100% rename from apps/supernova/src/components/regions/RegionSeverity.jsx rename to apps_deprecated/supernova/src/components/regions/RegionSeverity.jsx diff --git a/apps/supernova/src/components/regions/RegionsList.jsx b/apps_deprecated/supernova/src/components/regions/RegionsList.jsx similarity index 100% rename from apps/supernova/src/components/regions/RegionsList.jsx rename to apps_deprecated/supernova/src/components/regions/RegionsList.jsx diff --git a/apps/supernova/src/components/silences/SilenceMatchers.jsx b/apps_deprecated/supernova/src/components/silences/SilenceMatchers.jsx similarity index 100% rename from apps/supernova/src/components/silences/SilenceMatchers.jsx rename to apps_deprecated/supernova/src/components/silences/SilenceMatchers.jsx diff --git a/apps/supernova/src/components/silences/SilenceNew.jsx b/apps_deprecated/supernova/src/components/silences/SilenceNew.jsx similarity index 100% rename from apps/supernova/src/components/silences/SilenceNew.jsx rename to apps_deprecated/supernova/src/components/silences/SilenceNew.jsx diff --git a/apps/supernova/src/components/silences/SilenceNewAdvanced.jsx b/apps_deprecated/supernova/src/components/silences/SilenceNewAdvanced.jsx similarity index 100% rename from apps/supernova/src/components/silences/SilenceNewAdvanced.jsx rename to apps_deprecated/supernova/src/components/silences/SilenceNewAdvanced.jsx diff --git a/apps/supernova/src/components/silences/SilenceScheduled.jsx b/apps_deprecated/supernova/src/components/silences/SilenceScheduled.jsx similarity index 100% rename from apps/supernova/src/components/silences/SilenceScheduled.jsx rename to apps_deprecated/supernova/src/components/silences/SilenceScheduled.jsx diff --git a/apps/supernova/src/components/silences/SilenceScheduledWrapper.jsx b/apps_deprecated/supernova/src/components/silences/SilenceScheduledWrapper.jsx similarity index 100% rename from apps/supernova/src/components/silences/SilenceScheduledWrapper.jsx rename to apps_deprecated/supernova/src/components/silences/SilenceScheduledWrapper.jsx diff --git a/apps/supernova/src/components/silences/silenceHelpers.js b/apps_deprecated/supernova/src/components/silences/silenceHelpers.js similarity index 100% rename from apps/supernova/src/components/silences/silenceHelpers.js rename to apps_deprecated/supernova/src/components/silences/silenceHelpers.js diff --git a/apps/supernova/src/components/silences/silenceHelpers.test.js b/apps_deprecated/supernova/src/components/silences/silenceHelpers.test.js similarity index 100% rename from apps/supernova/src/components/silences/silenceHelpers.test.js rename to apps_deprecated/supernova/src/components/silences/silenceHelpers.test.js diff --git a/apps/supernova/src/components/silences/silenceScheduledHelpers.js b/apps_deprecated/supernova/src/components/silences/silenceScheduledHelpers.js similarity index 100% rename from apps/supernova/src/components/silences/silenceScheduledHelpers.js rename to apps_deprecated/supernova/src/components/silences/silenceScheduledHelpers.js diff --git a/apps/supernova/src/components/status/StatusBar.jsx b/apps_deprecated/supernova/src/components/status/StatusBar.jsx similarity index 100% rename from apps/supernova/src/components/status/StatusBar.jsx rename to apps_deprecated/supernova/src/components/status/StatusBar.jsx diff --git a/apps/supernova/src/helpers.js b/apps_deprecated/supernova/src/helpers.js similarity index 100% rename from apps/supernova/src/helpers.js rename to apps_deprecated/supernova/src/helpers.js diff --git a/apps/supernova/src/hooks/useAlertmanagerAPI.js b/apps_deprecated/supernova/src/hooks/useAlertmanagerAPI.js similarity index 100% rename from apps/supernova/src/hooks/useAlertmanagerAPI.js rename to apps_deprecated/supernova/src/hooks/useAlertmanagerAPI.js diff --git a/apps/supernova/src/hooks/useAppStore.js b/apps_deprecated/supernova/src/hooks/useAppStore.js similarity index 100% rename from apps/supernova/src/hooks/useAppStore.js rename to apps_deprecated/supernova/src/hooks/useAppStore.js diff --git a/apps/supernova/src/hooks/useCommunication.js b/apps_deprecated/supernova/src/hooks/useCommunication.js similarity index 100% rename from apps/supernova/src/hooks/useCommunication.js rename to apps_deprecated/supernova/src/hooks/useCommunication.js diff --git a/apps/supernova/src/hooks/useUrlState.js b/apps_deprecated/supernova/src/hooks/useUrlState.js similarity index 100% rename from apps/supernova/src/hooks/useUrlState.js rename to apps_deprecated/supernova/src/hooks/useUrlState.js diff --git a/apps/supernova/src/index.js b/apps_deprecated/supernova/src/index.js similarity index 100% rename from apps/supernova/src/index.js rename to apps_deprecated/supernova/src/index.js diff --git a/apps/supernova/src/lib/createAlertsSlice.js b/apps_deprecated/supernova/src/lib/createAlertsSlice.js similarity index 100% rename from apps/supernova/src/lib/createAlertsSlice.js rename to apps_deprecated/supernova/src/lib/createAlertsSlice.js diff --git a/apps/supernova/src/lib/createAlertsSlice.test.js b/apps_deprecated/supernova/src/lib/createAlertsSlice.test.js similarity index 100% rename from apps/supernova/src/lib/createAlertsSlice.test.js rename to apps_deprecated/supernova/src/lib/createAlertsSlice.test.js diff --git a/apps/supernova/src/lib/createAuthDataSlice.js b/apps_deprecated/supernova/src/lib/createAuthDataSlice.js similarity index 100% rename from apps/supernova/src/lib/createAuthDataSlice.js rename to apps_deprecated/supernova/src/lib/createAuthDataSlice.js diff --git a/apps/supernova/src/lib/createFiltersSlice.js b/apps_deprecated/supernova/src/lib/createFiltersSlice.js similarity index 100% rename from apps/supernova/src/lib/createFiltersSlice.js rename to apps_deprecated/supernova/src/lib/createFiltersSlice.js diff --git a/apps/supernova/src/lib/createFiltersSlice.test.js b/apps_deprecated/supernova/src/lib/createFiltersSlice.test.js similarity index 100% rename from apps/supernova/src/lib/createFiltersSlice.test.js rename to apps_deprecated/supernova/src/lib/createFiltersSlice.test.js diff --git a/apps/supernova/src/lib/createGlobalsSlice.js b/apps_deprecated/supernova/src/lib/createGlobalsSlice.js similarity index 100% rename from apps/supernova/src/lib/createGlobalsSlice.js rename to apps_deprecated/supernova/src/lib/createGlobalsSlice.js diff --git a/apps/supernova/src/lib/createSilencesSlice.js b/apps_deprecated/supernova/src/lib/createSilencesSlice.js similarity index 100% rename from apps/supernova/src/lib/createSilencesSlice.js rename to apps_deprecated/supernova/src/lib/createSilencesSlice.js diff --git a/apps/supernova/src/lib/createSilencesSlice.test.js b/apps_deprecated/supernova/src/lib/createSilencesSlice.test.js similarity index 100% rename from apps/supernova/src/lib/createSilencesSlice.test.js rename to apps_deprecated/supernova/src/lib/createSilencesSlice.test.js diff --git a/apps/supernova/src/lib/createUserActivitySlice.js b/apps_deprecated/supernova/src/lib/createUserActivitySlice.js similarity index 100% rename from apps/supernova/src/lib/createUserActivitySlice.js rename to apps_deprecated/supernova/src/lib/createUserActivitySlice.js diff --git a/apps/supernova/src/lib/fakeObjects.js b/apps_deprecated/supernova/src/lib/fakeObjects.js similarity index 100% rename from apps/supernova/src/lib/fakeObjects.js rename to apps_deprecated/supernova/src/lib/fakeObjects.js diff --git a/apps/supernova/src/lib/utils.js b/apps_deprecated/supernova/src/lib/utils.js similarity index 100% rename from apps/supernova/src/lib/utils.js rename to apps_deprecated/supernova/src/lib/utils.js diff --git a/apps/supernova/src/styles.scss b/apps_deprecated/supernova/src/styles.scss similarity index 100% rename from apps/supernova/src/styles.scss rename to apps_deprecated/supernova/src/styles.scss diff --git a/apps/supernova/src/workers/alerts.js b/apps_deprecated/supernova/src/workers/alerts.js similarity index 100% rename from apps/supernova/src/workers/alerts.js rename to apps_deprecated/supernova/src/workers/alerts.js diff --git a/apps/supernova/src/workers/silences.js b/apps_deprecated/supernova/src/workers/silences.js similarity index 100% rename from apps/supernova/src/workers/silences.js rename to apps_deprecated/supernova/src/workers/silences.js diff --git a/apps/supernova/tailwind.config.js b/apps_deprecated/supernova/tailwind.config.js similarity index 100% rename from apps/supernova/tailwind.config.js rename to apps_deprecated/supernova/tailwind.config.js diff --git a/apps/template/.gitignore b/apps_deprecated/template/.gitignore similarity index 100% rename from apps/template/.gitignore rename to apps_deprecated/template/.gitignore diff --git a/apps/template/LICENSE b/apps_deprecated/template/LICENSE similarity index 100% rename from apps/template/LICENSE rename to apps_deprecated/template/LICENSE diff --git a/apps/template/README.md b/apps_deprecated/template/README.md similarity index 100% rename from apps/template/README.md rename to apps_deprecated/template/README.md diff --git a/apps/template/__mocks__/client.js b/apps_deprecated/template/__mocks__/client.js similarity index 100% rename from apps/template/__mocks__/client.js rename to apps_deprecated/template/__mocks__/client.js diff --git a/apps/template/__mocks__/fileMock.js b/apps_deprecated/template/__mocks__/fileMock.js similarity index 100% rename from apps/template/__mocks__/fileMock.js rename to apps_deprecated/template/__mocks__/fileMock.js diff --git a/apps/template/__mocks__/styleMock.js b/apps_deprecated/template/__mocks__/styleMock.js similarity index 100% rename from apps/template/__mocks__/styleMock.js rename to apps_deprecated/template/__mocks__/styleMock.js diff --git a/apps/template/babel.config.js b/apps_deprecated/template/babel.config.js similarity index 100% rename from apps/template/babel.config.js rename to apps_deprecated/template/babel.config.js diff --git a/apps/template/esbuild.config.js b/apps_deprecated/template/esbuild.config.js similarity index 100% rename from apps/template/esbuild.config.js rename to apps_deprecated/template/esbuild.config.js diff --git a/apps/template/jest.config.js b/apps_deprecated/template/jest.config.js similarity index 100% rename from apps/template/jest.config.js rename to apps_deprecated/template/jest.config.js diff --git a/apps/template/package.json b/apps_deprecated/template/package.json similarity index 85% rename from apps/template/package.json rename to apps_deprecated/template/package.json index 4756b4db5..c8fbeea70 100644 --- a/apps/template/package.json +++ b/apps_deprecated/template/package.json @@ -28,7 +28,7 @@ "babel-plugin-transform-import-meta": "^2.2.0", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", "postcss": "^8.4.21", "postcss-url": "^10.1.3", @@ -40,7 +40,7 @@ "sass": "^1.60.0", "shadow-dom-testing-library": "^1.7.1", "tailwindcss": "^3.3.1", - "url-state-provider": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", "util": "^0.12.4", "zustand": "4.5.2", "esbuild": "^0.19.5" @@ -52,12 +52,12 @@ }, "peerDependencies": { "@tanstack/react-query": "4.28.0", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.14.1/package.tgz", "luxon": "^2.3.0", "prop-types": "^15.8.1", "react": "18.2.0", "react-dom": "^18.2.0", - "url-state-provider": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", "zustand": "4.5.2" }, "importmapExtras": { diff --git a/apps/template/public/favicon-16x16.png b/apps_deprecated/template/public/favicon-16x16.png similarity index 100% rename from apps/template/public/favicon-16x16.png rename to apps_deprecated/template/public/favicon-16x16.png diff --git a/apps/template/public/favicon-32x32.png b/apps_deprecated/template/public/favicon-32x32.png similarity index 100% rename from apps/template/public/favicon-32x32.png rename to apps_deprecated/template/public/favicon-32x32.png diff --git a/apps/template/public/favicon.ico b/apps_deprecated/template/public/favicon.ico similarity index 100% rename from apps/template/public/favicon.ico rename to apps_deprecated/template/public/favicon.ico diff --git a/apps/template/public/index.html b/apps_deprecated/template/public/index.html similarity index 100% rename from apps/template/public/index.html rename to apps_deprecated/template/public/index.html diff --git a/apps/template/secretProps.template.json b/apps_deprecated/template/secretProps.template.json similarity index 100% rename from apps/template/secretProps.template.json rename to apps_deprecated/template/secretProps.template.json diff --git a/apps/template/setupTests.js b/apps_deprecated/template/setupTests.js similarity index 100% rename from apps/template/setupTests.js rename to apps_deprecated/template/setupTests.js diff --git a/apps/template/src/App.js b/apps_deprecated/template/src/App.js similarity index 100% rename from apps/template/src/App.js rename to apps_deprecated/template/src/App.js diff --git a/apps/template/src/App.test.js b/apps_deprecated/template/src/App.test.js similarity index 100% rename from apps/template/src/App.test.js rename to apps_deprecated/template/src/App.test.js diff --git a/apps/template/src/AppContent.js b/apps_deprecated/template/src/AppContent.js similarity index 100% rename from apps/template/src/AppContent.js rename to apps_deprecated/template/src/AppContent.js diff --git a/apps/template/src/assets/.gitkeep b/apps_deprecated/template/src/assets/.gitkeep similarity index 100% rename from apps/template/src/assets/.gitkeep rename to apps_deprecated/template/src/assets/.gitkeep diff --git a/apps/template/src/components/StoreProvider.js b/apps_deprecated/template/src/components/StoreProvider.js similarity index 100% rename from apps/template/src/components/StoreProvider.js rename to apps_deprecated/template/src/components/StoreProvider.js diff --git a/apps/template/src/hooks/.gitkeep b/apps_deprecated/template/src/hooks/.gitkeep similarity index 100% rename from apps/template/src/hooks/.gitkeep rename to apps_deprecated/template/src/hooks/.gitkeep diff --git a/apps/template/src/index.js b/apps_deprecated/template/src/index.js similarity index 100% rename from apps/template/src/index.js rename to apps_deprecated/template/src/index.js diff --git a/apps/template/src/lib/store/createGlobalsSlice.js b/apps_deprecated/template/src/lib/store/createGlobalsSlice.js similarity index 100% rename from apps/template/src/lib/store/createGlobalsSlice.js rename to apps_deprecated/template/src/lib/store/createGlobalsSlice.js diff --git a/apps/template/src/lib/store/createGlobalsSlice.test.js b/apps_deprecated/template/src/lib/store/createGlobalsSlice.test.js similarity index 100% rename from apps/template/src/lib/store/createGlobalsSlice.test.js rename to apps_deprecated/template/src/lib/store/createGlobalsSlice.test.js diff --git a/apps/template/src/lib/store/index.js b/apps_deprecated/template/src/lib/store/index.js similarity index 100% rename from apps/template/src/lib/store/index.js rename to apps_deprecated/template/src/lib/store/index.js diff --git a/apps/template/src/styles.scss b/apps_deprecated/template/src/styles.scss similarity index 100% rename from apps/template/src/styles.scss rename to apps_deprecated/template/src/styles.scss diff --git a/apps/template/tailwind.config.js b/apps_deprecated/template/tailwind.config.js similarity index 100% rename from apps/template/tailwind.config.js rename to apps_deprecated/template/tailwind.config.js diff --git a/ci/pipeline.yaml.erb b/ci/pipeline.yaml.erb index 1fe98c433..c94f790df 100644 --- a/ci/pipeline.yaml.erb +++ b/ci/pipeline.yaml.erb @@ -14,20 +14,31 @@ "widget-loader": { type: "app", path: "apps/widget-loader"}, "dashboard": { type: "app", path: "apps/dashboard"}, # "supernova": { type: "app", path: "apps/supernova"}, - "exampleapp": { type: "app", path: "apps/exampleapp"}, + # "exampleapp": { type: "app", path: "apps/exampleapp"}, # "greenhouse": { type: "app", path: "apps/greenhouse" }, # "greenhouse-management":{ type: "app", path: "apps/greenhouse-management" }, # "heureka": { type: "app", path: "apps/heureka"}, "playground": { type: "app", path: "apps/playground"}, - "juno-ui-components": { type: "lib", path: "libs/juno-ui-components"}, + # "juno-ui-components": { type: "lib", path: "libs/juno-ui-components"}, + # "messages-provider": { type: "lib", path: "libs/messages-provider"}, + # "policy-engine": { type: "lib", path: "libs/policy-engine"}, + # "url-state-provider": { type: "lib", path: "libs/url-state-provider"}, + # "url-state-router": { type: "lib", path: "libs/url-state-router"}, + # "utils": { type: "lib", path: "libs/utils"}, + } + + CLOUDOPERATOR_ASSETS = { + "exampleapp": { type: "app", path: "apps/exampleapp"}, + "communicator": { type: "lib", path: "libs/communicator"}, "messages-provider": { type: "lib", path: "libs/messages-provider"}, - "oauth": { type: "lib", path: "libs/oauth"}, + "juno-ui-components": { type: "lib", path: "libs/juno-ui-components"}, "policy-engine": { type: "lib", path: "libs/policy-engine"}, - "communicator": { type: "lib", path: "libs/communicator"}, + "oauth": { type: "lib", path: "libs/oauth"}, "url-state-provider": { type: "lib", path: "libs/url-state-provider"}, "url-state-router": { type: "lib", path: "libs/url-state-router"}, "utils": { type: "lib", path: "libs/utils"}, } + HA_REGIONS = ["eu-de-1","eu-de-2","eu-nl-1","ap-ae-1","ap-jp-2","ap-au-1","la-br-1","na-us-1","na-us-2"] %> @@ -141,9 +152,6 @@ resources: uri: https://github.com/sapcc/juno.git branch: main paths: ["<%=details[:path]%>","libs","package.json","e2e", ".yarn"] - # "ci" - # "ci/scripts" - # "ci/shared" username: sapcc-bot password: ((github-access-token/sapcc-bot)) @@ -155,6 +163,32 @@ resources: <% end %> + <% CLOUDOPERATOR_ASSETS.each do |name,details| %> + - name: <%=details[:type]%>-<%= name %>.git + icon: github + type: git-proxy + webhook_token: bleep-bloop + source: + uri: https://github.com/cloudoperators/juno.git + username: ((github-access-token/sapcc-bot)) + password: x-oauth-basic + branch: main + paths: ["<%=details[:path]%>"] + + - name: <%= details[:type] %>-<%= name %>.version + type: time-version-resource + icon: lock + check_every: 525600h + source: { key: "<%= details[:type] %>-<%= name %>" } # disambiguate from other time-version resources + + <% end %> + + - name: run-manually.version + type: time-version-resource + icon: lock + check_every: 525600h + source: { key: "juno-run-manually-version" } # disambiguate from other time-version resources + - name: assets-server.version type: time-version-resource icon: lock @@ -186,7 +220,8 @@ resource_types: groups: - name: assets jobs: - <% ASSETS.each do |name,details| %> + - run-all-manually + <% ASSETS.merge(CLOUDOPERATOR_ASSETS).each do |name,details| %> - build-<%= details[:type] %>-<%= name %> <% end %> - build-assets-server-image @@ -235,6 +270,11 @@ jobs: - '\tThis pipeline is defined at: https://github.com/sapcc/juno/ci/\n\n' - '\tManage Juno images: https://keppel.eu-de-1.cloud.sap/ccloud/juno\n' + + - name: run-all-manually + plan: + - put: run-manually.version + # ============================================================= # BUILD BASE IMAGES - name: build-base-image @@ -269,12 +309,16 @@ jobs: # BUILD ASSET SERVER IMAGE # Assets build - <% ASSETS.each do |name,details| %> + <% ASSETS.merge(CLOUDOPERATOR_ASSETS).each do |name,details| %> - name: build-<%= details[:type] %>-<%= name %> public: true plan: + - get: run-manually.version + trigger: true + passed: [run-all-manually] - get: <%= details[:type] %>-<%= name %>.git trigger: true + - get: juno.git - get: base.image - get: ci-helper.image - put: <%= details[:type] %>-<%= name %>.version @@ -282,7 +326,7 @@ jobs: <% if details[:type] == "lib" %> # this is used to get the last version, only libs with new versions will be deployed - task: download-last-build - file: <%=details[:type]%>-<%= name %>.git/ci/shared/swift-download.yaml + file: juno.git/ci/shared/swift-download.yaml output_mapping: download: last_build params: @@ -315,13 +359,14 @@ jobs: # TODO: this need a lot of runtime, move that stuff into asset_build.sh after version check echo "sync all node_modules from /juno/ to ./latest/" rsync -am --include='*/' --include='node_modules/***' --exclude='*' /juno/ ./latest - cd ./latest + cd ./latest/<%=details[:type]%>s/<%=name%> echo "update node modules -> npm install --silent" - npm install --silent + npm install + cd ../../ echo "" - ./ci/scripts/asset_build.sh --asset-name <%= name %> --asset-type <%= details[:type] %> --output-path ../build_result <% if details[:type] == "lib" %> --last-build-path ../last_build <% end %> + /juno/ci/scripts/asset_build.sh --asset-name <%= name %> --asset-type <%= details[:type] %> --output-path ../build_result <% if details[:type] == "lib" %> --last-build-path ../last_build <% end %> - task: sync - file: <%=details[:type]%>-<%= name %>.git/ci/shared/swift-upload.yaml + file: juno.git/ci/shared/swift-upload.yaml input_mapping: upload: build_result params: @@ -358,7 +403,7 @@ jobs: - get: swift-juno-assets.version trigger: true - <% ASSETS.each do |name, details|%> + <% ASSETS.merge(CLOUDOPERATOR_ASSETS).each do |name, details|%> - get: <%= details[:type] %>-<%= name %>.version trigger: false passed: ["build-<%= details[:type] %>-<%= name %>"] @@ -392,7 +437,7 @@ jobs: set -e cd ./juno.git # 1) download our own assets - <% ASSETS.each do |name, details|%> + <% ASSETS.merge(CLOUDOPERATOR_ASSETS).each do |name, details|%> ./ci/scripts/asset_storage.sh --container juno-assets --asset-name <%= name %> --asset-path <%= details[:path] %> --action download --root-path ../juno-assets <% end %> # 2) download and check for name collission in juno-3rd-party assets diff --git a/ci/scripts/asset_build.sh b/ci/scripts/asset_build.sh index 832f32ae3..f947cd02e 100755 --- a/ci/scripts/asset_build.sh +++ b/ci/scripts/asset_build.sh @@ -3,10 +3,10 @@ # exit on error set -e -if [ ! -f "CODEOWNERS" ]; then - echo "This script must run from root of juno repo" - exit 1 -fi +# if [ ! -f "CODEOWNERS" ]; then +# echo "This script must run from root of juno repo" +# exit 1 +# fi function help() { echo "Usage: build_assets.sh --asset-path||-ap --asset-name||-sn --asset-type||-at --output-path||-op --last-build-path||-lbp @@ -21,6 +21,8 @@ if [[ "$1" == "--help" ]]; then help fi +SCRIPTS_FOLDER=$(dirname $0) + OUTPUT_PATH="./build-result" while [[ $# -gt 0 ]]; do case $1 in @@ -134,19 +136,24 @@ fi echo "----------------------------------" echo "generate COMMUNICATOR.md in $ASSET_PATH" -node ci/scripts/generate_communication_readme.mjs --path="$ASSET_PATH" +node "$SCRIPTS_FOLDER/generate_communication_readme.mjs" --path="$ASSET_PATH" # install and build libs -npm run build-libs +# npm run build-libs # TEST AND BUILD ASSET # IGNORE_EXTERNALS=true will results in a bundle which includes all dependencies. # This is the case if the jspm cdn is unreachable!!! echo "----------------------------------" echo "run Tests for ...." +# since we removed all local dependencies (*) we don't need to use --workspace +# instead we can use the local path ASSET_NAME=$(jq -r .name "$ASSET_PATH/package.json") -npm --workspace "$ASSET_NAME" run test --if-present -NODE_ENV=production IGNORE_EXTERNALS=false npm --workspace "$ASSET_NAME" run build --if-present +CURRENT_DIR=$(pwd) +cd "$ASSET_PATH" +npm run test --if-present +NODE_ENV=production IGNORE_EXTERNALS=false npm run build --if-present +cd "$CURRENT_DIR" # get BUILD_DIR from package.json # strip `leading` slash from BUILD_DIR and split by / and use first part diff --git a/ci/scripts/esm_build/generate_importmap.mjs b/ci/scripts/esm_build/generate_importmap.mjs index 4156290c6..084e5a714 100644 --- a/ci/scripts/esm_build/generate_importmap.mjs +++ b/ci/scripts/esm_build/generate_importmap.mjs @@ -162,10 +162,21 @@ for (let name in packageRegistry) { // if the package has peer dependencies, we need to add them to the importmap's scopes section for (let depName in pkg.peerDependencies) { - const depVersion = pkg.peerDependencies[depName] - const ownPackage = - packageRegistry[depName]?.[depVersion === "*" ? "latest" : depVersion] + let depVersion = pkg.peerDependencies[depName] + + let ownPackage = null + if (packageRegistry[depName]) { + depVersion = depVersion === "*" ? "latest" : depVersion + // support URL as version + if (depVersion.startsWith("http")) { + // extract version from url. The version start directly after @ and is a sem version + depVersion = depVersion.match(/@([0-9]+\.[0-9]+\.[0-9]+)/)[1] + } + + ownPackage = packageRegistry[depName]?.[depVersion] + } + //console.log("====", depName, depVersion, ownPackage) if (ownPackage) { log( yellow( diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index 01aaeaeac..0aa1f1aba 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM keppel.eu-de-1.cloud.sap/ccloud-dockerhub-mirror/library/node:18-alpine +FROM keppel.eu-de-1.cloud.sap/ccloud-dockerhub-mirror/library/node:20-alpine RUN apk add git RUN npm install -g serve concurrently glob depcheck diff --git a/docs/build_and_host_app.md b/docs/build_and_host_app.md index cc5c684aa..615ae0605 100644 --- a/docs/build_and_host_app.md +++ b/docs/build_and_host_app.md @@ -33,12 +33,12 @@ npm -v ```json "peerDependencies": { "@tanstack/react-query": "^4.28.0", - "juno-ui-components": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.13.8/package.tgz", "luxon": "^2.3.0", "prop-types": "^15.8.1", "react": "18.2.0", "react-dom": "^18.2.0", - "url-state-provider": "*", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", "zustand": "^4.1.1" }, ``` @@ -53,8 +53,8 @@ npm -v ```yaml "devDependencies": { ... - "juno-ui-components": "*", - "url-state-provider": "*", + "juno-ui-components": "https://assets.juno.global.cloud.sap/libs/juno-ui-components@2.13.8/package.tgz", + "url-state-provider": "https://assets.juno.global.cloud.sap/libs/url-state-provider@1.3.2/package.tgz", ... }, ``` diff --git a/libs/juno-ui-components/src/components/SideNavigation/SideNavigation.stories.js b/libs/juno-ui-components/src/components/SideNavigation/SideNavigation.stories.js deleted file mode 100644 index a552a11d2..000000000 --- a/libs/juno-ui-components/src/components/SideNavigation/SideNavigation.stories.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import React from "react" -import { SideNavigation } from "./index.js" -import { SideNavigationItem } from "../SideNavigationItem/SideNavigationItem.component" - - -export default { - title: "Navigation/SideNavigation/SideNavigation", - component: SideNavigation, - argTypes: { - items: { - table: { - disable: true - } - }, - children: { - control: false - }, - } -} - -const Template = ( {children, ...args} ) => ( - - { children } - -) - -export const Default = Template.bind({}) -Default.args = { - children: [ - , - , - , - , - ] -} - -export const Disabled = Template.bind({}) -Disabled.parameters = { - docs: { - description: { - story: "All navigation items can be disabled by passing `disabled` to the `TabNavigation`." - } - } -}, -Disabled.args = { - disabled: true, - children: [ - , - , - - ] -} - -export const WithValues = Template.bind({}) -WithValues.parameters = { - docs: { - description: { - story: "When needed, navigation items can take a `value` prop as a technical identifier that is different form the human-readable `label`. When using `value` on the navigation items, the respective `value`must be used when setting the `activeItem` prop on the SideNavigation. Alternatively, an individual `SideNavigationItem` can be set to `active`." - } - } -} -WithValues.args = { - activeItem: "i-3", - children: [ - , - , - , - - ] -} - -export const WithChildren = Template.bind({}) -WithChildren.parameters = { - docs: { - description: { - story: "Alternatively, navigation items can render children passed to them. In order to get a working, self-managing navigation, each item must have a `value` or `label` prop." - } - } -} -WithChildren.args = { - activeItem: "item-1", - children: [ - Item 1, - Item 2, - Item 3, - Item 4 - ] -} diff --git a/libs/juno-ui-components/src/components/SideNavigationItem/SideNavigationItem.component.js b/libs/juno-ui-components/src/components/SideNavigationItem/SideNavigationItem.component.js deleted file mode 100644 index a43b6c579..000000000 --- a/libs/juno-ui-components/src/components/SideNavigationItem/SideNavigationItem.component.js +++ /dev/null @@ -1,200 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import React, { useContext, useEffect, useState } from "react" -import PropTypes from "prop-types" -import { NavigationContext } from "../SideNavigation/SideNavigation.component" -import { Icon } from "../Icon/index.js" -import { knownIcons } from "../Icon/Icon.component.js" - -const itemStyles = ` - jn-flex - jn-items-center - jn-w-full - jn-py-1.5 - jn-px-8 - jn-text-theme-default - jn-font-bold - jn-cursor-pointer - focus-visible:jn-outline-none - focus-visible:jn-ring-2 - focus-visible:jn-ring-theme-focus -` - -const activeItemStyles = ` - jn-text-theme-sidenavigation-item-active - jn-bg-theme-sidenavigation-item-active -` - -const disabledItemStyles = ` - jn-pointer-events-none - jn-opacity-50 - jn-cursor-not-allowed -` - -/** -A SideNavigation item. To be used inside SideNavigation. -*/ -export const SideNavigationItem = ({ - active, - ariaLabel, - children, - className, - disabled, - icon, - label, - href, - onClick, - value, - ...props -}) => { - const navigationContext = useContext(NavigationContext) - - const { - activeItem: activeItem, - updateActiveItem: updateActiveItem, - handleActiveItemChange: handleActiveItemChange, - disabled: groupDisabled, - } = navigationContext || {} - - const theKey = value || label - - const initialActive = () => { - if (navigationContext?.activeItem?.length > 0) { - return activeItem === theKey - } else { - return active - } - } - - const [isActive, setIsActive] = useState(() => initialActive()) - - // Update the parent state when in a navigation context, otherwise update item state directly: - useEffect(() => { - if (activeItem) { - activeItem === theKey ? setIsActive(true) : setIsActive(false) - return - } - setIsActive(active) - }, [activeItem, active]) - - const handleItemClick = (event) => { - if (!isActive) { - handleActiveItemChange(theKey) - } - onClick && onClick(event) - } - - return ( -
  • - {href ? ( - - {icon ? ( - - ) : ( - "" - )} - {children || label || theKey} - - ) : ( - - )} -
  • - ) -} - -SideNavigationItem.propTypes = { - /** Whether the item is the currently active item */ - active: PropTypes.bool, - /** The aria label of the item */ - ariaLabel: PropTypes.string, - /** The children to render. In order to make the navigation work, you also need to pass a `value` or `label` prop, or both. */ - children: PropTypes.node, - /** Whether the item is disabled */ - disabled: PropTypes.bool, - /** pass an icon name */ - icon: PropTypes.oneOf(knownIcons), - /** The label of the item */ - label: PropTypes.string, - /** Pass a custom className */ - className: PropTypes.string, - /** The aria label of the item */ - ariaLabel: PropTypes.string, - /** The link the item should point to. Will render the item as an anchor if passed */ - href: PropTypes.string, - /** A handler to execute once the item is clicked. Will render the item as a button element if passed */ - onClick: PropTypes.func, - /** An optional technical identifier fort the tab. If not passed, the label will be used to identify the tab. NOTE: If value is passed, the value of the active tab MUST be used when setting the activeItem prop on the parent SideNavigation.*/ - value: PropTypes.string, -} - -SideNavigationItem.defaultProps = { - active: false, - ariaLabel: undefined, - children: null, - disabled: false, - icon: null, - label: "", - className: "", - ariaLabel: "", - href: "", - onClick: undefined, - value: "", -} diff --git a/libs/juno-ui-components/src/components/TabNavigation/TabNavigation.stories.js b/libs/juno-ui-components/src/components/TabNavigation/TabNavigation.stories.js deleted file mode 100644 index 2e7df1eea..000000000 --- a/libs/juno-ui-components/src/components/TabNavigation/TabNavigation.stories.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import React from 'react' -import { TabNavigation } from './index.js' -import { TabNavigationItem } from '../TabNavigationItem/index.js' - -export default { - title: 'Navigation/TabNavigation/TabNavigation', - component: TabNavigation, - argTypes: { - children: { - control: false, - }, - onActiveItemChange: { - control: false, - }, - tabStyle: { - options: ['main', 'content'], - control: { type: 'radio' }, - }, - }, -}; - -const Template = ({ children, ...args}) => ( - - { children } - -) - -export const Default = Template.bind({}) -Default.args = { - children: [ - , - , - , - - ] -} - -export const Disabled = Template.bind({}) -Disabled.parameters = { - docs: { - description: { - story: "All navigation items can be disabled by passing `disabled` to the `TabNavigation`." - } - } -}, -Disabled.args = { - disabled: true, - children: - [ - , - , - , - - ] -} - -export const WithValues = Template.bind({}) -WithValues.parameters = { - docs: { - description: { - story: "When needed, navigation items can take a `value` prop as a technical identifier that is different form the human-readable `label`. When using `value` on the navigation items, the respective `value`must be used when setting the `activeItem` prop on the TabNavigation. Alternatively, an individual `TabNavigationItem` can be set to `active`." - } - } -}, -WithValues.args = { - activeItem: "item-3", - children: [ - , - , - , - - ] -} - -export const WithChildren = Template.bind({}) -WithChildren.parameters = { - docs: { - description: { - story: "Alternatively, navigation items can render children passed to them. In order to get a working, self-managing navigation, each item must have a `value` or `label` prop." - } - } -} -WithChildren.args = { - activeItem: "item-1", - children: [ - Item 1, - Item 2, - Item 3, - Item 4 - ] -} diff --git a/libs/juno-ui-components/src/components/TabNavigationItem/TabNavigationItem.component.js b/libs/juno-ui-components/src/components/TabNavigationItem/TabNavigationItem.component.js deleted file mode 100644 index a20e77206..000000000 --- a/libs/juno-ui-components/src/components/TabNavigationItem/TabNavigationItem.component.js +++ /dev/null @@ -1,202 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import React, { useState, useEffect, useContext } from "react" -import PropTypes from "prop-types" -import { NavigationContext } from "../TabNavigation/TabNavigation.component" -import { Icon } from "../Icon/index.js" -import { knownIcons } from "../Icon/Icon.component.js" - -const itemStyles = ` - jn-flex - jn-items-center - jn-text-theme-default - jn-font-bold - jn-py-[0.875rem] - jn-px-[1.5625rem] - focus-visible:jn-outline-none - focus-visible:jn-ring-2 - focus-visible:jn-ring-theme-focus -` -const defaultMainItemStyles = ` - jn-border-b-[3px] - jn-border-transparent -` - -const defaultContentItemStyles = ` - jn-border-b-[3px] - jn-border-theme-tab-content-inactive-bottom -` - -const disabledItemStyles = ` - jn-pointer-events-none - jn-opacity-50 - jn-cursor-not-allowed -` - -const activeItemStyles = ` - jn-text-theme-high - jn-border-b-[3px] - jn-border-theme-tab-active-bottom -` - -/** An individual Tab Navigation Item. Use wrapped in a `` parent component. */ -export const TabNavigationItem = ({ - active, - ariaLabel, - children, - className, - disabled, - href, - icon, - label, - onClick, - value, - ...props -}) => { - const navigationContext = useContext(NavigationContext) - const { - activeItem: activeItem, - updateActiveItem: updateActiveItem, - handleActiveItemChange: handleActiveItemChange, - disabled: groupDisabled, - tabStyle: tabStyle, - } = navigationContext || {} - - // Use the value (if passed) or the label as identifying key or the tab: - const theKey = value || label - - // Lazily init depending on parent context or tab's own prop: - const initialActive = () => { - if (navigationContext?.activeItem?.length > 0) { - return activeItem === theKey - } else { - return active - } - } - - const [isActive, setIsActive] = useState(() => initialActive()) - - useEffect(() => { - if (activeItem) { - activeItem === theKey ? setIsActive(true) : setIsActive(false) - return - } - setIsActive(active) - }, [activeItem, active]) - - const handleItemClick = (event) => { - if (!isActive) { - handleActiveItemChange(theKey) - } - onClick && onClick(event) - } - - return ( -
  • - {href ? ( - - {icon ? : null} - {children || label || theKey} - - ) : ( - - )} -
  • - ) -} - -TabNavigationItem.propTypes = { - /** Whether the tab navigation item is active */ - active: PropTypes.bool, - /** The aria label of the item */ - ariaLabel: PropTypes.string, - /** The children to render. In order to make the navigation work, you also need to pass a `value` or `label` prop, or both. */ - children: PropTypes.node, - /** Pass a custom className */ - className: PropTypes.string, - /** Whether the tab navigation item is disabled */ - disabled: PropTypes.bool, - /*+ Pass a href to render the item as an `` */ - href: PropTypes.string, - /** Pass the name of an icon to render in the Tab. Can be any icon included with Juno. */ - icon: PropTypes.oneOf(knownIcons), - /** The label of the tab navigation item. Must be unique within any given `` group. */ - label: PropTypes.string, - /** Pass a custom handler to execute when the tab is clicked */ - onClick: PropTypes.func, - /** An optional technical identifier fort the tab. If not passed, the label will be used to identify the tab. NOTE: If value is passed, the value of the active tab MUST be used when setting the activeItem prop on the parent TabNavigation.*/ - value: PropTypes.string, -} - -TabNavigationItem.defaultProps = { - active: false, - ariaLabel: undefined, - children: null, - className: "", - disabled: false, - href: undefined, - icon: undefined, - label: "", - onClick: undefined, - value: "", -} diff --git a/libs/juno-ui-components/src/components/TopNavigation/TopNavigation.stories.js b/libs/juno-ui-components/src/components/TopNavigation/TopNavigation.stories.js deleted file mode 100644 index 0df6a7cf0..000000000 --- a/libs/juno-ui-components/src/components/TopNavigation/TopNavigation.stories.js +++ /dev/null @@ -1,94 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import React from "react" -import { TopNavigation } from "./index.js" -import { TopNavigationItem } from "../TopNavigationItem/TopNavigationItem.component" - -export default { - title: "Navigation/TopNavigation/TopNavigation", - component: TopNavigation, - argTypes: { - items: { - table: { - disable: true - } - }, - children: { - control: false - }, - } -} - -const Template = ({children, ...args}) => ( - - { children } - -) - -export const Default = Template.bind({}) -Default.args = { - children: [ - , - , - , - - ] -} - -export const Disabled = Template.bind({}) -Disabled.parameters = { - docs: { - description: { - story: "All navigation items can be disabled by passing `disabled` to the `TabNavigation`." - } - } -}, -Disabled.args = { - disabled: true, - children: - [ - , - , - , - - ] -} - -export const WithValues = Template.bind({}) -WithValues.parameters = { - docs: { - description: { - story: "When needed, navigation items can take a `value` prop as a technical identifier that is different form the human-readable `label`. When using `value` on the navigation items, the respective `value`must be used when setting the `activeItem` prop on the TopNavigation. Alternatively, an individual `TopNavigationItem` can be set to `active`." - } - } -} -WithValues.args = { - activeItem: "i-3", - children: [ - , - , - , - - ] -} - -export const WithChildren = Template.bind({}) -WithChildren.parameters = { - docs: { - description: { - story: "Alternatively, navigation items can render children passed to them. In order to get a working, self-managing navigation, each item must have a `value` or `label` prop." - } - } -} -WithChildren.args = { - activeItem: "item-1", - children: [ - Item 1, - Item 2, - Item 3, - Item 4 - ] -} \ No newline at end of file diff --git a/libs/juno-ui-components/src/components/TopNavigation/TopNavigation.test.js b/libs/juno-ui-components/src/components/TopNavigation/TopNavigation.test.js deleted file mode 100644 index 9ab6eec9c..000000000 --- a/libs/juno-ui-components/src/components/TopNavigation/TopNavigation.test.js +++ /dev/null @@ -1,160 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import * as React from 'react'; -import { cleanup, render, screen, waitFor } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import { TopNavigation } from './index'; -import { TopNavigationItem } from '../TopNavigationItem/index'; - -const mockOnActiveItemChange = jest.fn() - -describe('TopNavigation', () => { - - afterEach(() => { - cleanup(); - jest.clearAllMocks(); - }) - - test('render a TopNavigation', async () => { - render(); - expect(screen.getByRole('navigation')).toBeInTheDocument(); - expect(screen.getByRole('navigation')).toHaveClass("juno-topnavigation"); - }) - - test("renders children as passed", async () => { - render( - - - - - - ) - expect(screen.getByRole("navigation")).toBeInTheDocument() - expect(screen.queryAllByRole("button")).toHaveLength(3) - expect(screen.getByRole("button", {name: "Item 1"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 2"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 3"})).toBeInTheDocument() - }) - - test("renders an aria-label as passed", async () => { - render() - expect(screen.getByRole("navigation")).toBeInTheDocument() - expect(screen.getByRole("navigation")).toHaveAttribute("aria-label", "describe the navigation") - }) - - test("renders disabled children as passed", async () => { - render( - - - - ) - expect(screen.getByRole("navigation")).toBeInTheDocument() - expect(screen.queryAllByRole("button")).toHaveLength(2) - expect(screen.getByRole("button", {name: "Item 1"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 1"})).toBeDisabled() - expect(screen.getByRole("button", {name: "Item 1"})).toHaveAttribute("aria-disabled", "true") - expect(screen.getByRole("button", {name: "Item 2"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 2"})).toBeDisabled() - expect(screen.getByRole("button", {name: "Item 2"})).toHaveAttribute("aria-disabled", "true") - }) - - test("renders an active navigation item as passed", async () => { - render( - - - - - ) - expect(screen.getByRole("navigation")).toBeInTheDocument() - expect(screen.queryAllByRole("button")).toHaveLength(2) - expect(screen.getByRole("button", {name: "Item 1"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 1"})).toHaveAttribute("aria-selected", "false") - expect(screen.getByRole("button", {name: "Item 1"})).not.toHaveClass("juno-topnavigation-item-active") - expect(screen.getByRole("button", {name: "Item 2"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 2"})).toHaveAttribute("aria-selected", "true") - expect(screen.getByRole("button", {name: "Item 2"})).toHaveClass("juno-topnavigation-item-active") - }) - - test("renders an active navigaiton item as passed by value", async () => { - render( - - - - - ) - expect(screen.getByRole("navigation")).toBeInTheDocument() - expect(screen.queryAllByRole("button")).toHaveLength(2) - expect(screen.getByRole("button", {name: "Item 1"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 1"})).toHaveAttribute("aria-selected", "false") - expect(screen.getByRole("button", {name: "Item 1"})).not.toHaveClass("juno-topnavigation-item-active") - expect(screen.getByRole("button", {name: "Item 2"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 2"})).toHaveAttribute("aria-selected", "true") - expect(screen.getByRole("button", {name: "Item 2"})).toHaveClass("juno-topnavigation-item-active") - }) - - test("renders the active item as passed to the parent if conflicting with active prop passed to child item", async () => { - render( - - - - - ) - expect(screen.getByRole("navigation")).toBeInTheDocument() - expect(screen.queryAllByRole("button")).toHaveLength(2) - expect(screen.getByRole("button", {name: "Item 1"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 1"})).toHaveAttribute("aria-selected", "false") - expect(screen.getByRole("button", {name: "Item 1"})).not.toHaveClass("juno-topnavigation-item-active") - expect(screen.getByRole("button", {name: "Item 2"})).toBeInTheDocument() - expect(screen.getByRole("button", {name: "Item 2"})).toHaveAttribute("aria-selected", "true") - expect(screen.getByRole("button", {name: "Item 2"})).toHaveClass("juno-topnavigation-item-active") - }) - - test("changes the active item when the user clicks", async () => { - render( - - - - - ) - expect(screen.getByRole("navigation")).toBeInTheDocument() - expect(screen.queryAllByRole("button")).toHaveLength(2) - const tab1 = screen.getByRole("button", {name: "Item 1"}) - const tab2 = screen.getByRole("button", {name: "Item 2"}) - expect(tab1).toHaveAttribute("aria-selected", "true") - expect(tab1).toHaveClass("juno-topnavigation-item-active") - expect(tab2).toHaveAttribute("aria-selected", "false") - expect(tab2).not.toHaveClass("juno-topnavigation-item-active") - await userEvent.click(tab2) - expect(tab1).toHaveAttribute("aria-selected", "false") - expect(tab1).not.toHaveClass("juno-topnavigation-item-active") - expect(tab2).toHaveAttribute("aria-selected", "true") - expect(tab2).toHaveClass("juno-topnavigation-item-active") - }) - - test("executes a handler as passed when the selected item changes", async () => { - render( - - - - ) - expect(screen.getByRole("navigation")).toBeInTheDocument() - expect(screen.queryAllByRole("button")).toHaveLength(2) - const item2 = screen.getByRole("button", {name: "Item 2"}) - await userEvent.click(item2) - expect(mockOnActiveItemChange).toHaveBeenCalled() - }) - - test('renders custom classNames as passed', async () => { - render(); - expect(screen.getByRole("navigation")).toHaveClass('my-custom-class'); - }); - - test('renders all props as passed', async () => { - render(); - expect(screen.getByRole('navigation')).toHaveAttribute('data-lol', 'Prop goes here'); - }); - -}); diff --git a/libs/juno-ui-components/src/components/TopNavigationItem/TopNavigationItem.component.js b/libs/juno-ui-components/src/components/TopNavigationItem/TopNavigationItem.component.js deleted file mode 100644 index 4d13476e7..000000000 --- a/libs/juno-ui-components/src/components/TopNavigationItem/TopNavigationItem.component.js +++ /dev/null @@ -1,195 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import React, { useContext, useEffect, useState } from "react"; -import PropTypes from "prop-types"; -import { NavigationContext } from "../TopNavigation/TopNavigation.component" -import { Icon } from "../Icon/index.js"; -import { knownIcons } from "../Icon/Icon.component.js" - -const itemStyles = ` - jn-flex - jn-items-center - jn-grow-0 - jn-justify-start - jn-text-theme-default - jn-font-bold - jn-text-base - jn-leading-6 - jn-h-8 - jn-py-1 - jn-px-[.3125rem] - jn-text-theme-default - jn-bg-theme-topnavigation-item - active:jn-text-theme-high - active:jn-bg-theme-topnavigation-item-active - focus-visible:jn-outline-none - focus-visible:jn-ring-2 - focus-visible:jn-ring-theme-focus -` - -const disabledItemStyles = ` - jn-opacity-50 - jn-cursor-not-allowed -` -const nonActiveItemStyles = ` - hover:jn-text-theme-high - hover:jn-bg-transparent -` - -const activeItemStyles = ` - jn-text-theme-high - jn-bg-theme-topnavigation-item-active -` - -/** -An individual item of a top level navigation. Place inside TopNavigation. -*/ -export const TopNavigationItem = ({ - active, - ariaLabel, - children, - className, - disabled, - href, - icon, - label, - onClick, - value, - ...props -}) => { - - const navigationContext = useContext(NavigationContext) - - const { - activeItem: activeItem, - updateActiveItem: updateActiveItem, - handleActiveItemChange: handleActiveItemChange, - disabled: groupDisabled, - } = navigationContext || {} - - const theKey = value || label - - const initialActive = () => { - if (navigationContext) { - activeItem === theKey ? true : false - } else { - return active - } - } - - const [isActive, setIsActive] = useState( () => initialActive() ) - - // Set the parent state once if not set on the parent, but a navigation item has been set to active via its own prop: - useEffect(() => { - if (active && navigationContext && !activeItem) { - updateActiveItem(theKey) - } - }, []) - - // Update the parent state when in a navigation context, otherwise update item state directly: - useEffect(() => { - if (activeItem) { - activeItem === theKey ? setIsActive(true) : setIsActive(false) - } else { - setIsActive(active) - } - }, [activeItem, active]) - - - const handleItemClick = (event) => { - if (!isActive) { - handleActiveItemChange(theKey) - } - onClick && onClick(event) - } - - return ( - - - ) -} - -TopNavigationItem.propTypes = { - /** Whether the item is the currently active item */ - active: PropTypes.bool, - /** The aria label of the item */ - ariaLabel: PropTypes.string, - /** The children to render. In order to make the navigation work, you also need to pass a `value` or `label` prop, or both. */ - children: PropTypes.node, - /** Whether the item is disabled */ - disabled: PropTypes.bool, - /** pass an icon name */ - icon: PropTypes.oneOf(knownIcons), - /** The label of the item */ - label: PropTypes.string, - /** Pass a custom className */ - className: PropTypes.string, - /** The link the item should point to. Will render the item as an anchor if passed */ - href: PropTypes.string, - /** A handler to execute once the navigation item is clicked. Will render the item as a button element if passed */ - onClick: PropTypes.func, - /** An optional technical identifier fort the tab. If not passed, the label will be used to identify the tab. NOTE: If value is passed, the value of the active tab MUST be used when setting the activeItem prop on the parent TabNavigation.*/ - value: PropTypes.string, -} - -TopNavigationItem.defaultProps = { - active: false, - ariaLabel: undefined, - children: null, - disabled: false, - icon: null, - label: "", - className: "", - href: "", - onClick: undefined, - value: "", -} \ No newline at end of file diff --git a/libs/juno-ui-components/src/components/TopNavigationItem/TopNavigationItem.test.js b/libs/juno-ui-components/src/components/TopNavigationItem/TopNavigationItem.test.js deleted file mode 100644 index 2eff2054a..000000000 --- a/libs/juno-ui-components/src/components/TopNavigationItem/TopNavigationItem.test.js +++ /dev/null @@ -1,102 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import * as React from 'react'; -import { cleanup, render, screen, waitFor } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import { TopNavigation } from '../TopNavigation/index'; -import { TopNavigationItem } from './index'; - -const mockOnClick = jest.fn() - -describe('TopNavigationItem', () => { - - afterEach(() => { - cleanup(); - jest.clearAllMocks(); - }) - - test('renders a ToppNavigationItem', async () => { - render(); - expect(screen.getByTestId('top-nav-item')).toBeInTheDocument(); - expect(screen.getByTestId('top-nav-item')).toHaveClass("juno-topnavigation-item"); - }); - - test("renders a label as passed", async () => { - render() - expect(screen.getByRole("button")).toBeInTheDocument(); - expect(screen.getByRole("button")).toHaveTextContent("My Label"); - }) - - test("renders children as passed", async () => { - render(The Item Is A Child) - expect(screen.getByRole("button")).toBeInTheDocument() - expect(screen.getByRole("button")).toHaveTextContent("The Item Is A Child") - }) - - test("redners an aria-label attribute as passed", async () => { - render() - expect(screen.getByRole("button")).toBeInTheDocument() - expect(screen.getByRole("button")).toHaveAttribute("aria-label", "My ARIA-Label") - }) - - test("renders a disabled item as passed", async () => { - render() - expect(screen.getByRole("button")).toBeInTheDocument() - expect(screen.getByRole("button")).toBeDisabled(); - expect(screen.getByRole("button")).toHaveAttribute("aria-disabled", "true"); - }) - - test("renders an icon as passed", async () => { - render() - expect(screen.getByRole("img")).toBeInTheDocument(); - expect(screen.getByRole("img")).toHaveAttribute("alt", "warning"); - }) - - test("renders as a link when a href prop is passed", async () => { - render(); - expect(screen.getByRole("link")).toBeInTheDocument(); - expect(screen.getByRole("link")).toHaveClass("juno-topnavigation-item"); - }) - - test("renders as a button when an onClick prop is passed", async () => { - render({console.log("click")}} />); - expect(screen.getByRole("button")).toBeInTheDocument(); - expect(screen.getByRole("button")).toHaveClass("juno-topnavigation-item"); - }) - - test('renders an active ToppNavigationItem as passed', async () => { - render(); - expect(screen.getByTestId('top-nav-item')).toBeInTheDocument(); - expect(screen.getByTestId('top-nav-item')).toHaveClass("juno-topnavigation-item"); - expect(screen.getByTestId('top-nav-item')).toHaveClass("juno-topnavigation-item-active"); - }); - - test('renders an aria-label as passed', async () => { - render(); - expect(screen.getByRole('link')).toHaveAttribute('aria-label', 'hey nav item!'); - }); - - test("executes an onClick handler as passed", async () => { - render( - - - ) - expect(screen.getByRole("button", {name: "My Item"})).toBeInTheDocument() - await userEvent.click(screen.getByRole("button", {name: "My Item"})) - expect(mockOnClick).toHaveBeenCalled() - }) - - test('renders custom classNames as passed', async () => { - render(); - expect(screen.getByTestId('top-nav-item')).toHaveClass('my-custom-class'); - }); - - test('renders all props as passed', async () => { - render(); - expect(screen.getByTestId('top-nav-item')).toHaveAttribute('data-lol', 'Prop goes here'); - }); - -}); \ No newline at end of file diff --git a/libs/communicator/.gitignore b/libs_deprecated/communicator/.gitignore similarity index 100% rename from libs/communicator/.gitignore rename to libs_deprecated/communicator/.gitignore diff --git a/libs/communicator/LICENSE b/libs_deprecated/communicator/LICENSE similarity index 100% rename from libs/communicator/LICENSE rename to libs_deprecated/communicator/LICENSE diff --git a/libs/communicator/README.md b/libs_deprecated/communicator/README.md similarity index 100% rename from libs/communicator/README.md rename to libs_deprecated/communicator/README.md diff --git a/libs/communicator/dev/build.js b/libs_deprecated/communicator/dev/build.js similarity index 100% rename from libs/communicator/dev/build.js rename to libs_deprecated/communicator/dev/build.js diff --git a/libs/communicator/dev/build.js.map b/libs_deprecated/communicator/dev/build.js.map similarity index 100% rename from libs/communicator/dev/build.js.map rename to libs_deprecated/communicator/dev/build.js.map diff --git a/libs/communicator/dev/index.html b/libs_deprecated/communicator/dev/index.html similarity index 100% rename from libs/communicator/dev/index.html rename to libs_deprecated/communicator/dev/index.html diff --git a/libs/communicator/dev/index.js b/libs_deprecated/communicator/dev/index.js similarity index 100% rename from libs/communicator/dev/index.js rename to libs_deprecated/communicator/dev/index.js diff --git a/libs/communicator/esbuild.config.js b/libs_deprecated/communicator/esbuild.config.js similarity index 100% rename from libs/communicator/esbuild.config.js rename to libs_deprecated/communicator/esbuild.config.js diff --git a/libs/communicator/package.json b/libs_deprecated/communicator/package.json similarity index 100% rename from libs/communicator/package.json rename to libs_deprecated/communicator/package.json diff --git a/libs/communicator/src/index.js b/libs_deprecated/communicator/src/index.js similarity index 100% rename from libs/communicator/src/index.js rename to libs_deprecated/communicator/src/index.js diff --git a/libs/communicator/src/index.test.js b/libs_deprecated/communicator/src/index.test.js similarity index 100% rename from libs/communicator/src/index.test.js rename to libs_deprecated/communicator/src/index.test.js diff --git a/libs/juno-ui-components/.gitignore b/libs_deprecated/juno-ui-components/.gitignore similarity index 100% rename from libs/juno-ui-components/.gitignore rename to libs_deprecated/juno-ui-components/.gitignore diff --git a/libs/juno-ui-components/.npmignore b/libs_deprecated/juno-ui-components/.npmignore similarity index 100% rename from libs/juno-ui-components/.npmignore rename to libs_deprecated/juno-ui-components/.npmignore diff --git a/libs/juno-ui-components/.storybook/.babelrc b/libs_deprecated/juno-ui-components/.storybook/.babelrc similarity index 100% rename from libs/juno-ui-components/.storybook/.babelrc rename to libs_deprecated/juno-ui-components/.storybook/.babelrc diff --git a/libs/juno-ui-components/.storybook/juno-addon/Decorator.jsx b/libs_deprecated/juno-ui-components/.storybook/juno-addon/Decorator.jsx similarity index 100% rename from libs/juno-ui-components/.storybook/juno-addon/Decorator.jsx rename to libs_deprecated/juno-ui-components/.storybook/juno-addon/Decorator.jsx diff --git a/libs/juno-ui-components/.storybook/juno-addon/DocsContainer.jsx b/libs_deprecated/juno-ui-components/.storybook/juno-addon/DocsContainer.jsx similarity index 100% rename from libs/juno-ui-components/.storybook/juno-addon/DocsContainer.jsx rename to libs_deprecated/juno-ui-components/.storybook/juno-addon/DocsContainer.jsx diff --git a/libs/juno-ui-components/.storybook/juno-addon/README.md b/libs_deprecated/juno-ui-components/.storybook/juno-addon/README.md similarity index 100% rename from libs/juno-ui-components/.storybook/juno-addon/README.md rename to libs_deprecated/juno-ui-components/.storybook/juno-addon/README.md diff --git a/libs/juno-ui-components/.storybook/juno-addon/ThemeToggle.jsx b/libs_deprecated/juno-ui-components/.storybook/juno-addon/ThemeToggle.jsx similarity index 100% rename from libs/juno-ui-components/.storybook/juno-addon/ThemeToggle.jsx rename to libs_deprecated/juno-ui-components/.storybook/juno-addon/ThemeToggle.jsx diff --git a/libs/juno-ui-components/.storybook/juno-addon/constants.js b/libs_deprecated/juno-ui-components/.storybook/juno-addon/constants.js similarity index 100% rename from libs/juno-ui-components/.storybook/juno-addon/constants.js rename to libs_deprecated/juno-ui-components/.storybook/juno-addon/constants.js diff --git a/libs/juno-ui-components/.storybook/juno-addon/manager.js b/libs_deprecated/juno-ui-components/.storybook/juno-addon/manager.js similarity index 100% rename from libs/juno-ui-components/.storybook/juno-addon/manager.js rename to libs_deprecated/juno-ui-components/.storybook/juno-addon/manager.js diff --git a/libs/juno-ui-components/.storybook/juno-addon/preview.js b/libs_deprecated/juno-ui-components/.storybook/juno-addon/preview.js similarity index 100% rename from libs/juno-ui-components/.storybook/juno-addon/preview.js rename to libs_deprecated/juno-ui-components/.storybook/juno-addon/preview.js diff --git a/libs/juno-ui-components/.storybook/juno-addon/themes.js b/libs_deprecated/juno-ui-components/.storybook/juno-addon/themes.js similarity index 100% rename from libs/juno-ui-components/.storybook/juno-addon/themes.js rename to libs_deprecated/juno-ui-components/.storybook/juno-addon/themes.js diff --git a/libs/juno-ui-components/.storybook/main.js b/libs_deprecated/juno-ui-components/.storybook/main.js similarity index 100% rename from libs/juno-ui-components/.storybook/main.js rename to libs_deprecated/juno-ui-components/.storybook/main.js diff --git a/libs/juno-ui-components/.storybook/preview.js b/libs_deprecated/juno-ui-components/.storybook/preview.js similarity index 100% rename from libs/juno-ui-components/.storybook/preview.js rename to libs_deprecated/juno-ui-components/.storybook/preview.js diff --git a/libs/juno-ui-components/LICENSE b/libs_deprecated/juno-ui-components/LICENSE similarity index 100% rename from libs/juno-ui-components/LICENSE rename to libs_deprecated/juno-ui-components/LICENSE diff --git a/libs/juno-ui-components/README.md b/libs_deprecated/juno-ui-components/README.md similarity index 100% rename from libs/juno-ui-components/README.md rename to libs_deprecated/juno-ui-components/README.md diff --git a/libs/juno-ui-components/babel.config.json b/libs_deprecated/juno-ui-components/babel.config.json similarity index 100% rename from libs/juno-ui-components/babel.config.json rename to libs_deprecated/juno-ui-components/babel.config.json diff --git a/libs/juno-ui-components/lib/variables.scss b/libs_deprecated/juno-ui-components/lib/variables.scss similarity index 100% rename from libs/juno-ui-components/lib/variables.scss rename to libs_deprecated/juno-ui-components/lib/variables.scss diff --git a/libs/juno-ui-components/package.json b/libs_deprecated/juno-ui-components/package.json similarity index 99% rename from libs/juno-ui-components/package.json rename to libs_deprecated/juno-ui-components/package.json index 9d95639a3..c77e16232 100644 --- a/libs/juno-ui-components/package.json +++ b/libs_deprecated/juno-ui-components/package.json @@ -5,7 +5,7 @@ "module": "build/index.js", "source": "src/index.js", "style": "build/lib/variables.css", - "version": "2.13.8", + "version": "2.14.0", "files": [ "src/colors.css", "tailwind.config.js" diff --git a/libs/juno-ui-components/postcss.config.js b/libs_deprecated/juno-ui-components/postcss.config.js similarity index 100% rename from libs/juno-ui-components/postcss.config.js rename to libs_deprecated/juno-ui-components/postcss.config.js diff --git a/libs/juno-ui-components/rollup.config.js b/libs_deprecated/juno-ui-components/rollup.config.js similarity index 100% rename from libs/juno-ui-components/rollup.config.js rename to libs_deprecated/juno-ui-components/rollup.config.js diff --git a/libs/juno-ui-components/setupTests.js b/libs_deprecated/juno-ui-components/setupTests.js similarity index 100% rename from libs/juno-ui-components/setupTests.js rename to libs_deprecated/juno-ui-components/setupTests.js diff --git a/libs/juno-ui-components/src/components/AppBody/AppBody.component.js b/libs_deprecated/juno-ui-components/src/components/AppBody/AppBody.component.js similarity index 100% rename from libs/juno-ui-components/src/components/AppBody/AppBody.component.js rename to libs_deprecated/juno-ui-components/src/components/AppBody/AppBody.component.js diff --git a/libs/juno-ui-components/src/components/AppBody/AppBody.stories.js b/libs_deprecated/juno-ui-components/src/components/AppBody/AppBody.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/AppBody/AppBody.stories.js rename to libs_deprecated/juno-ui-components/src/components/AppBody/AppBody.stories.js diff --git a/libs/juno-ui-components/src/components/AppBody/AppBody.test.js b/libs_deprecated/juno-ui-components/src/components/AppBody/AppBody.test.js similarity index 100% rename from libs/juno-ui-components/src/components/AppBody/AppBody.test.js rename to libs_deprecated/juno-ui-components/src/components/AppBody/AppBody.test.js diff --git a/libs/juno-ui-components/src/components/AppBody/index.js b/libs_deprecated/juno-ui-components/src/components/AppBody/index.js similarity index 100% rename from libs/juno-ui-components/src/components/AppBody/index.js rename to libs_deprecated/juno-ui-components/src/components/AppBody/index.js diff --git a/libs/juno-ui-components/src/components/AppIntro/AppIntro.component.js b/libs_deprecated/juno-ui-components/src/components/AppIntro/AppIntro.component.js similarity index 100% rename from libs/juno-ui-components/src/components/AppIntro/AppIntro.component.js rename to libs_deprecated/juno-ui-components/src/components/AppIntro/AppIntro.component.js diff --git a/libs/juno-ui-components/src/components/AppIntro/AppIntro.stories.js b/libs_deprecated/juno-ui-components/src/components/AppIntro/AppIntro.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/AppIntro/AppIntro.stories.js rename to libs_deprecated/juno-ui-components/src/components/AppIntro/AppIntro.stories.js diff --git a/libs/juno-ui-components/src/components/AppIntro/AppIntro.test.js b/libs_deprecated/juno-ui-components/src/components/AppIntro/AppIntro.test.js similarity index 100% rename from libs/juno-ui-components/src/components/AppIntro/AppIntro.test.js rename to libs_deprecated/juno-ui-components/src/components/AppIntro/AppIntro.test.js diff --git a/libs/juno-ui-components/src/components/AppIntro/index.js b/libs_deprecated/juno-ui-components/src/components/AppIntro/index.js similarity index 100% rename from libs/juno-ui-components/src/components/AppIntro/index.js rename to libs_deprecated/juno-ui-components/src/components/AppIntro/index.js diff --git a/libs/juno-ui-components/src/components/AppShell/AppShell.component.js b/libs_deprecated/juno-ui-components/src/components/AppShell/AppShell.component.js similarity index 100% rename from libs/juno-ui-components/src/components/AppShell/AppShell.component.js rename to libs_deprecated/juno-ui-components/src/components/AppShell/AppShell.component.js diff --git a/libs/juno-ui-components/src/components/AppShell/AppShell.stories.js b/libs_deprecated/juno-ui-components/src/components/AppShell/AppShell.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/AppShell/AppShell.stories.js rename to libs_deprecated/juno-ui-components/src/components/AppShell/AppShell.stories.js diff --git a/libs/juno-ui-components/src/components/AppShell/AppShell.test.js b/libs_deprecated/juno-ui-components/src/components/AppShell/AppShell.test.js similarity index 100% rename from libs/juno-ui-components/src/components/AppShell/AppShell.test.js rename to libs_deprecated/juno-ui-components/src/components/AppShell/AppShell.test.js diff --git a/libs/juno-ui-components/src/components/AppShell/index.js b/libs_deprecated/juno-ui-components/src/components/AppShell/index.js similarity index 100% rename from libs/juno-ui-components/src/components/AppShell/index.js rename to libs_deprecated/juno-ui-components/src/components/AppShell/index.js diff --git a/libs/juno-ui-components/src/components/AppShellProvider/AppShellProvider.component.js b/libs_deprecated/juno-ui-components/src/components/AppShellProvider/AppShellProvider.component.js similarity index 100% rename from libs/juno-ui-components/src/components/AppShellProvider/AppShellProvider.component.js rename to libs_deprecated/juno-ui-components/src/components/AppShellProvider/AppShellProvider.component.js diff --git a/libs/juno-ui-components/src/components/AppShellProvider/AppShellProvider.stories.js b/libs_deprecated/juno-ui-components/src/components/AppShellProvider/AppShellProvider.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/AppShellProvider/AppShellProvider.stories.js rename to libs_deprecated/juno-ui-components/src/components/AppShellProvider/AppShellProvider.stories.js diff --git a/libs/juno-ui-components/src/components/AppShellProvider/AppShellProvider.test.js b/libs_deprecated/juno-ui-components/src/components/AppShellProvider/AppShellProvider.test.js similarity index 100% rename from libs/juno-ui-components/src/components/AppShellProvider/AppShellProvider.test.js rename to libs_deprecated/juno-ui-components/src/components/AppShellProvider/AppShellProvider.test.js diff --git a/libs/juno-ui-components/src/components/AppShellProvider/index.js b/libs_deprecated/juno-ui-components/src/components/AppShellProvider/index.js similarity index 100% rename from libs/juno-ui-components/src/components/AppShellProvider/index.js rename to libs_deprecated/juno-ui-components/src/components/AppShellProvider/index.js diff --git a/libs/juno-ui-components/src/components/Badge/Badge.component.js b/libs_deprecated/juno-ui-components/src/components/Badge/Badge.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Badge/Badge.component.js rename to libs_deprecated/juno-ui-components/src/components/Badge/Badge.component.js diff --git a/libs/juno-ui-components/src/components/Badge/Badge.stories.js b/libs_deprecated/juno-ui-components/src/components/Badge/Badge.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Badge/Badge.stories.js rename to libs_deprecated/juno-ui-components/src/components/Badge/Badge.stories.js diff --git a/libs/juno-ui-components/src/components/Badge/Badge.test.js b/libs_deprecated/juno-ui-components/src/components/Badge/Badge.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Badge/Badge.test.js rename to libs_deprecated/juno-ui-components/src/components/Badge/Badge.test.js diff --git a/libs/juno-ui-components/src/components/Badge/index.js b/libs_deprecated/juno-ui-components/src/components/Badge/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Badge/index.js rename to libs_deprecated/juno-ui-components/src/components/Badge/index.js diff --git a/libs/juno-ui-components/src/components/Box/Box.component.js b/libs_deprecated/juno-ui-components/src/components/Box/Box.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Box/Box.component.js rename to libs_deprecated/juno-ui-components/src/components/Box/Box.component.js diff --git a/libs/juno-ui-components/src/components/Box/Box.stories.js b/libs_deprecated/juno-ui-components/src/components/Box/Box.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Box/Box.stories.js rename to libs_deprecated/juno-ui-components/src/components/Box/Box.stories.js diff --git a/libs/juno-ui-components/src/components/Box/Box.test.js b/libs_deprecated/juno-ui-components/src/components/Box/Box.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Box/Box.test.js rename to libs_deprecated/juno-ui-components/src/components/Box/Box.test.js diff --git a/libs/juno-ui-components/src/components/Box/index.js b/libs_deprecated/juno-ui-components/src/components/Box/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Box/index.js rename to libs_deprecated/juno-ui-components/src/components/Box/index.js diff --git a/libs/juno-ui-components/src/components/Breadcrumb/Breadcrumb.component.js b/libs_deprecated/juno-ui-components/src/components/Breadcrumb/Breadcrumb.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Breadcrumb/Breadcrumb.component.js rename to libs_deprecated/juno-ui-components/src/components/Breadcrumb/Breadcrumb.component.js diff --git a/libs/juno-ui-components/src/components/Breadcrumb/Breadcrumb.stories.js b/libs_deprecated/juno-ui-components/src/components/Breadcrumb/Breadcrumb.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Breadcrumb/Breadcrumb.stories.js rename to libs_deprecated/juno-ui-components/src/components/Breadcrumb/Breadcrumb.stories.js diff --git a/libs/juno-ui-components/src/components/Breadcrumb/Breadcrumb.test.js b/libs_deprecated/juno-ui-components/src/components/Breadcrumb/Breadcrumb.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Breadcrumb/Breadcrumb.test.js rename to libs_deprecated/juno-ui-components/src/components/Breadcrumb/Breadcrumb.test.js diff --git a/libs/juno-ui-components/src/components/Breadcrumb/index.js b/libs_deprecated/juno-ui-components/src/components/Breadcrumb/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Breadcrumb/index.js rename to libs_deprecated/juno-ui-components/src/components/Breadcrumb/index.js diff --git a/libs/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.component.js b/libs_deprecated/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.component.js similarity index 100% rename from libs/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.component.js rename to libs_deprecated/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.component.js diff --git a/libs/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.stories.js b/libs_deprecated/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.stories.js rename to libs_deprecated/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.stories.js diff --git a/libs/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.test.js b/libs_deprecated/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.test.js similarity index 100% rename from libs/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.test.js rename to libs_deprecated/juno-ui-components/src/components/BreadcrumbItem/BreadcrumbItem.test.js diff --git a/libs/juno-ui-components/src/components/BreadcrumbItem/index.js b/libs_deprecated/juno-ui-components/src/components/BreadcrumbItem/index.js similarity index 100% rename from libs/juno-ui-components/src/components/BreadcrumbItem/index.js rename to libs_deprecated/juno-ui-components/src/components/BreadcrumbItem/index.js diff --git a/libs/juno-ui-components/src/components/Button/Button.component.js b/libs_deprecated/juno-ui-components/src/components/Button/Button.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Button/Button.component.js rename to libs_deprecated/juno-ui-components/src/components/Button/Button.component.js diff --git a/libs/juno-ui-components/src/components/Button/Button.stories.js b/libs_deprecated/juno-ui-components/src/components/Button/Button.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Button/Button.stories.js rename to libs_deprecated/juno-ui-components/src/components/Button/Button.stories.js diff --git a/libs/juno-ui-components/src/components/Button/Button.test.js b/libs_deprecated/juno-ui-components/src/components/Button/Button.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Button/Button.test.js rename to libs_deprecated/juno-ui-components/src/components/Button/Button.test.js diff --git a/libs/juno-ui-components/src/components/Button/button.scss b/libs_deprecated/juno-ui-components/src/components/Button/button.scss similarity index 100% rename from libs/juno-ui-components/src/components/Button/button.scss rename to libs_deprecated/juno-ui-components/src/components/Button/button.scss diff --git a/libs/juno-ui-components/src/components/Button/index.js b/libs_deprecated/juno-ui-components/src/components/Button/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Button/index.js rename to libs_deprecated/juno-ui-components/src/components/Button/index.js diff --git a/libs/juno-ui-components/src/components/ButtonRow/ButtonRow.component.js b/libs_deprecated/juno-ui-components/src/components/ButtonRow/ButtonRow.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ButtonRow/ButtonRow.component.js rename to libs_deprecated/juno-ui-components/src/components/ButtonRow/ButtonRow.component.js diff --git a/libs/juno-ui-components/src/components/ButtonRow/ButtonRow.stories.js b/libs_deprecated/juno-ui-components/src/components/ButtonRow/ButtonRow.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ButtonRow/ButtonRow.stories.js rename to libs_deprecated/juno-ui-components/src/components/ButtonRow/ButtonRow.stories.js diff --git a/libs/juno-ui-components/src/components/ButtonRow/ButtonRow.test.js b/libs_deprecated/juno-ui-components/src/components/ButtonRow/ButtonRow.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ButtonRow/ButtonRow.test.js rename to libs_deprecated/juno-ui-components/src/components/ButtonRow/ButtonRow.test.js diff --git a/libs/juno-ui-components/src/components/ButtonRow/index.js b/libs_deprecated/juno-ui-components/src/components/ButtonRow/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ButtonRow/index.js rename to libs_deprecated/juno-ui-components/src/components/ButtonRow/index.js diff --git a/libs/juno-ui-components/src/components/Checkbox/Checkbox.component.js b/libs_deprecated/juno-ui-components/src/components/Checkbox/Checkbox.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Checkbox/Checkbox.component.js rename to libs_deprecated/juno-ui-components/src/components/Checkbox/Checkbox.component.js diff --git a/libs/juno-ui-components/src/components/Checkbox/Checkbox.stories.js b/libs_deprecated/juno-ui-components/src/components/Checkbox/Checkbox.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Checkbox/Checkbox.stories.js rename to libs_deprecated/juno-ui-components/src/components/Checkbox/Checkbox.stories.js diff --git a/libs/juno-ui-components/src/components/Checkbox/Checkbox.test.js b/libs_deprecated/juno-ui-components/src/components/Checkbox/Checkbox.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Checkbox/Checkbox.test.js rename to libs_deprecated/juno-ui-components/src/components/Checkbox/Checkbox.test.js diff --git a/libs/juno-ui-components/src/components/Checkbox/index.js b/libs_deprecated/juno-ui-components/src/components/Checkbox/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Checkbox/index.js rename to libs_deprecated/juno-ui-components/src/components/Checkbox/index.js diff --git a/libs/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.component.js b/libs_deprecated/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.component.js similarity index 100% rename from libs/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.component.js rename to libs_deprecated/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.component.js diff --git a/libs/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.stories.js b/libs_deprecated/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.stories.js rename to libs_deprecated/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.stories.js diff --git a/libs/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.test.js b/libs_deprecated/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.test.js similarity index 100% rename from libs/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.test.js rename to libs_deprecated/juno-ui-components/src/components/CheckboxGroup/CheckboxGroup.test.js diff --git a/libs/juno-ui-components/src/components/CheckboxGroup/index.js b/libs_deprecated/juno-ui-components/src/components/CheckboxGroup/index.js similarity index 100% rename from libs/juno-ui-components/src/components/CheckboxGroup/index.js rename to libs_deprecated/juno-ui-components/src/components/CheckboxGroup/index.js diff --git a/libs/juno-ui-components/src/components/CheckboxRow/CheckboxRow.component.js b/libs_deprecated/juno-ui-components/src/components/CheckboxRow/CheckboxRow.component.js similarity index 100% rename from libs/juno-ui-components/src/components/CheckboxRow/CheckboxRow.component.js rename to libs_deprecated/juno-ui-components/src/components/CheckboxRow/CheckboxRow.component.js diff --git a/libs/juno-ui-components/src/components/CheckboxRow/CheckboxRow.stories.js b/libs_deprecated/juno-ui-components/src/components/CheckboxRow/CheckboxRow.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/CheckboxRow/CheckboxRow.stories.js rename to libs_deprecated/juno-ui-components/src/components/CheckboxRow/CheckboxRow.stories.js diff --git a/libs/juno-ui-components/src/components/CheckboxRow/CheckboxRow.test.js b/libs_deprecated/juno-ui-components/src/components/CheckboxRow/CheckboxRow.test.js similarity index 100% rename from libs/juno-ui-components/src/components/CheckboxRow/CheckboxRow.test.js rename to libs_deprecated/juno-ui-components/src/components/CheckboxRow/CheckboxRow.test.js diff --git a/libs/juno-ui-components/src/components/CheckboxRow/index.js b/libs_deprecated/juno-ui-components/src/components/CheckboxRow/index.js similarity index 100% rename from libs/juno-ui-components/src/components/CheckboxRow/index.js rename to libs_deprecated/juno-ui-components/src/components/CheckboxRow/index.js diff --git a/libs/juno-ui-components/src/components/Code/Code.component.js b/libs_deprecated/juno-ui-components/src/components/Code/Code.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Code/Code.component.js rename to libs_deprecated/juno-ui-components/src/components/Code/Code.component.js diff --git a/libs/juno-ui-components/src/components/Code/Code.stories.js b/libs_deprecated/juno-ui-components/src/components/Code/Code.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Code/Code.stories.js rename to libs_deprecated/juno-ui-components/src/components/Code/Code.stories.js diff --git a/libs/juno-ui-components/src/components/Code/Code.test.js b/libs_deprecated/juno-ui-components/src/components/Code/Code.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Code/Code.test.js rename to libs_deprecated/juno-ui-components/src/components/Code/Code.test.js diff --git a/libs/juno-ui-components/src/components/Code/index.js b/libs_deprecated/juno-ui-components/src/components/Code/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Code/index.js rename to libs_deprecated/juno-ui-components/src/components/Code/index.js diff --git a/libs/juno-ui-components/src/components/CodeBlock/CodeBlock.component.js b/libs_deprecated/juno-ui-components/src/components/CodeBlock/CodeBlock.component.js similarity index 100% rename from libs/juno-ui-components/src/components/CodeBlock/CodeBlock.component.js rename to libs_deprecated/juno-ui-components/src/components/CodeBlock/CodeBlock.component.js diff --git a/libs/juno-ui-components/src/components/CodeBlock/CodeBlock.stories.js b/libs_deprecated/juno-ui-components/src/components/CodeBlock/CodeBlock.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/CodeBlock/CodeBlock.stories.js rename to libs_deprecated/juno-ui-components/src/components/CodeBlock/CodeBlock.stories.js diff --git a/libs/juno-ui-components/src/components/CodeBlock/CodeBlock.test.js b/libs_deprecated/juno-ui-components/src/components/CodeBlock/CodeBlock.test.js similarity index 100% rename from libs/juno-ui-components/src/components/CodeBlock/CodeBlock.test.js rename to libs_deprecated/juno-ui-components/src/components/CodeBlock/CodeBlock.test.js diff --git a/libs/juno-ui-components/src/components/CodeBlock/index.js b/libs_deprecated/juno-ui-components/src/components/CodeBlock/index.js similarity index 100% rename from libs/juno-ui-components/src/components/CodeBlock/index.js rename to libs_deprecated/juno-ui-components/src/components/CodeBlock/index.js diff --git a/libs/juno-ui-components/src/components/ComboBox/ComboBox.component.js b/libs_deprecated/juno-ui-components/src/components/ComboBox/ComboBox.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ComboBox/ComboBox.component.js rename to libs_deprecated/juno-ui-components/src/components/ComboBox/ComboBox.component.js diff --git a/libs/juno-ui-components/src/components/ComboBox/ComboBox.stories.js b/libs_deprecated/juno-ui-components/src/components/ComboBox/ComboBox.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ComboBox/ComboBox.stories.js rename to libs_deprecated/juno-ui-components/src/components/ComboBox/ComboBox.stories.js diff --git a/libs/juno-ui-components/src/components/ComboBox/ComboBox.test.js b/libs_deprecated/juno-ui-components/src/components/ComboBox/ComboBox.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ComboBox/ComboBox.test.js rename to libs_deprecated/juno-ui-components/src/components/ComboBox/ComboBox.test.js diff --git a/libs/juno-ui-components/src/components/ComboBox/index.js b/libs_deprecated/juno-ui-components/src/components/ComboBox/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ComboBox/index.js rename to libs_deprecated/juno-ui-components/src/components/ComboBox/index.js diff --git a/libs/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.component.js b/libs_deprecated/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.component.js rename to libs_deprecated/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.component.js diff --git a/libs/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.stories.js b/libs_deprecated/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.stories.js rename to libs_deprecated/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.stories.js diff --git a/libs/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.test.js b/libs_deprecated/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.test.js rename to libs_deprecated/juno-ui-components/src/components/ComboBoxOption/ComboBoxOption.test.js diff --git a/libs/juno-ui-components/src/components/ComboBoxOption/index.js b/libs_deprecated/juno-ui-components/src/components/ComboBoxOption/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ComboBoxOption/index.js rename to libs_deprecated/juno-ui-components/src/components/ComboBoxOption/index.js diff --git a/libs/juno-ui-components/src/components/Container/Container.component.js b/libs_deprecated/juno-ui-components/src/components/Container/Container.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Container/Container.component.js rename to libs_deprecated/juno-ui-components/src/components/Container/Container.component.js diff --git a/libs/juno-ui-components/src/components/Container/Container.stories.js b/libs_deprecated/juno-ui-components/src/components/Container/Container.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Container/Container.stories.js rename to libs_deprecated/juno-ui-components/src/components/Container/Container.stories.js diff --git a/libs/juno-ui-components/src/components/Container/Container.test.js b/libs_deprecated/juno-ui-components/src/components/Container/Container.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Container/Container.test.js rename to libs_deprecated/juno-ui-components/src/components/Container/Container.test.js diff --git a/libs/juno-ui-components/src/components/Container/index.js b/libs_deprecated/juno-ui-components/src/components/Container/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Container/index.js rename to libs_deprecated/juno-ui-components/src/components/Container/index.js diff --git a/libs/juno-ui-components/src/components/ContentArea/ContentArea.component.js b/libs_deprecated/juno-ui-components/src/components/ContentArea/ContentArea.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentArea/ContentArea.component.js rename to libs_deprecated/juno-ui-components/src/components/ContentArea/ContentArea.component.js diff --git a/libs/juno-ui-components/src/components/ContentArea/ContentArea.stories.js b/libs_deprecated/juno-ui-components/src/components/ContentArea/ContentArea.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentArea/ContentArea.stories.js rename to libs_deprecated/juno-ui-components/src/components/ContentArea/ContentArea.stories.js diff --git a/libs/juno-ui-components/src/components/ContentArea/ContentArea.test.js b/libs_deprecated/juno-ui-components/src/components/ContentArea/ContentArea.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentArea/ContentArea.test.js rename to libs_deprecated/juno-ui-components/src/components/ContentArea/ContentArea.test.js diff --git a/libs/juno-ui-components/src/components/ContentArea/index.js b/libs_deprecated/juno-ui-components/src/components/ContentArea/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentArea/index.js rename to libs_deprecated/juno-ui-components/src/components/ContentArea/index.js diff --git a/libs/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.component.js b/libs_deprecated/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.component.js rename to libs_deprecated/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.component.js diff --git a/libs/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.stories.js b/libs_deprecated/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.stories.js rename to libs_deprecated/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.stories.js diff --git a/libs/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.test.js b/libs_deprecated/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.test.js rename to libs_deprecated/juno-ui-components/src/components/ContentAreaToolbar/ContentAreaToolbar.test.js diff --git a/libs/juno-ui-components/src/components/ContentAreaToolbar/index.js b/libs_deprecated/juno-ui-components/src/components/ContentAreaToolbar/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentAreaToolbar/index.js rename to libs_deprecated/juno-ui-components/src/components/ContentAreaToolbar/index.js diff --git a/libs/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.component.js b/libs_deprecated/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.component.js rename to libs_deprecated/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.component.js diff --git a/libs/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.stories.js b/libs_deprecated/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.stories.js rename to libs_deprecated/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.stories.js diff --git a/libs/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.test.js b/libs_deprecated/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.test.js rename to libs_deprecated/juno-ui-components/src/components/ContentAreaWrapper/ContentAreaWrapper.test.js diff --git a/libs/juno-ui-components/src/components/ContentAreaWrapper/index.js b/libs_deprecated/juno-ui-components/src/components/ContentAreaWrapper/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentAreaWrapper/index.js rename to libs_deprecated/juno-ui-components/src/components/ContentAreaWrapper/index.js diff --git a/libs/juno-ui-components/src/components/ContentContainer/ContentContainer.component.js b/libs_deprecated/juno-ui-components/src/components/ContentContainer/ContentContainer.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentContainer/ContentContainer.component.js rename to libs_deprecated/juno-ui-components/src/components/ContentContainer/ContentContainer.component.js diff --git a/libs/juno-ui-components/src/components/ContentContainer/ContentContainer.stories.js b/libs_deprecated/juno-ui-components/src/components/ContentContainer/ContentContainer.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentContainer/ContentContainer.stories.js rename to libs_deprecated/juno-ui-components/src/components/ContentContainer/ContentContainer.stories.js diff --git a/libs/juno-ui-components/src/components/ContentContainer/ContentContainer.test.js b/libs_deprecated/juno-ui-components/src/components/ContentContainer/ContentContainer.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentContainer/ContentContainer.test.js rename to libs_deprecated/juno-ui-components/src/components/ContentContainer/ContentContainer.test.js diff --git a/libs/juno-ui-components/src/components/ContentContainer/index.js b/libs_deprecated/juno-ui-components/src/components/ContentContainer/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentContainer/index.js rename to libs_deprecated/juno-ui-components/src/components/ContentContainer/index.js diff --git a/libs/juno-ui-components/src/components/ContentHeading/ContentHeading.component.js b/libs_deprecated/juno-ui-components/src/components/ContentHeading/ContentHeading.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentHeading/ContentHeading.component.js rename to libs_deprecated/juno-ui-components/src/components/ContentHeading/ContentHeading.component.js diff --git a/libs/juno-ui-components/src/components/ContentHeading/ContentHeading.stories.js b/libs_deprecated/juno-ui-components/src/components/ContentHeading/ContentHeading.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentHeading/ContentHeading.stories.js rename to libs_deprecated/juno-ui-components/src/components/ContentHeading/ContentHeading.stories.js diff --git a/libs/juno-ui-components/src/components/ContentHeading/ContentHeading.test.js b/libs_deprecated/juno-ui-components/src/components/ContentHeading/ContentHeading.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentHeading/ContentHeading.test.js rename to libs_deprecated/juno-ui-components/src/components/ContentHeading/ContentHeading.test.js diff --git a/libs/juno-ui-components/src/components/ContentHeading/index.js b/libs_deprecated/juno-ui-components/src/components/ContentHeading/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ContentHeading/index.js rename to libs_deprecated/juno-ui-components/src/components/ContentHeading/index.js diff --git a/libs/juno-ui-components/src/components/ContextMenu/ContextMenu.component.js b/libs_deprecated/juno-ui-components/src/components/ContextMenu/ContextMenu.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ContextMenu/ContextMenu.component.js rename to libs_deprecated/juno-ui-components/src/components/ContextMenu/ContextMenu.component.js diff --git a/libs/juno-ui-components/src/components/ContextMenu/ContextMenu.stories.js b/libs_deprecated/juno-ui-components/src/components/ContextMenu/ContextMenu.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ContextMenu/ContextMenu.stories.js rename to libs_deprecated/juno-ui-components/src/components/ContextMenu/ContextMenu.stories.js diff --git a/libs/juno-ui-components/src/components/ContextMenu/ContextMenu.test.js b/libs_deprecated/juno-ui-components/src/components/ContextMenu/ContextMenu.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ContextMenu/ContextMenu.test.js rename to libs_deprecated/juno-ui-components/src/components/ContextMenu/ContextMenu.test.js diff --git a/libs/juno-ui-components/src/components/ContextMenu/index.js b/libs_deprecated/juno-ui-components/src/components/ContextMenu/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ContextMenu/index.js rename to libs_deprecated/juno-ui-components/src/components/ContextMenu/index.js diff --git a/libs/juno-ui-components/src/components/DataGrid/DataGrid.component.js b/libs_deprecated/juno-ui-components/src/components/DataGrid/DataGrid.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGrid/DataGrid.component.js rename to libs_deprecated/juno-ui-components/src/components/DataGrid/DataGrid.component.js diff --git a/libs/juno-ui-components/src/components/DataGrid/DataGrid.stories.js b/libs_deprecated/juno-ui-components/src/components/DataGrid/DataGrid.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGrid/DataGrid.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataGrid/DataGrid.stories.js diff --git a/libs/juno-ui-components/src/components/DataGrid/DataGrid.test.js b/libs_deprecated/juno-ui-components/src/components/DataGrid/DataGrid.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGrid/DataGrid.test.js rename to libs_deprecated/juno-ui-components/src/components/DataGrid/DataGrid.test.js diff --git a/libs/juno-ui-components/src/components/DataGrid/index.js b/libs_deprecated/juno-ui-components/src/components/DataGrid/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGrid/index.js rename to libs_deprecated/juno-ui-components/src/components/DataGrid/index.js diff --git a/libs/juno-ui-components/src/components/DataGridCell/DataGridCell.component.js b/libs_deprecated/juno-ui-components/src/components/DataGridCell/DataGridCell.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridCell/DataGridCell.component.js rename to libs_deprecated/juno-ui-components/src/components/DataGridCell/DataGridCell.component.js diff --git a/libs/juno-ui-components/src/components/DataGridCell/DataGridCell.stories.js b/libs_deprecated/juno-ui-components/src/components/DataGridCell/DataGridCell.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridCell/DataGridCell.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataGridCell/DataGridCell.stories.js diff --git a/libs/juno-ui-components/src/components/DataGridCell/DataGridCell.test.js b/libs_deprecated/juno-ui-components/src/components/DataGridCell/DataGridCell.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridCell/DataGridCell.test.js rename to libs_deprecated/juno-ui-components/src/components/DataGridCell/DataGridCell.test.js diff --git a/libs/juno-ui-components/src/components/DataGridCell/index.js b/libs_deprecated/juno-ui-components/src/components/DataGridCell/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridCell/index.js rename to libs_deprecated/juno-ui-components/src/components/DataGridCell/index.js diff --git a/libs/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.component.js b/libs_deprecated/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.component.js rename to libs_deprecated/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.component.js diff --git a/libs/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.stories.js b/libs_deprecated/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.stories.js diff --git a/libs/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.test.js b/libs_deprecated/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.test.js rename to libs_deprecated/juno-ui-components/src/components/DataGridCheckboxCell/DataGridCheckboxCell.test.js diff --git a/libs/juno-ui-components/src/components/DataGridCheckboxCell/index.js b/libs_deprecated/juno-ui-components/src/components/DataGridCheckboxCell/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridCheckboxCell/index.js rename to libs_deprecated/juno-ui-components/src/components/DataGridCheckboxCell/index.js diff --git a/libs/juno-ui-components/src/components/DataGridFoot/DataGridFoot.component.js b/libs_deprecated/juno-ui-components/src/components/DataGridFoot/DataGridFoot.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridFoot/DataGridFoot.component.js rename to libs_deprecated/juno-ui-components/src/components/DataGridFoot/DataGridFoot.component.js diff --git a/libs/juno-ui-components/src/components/DataGridFoot/DataGridFoot.stories.js b/libs_deprecated/juno-ui-components/src/components/DataGridFoot/DataGridFoot.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridFoot/DataGridFoot.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataGridFoot/DataGridFoot.stories.js diff --git a/libs/juno-ui-components/src/components/DataGridFoot/DataGridFoot.test.js b/libs_deprecated/juno-ui-components/src/components/DataGridFoot/DataGridFoot.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridFoot/DataGridFoot.test.js rename to libs_deprecated/juno-ui-components/src/components/DataGridFoot/DataGridFoot.test.js diff --git a/libs/juno-ui-components/src/components/DataGridFoot/index.js b/libs_deprecated/juno-ui-components/src/components/DataGridFoot/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridFoot/index.js rename to libs_deprecated/juno-ui-components/src/components/DataGridFoot/index.js diff --git a/libs/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.component.js b/libs_deprecated/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.component.js rename to libs_deprecated/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.component.js diff --git a/libs/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.stories.js b/libs_deprecated/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.stories.js diff --git a/libs/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.test.js b/libs_deprecated/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.test.js rename to libs_deprecated/juno-ui-components/src/components/DataGridHeadCell/DataGridHeadCell.test.js diff --git a/libs/juno-ui-components/src/components/DataGridHeadCell/index.js b/libs_deprecated/juno-ui-components/src/components/DataGridHeadCell/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridHeadCell/index.js rename to libs_deprecated/juno-ui-components/src/components/DataGridHeadCell/index.js diff --git a/libs/juno-ui-components/src/components/DataGridRow/DataGridRow.component.js b/libs_deprecated/juno-ui-components/src/components/DataGridRow/DataGridRow.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridRow/DataGridRow.component.js rename to libs_deprecated/juno-ui-components/src/components/DataGridRow/DataGridRow.component.js diff --git a/libs/juno-ui-components/src/components/DataGridRow/DataGridRow.stories.js b/libs_deprecated/juno-ui-components/src/components/DataGridRow/DataGridRow.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridRow/DataGridRow.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataGridRow/DataGridRow.stories.js diff --git a/libs/juno-ui-components/src/components/DataGridRow/DataGridRow.test.js b/libs_deprecated/juno-ui-components/src/components/DataGridRow/DataGridRow.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridRow/DataGridRow.test.js rename to libs_deprecated/juno-ui-components/src/components/DataGridRow/DataGridRow.test.js diff --git a/libs/juno-ui-components/src/components/DataGridRow/index.js b/libs_deprecated/juno-ui-components/src/components/DataGridRow/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridRow/index.js rename to libs_deprecated/juno-ui-components/src/components/DataGridRow/index.js diff --git a/libs/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.component.js b/libs_deprecated/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.component.js rename to libs_deprecated/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.component.js diff --git a/libs/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.stories.js b/libs_deprecated/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.stories.js diff --git a/libs/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.test.js b/libs_deprecated/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.test.js rename to libs_deprecated/juno-ui-components/src/components/DataGridToolbar/DataGridToolbar.test.js diff --git a/libs/juno-ui-components/src/components/DataGridToolbar/index.js b/libs_deprecated/juno-ui-components/src/components/DataGridToolbar/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataGridToolbar/index.js rename to libs_deprecated/juno-ui-components/src/components/DataGridToolbar/index.js diff --git a/libs/juno-ui-components/src/components/DataList/DataList.component.js b/libs_deprecated/juno-ui-components/src/components/DataList/DataList.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataList/DataList.component.js rename to libs_deprecated/juno-ui-components/src/components/DataList/DataList.component.js diff --git a/libs/juno-ui-components/src/components/DataList/DataList.stories.js b/libs_deprecated/juno-ui-components/src/components/DataList/DataList.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataList/DataList.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataList/DataList.stories.js diff --git a/libs/juno-ui-components/src/components/DataList/DataList.test.js b/libs_deprecated/juno-ui-components/src/components/DataList/DataList.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataList/DataList.test.js rename to libs_deprecated/juno-ui-components/src/components/DataList/DataList.test.js diff --git a/libs/juno-ui-components/src/components/DataList/index.js b/libs_deprecated/juno-ui-components/src/components/DataList/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataList/index.js rename to libs_deprecated/juno-ui-components/src/components/DataList/index.js diff --git a/libs/juno-ui-components/src/components/DataListCell/DataListCell.component.js b/libs_deprecated/juno-ui-components/src/components/DataListCell/DataListCell.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListCell/DataListCell.component.js rename to libs_deprecated/juno-ui-components/src/components/DataListCell/DataListCell.component.js diff --git a/libs/juno-ui-components/src/components/DataListCell/DataListCell.stories.js b/libs_deprecated/juno-ui-components/src/components/DataListCell/DataListCell.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListCell/DataListCell.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataListCell/DataListCell.stories.js diff --git a/libs/juno-ui-components/src/components/DataListCell/DataListCell.test.js b/libs_deprecated/juno-ui-components/src/components/DataListCell/DataListCell.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListCell/DataListCell.test.js rename to libs_deprecated/juno-ui-components/src/components/DataListCell/DataListCell.test.js diff --git a/libs/juno-ui-components/src/components/DataListCell/index.js b/libs_deprecated/juno-ui-components/src/components/DataListCell/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListCell/index.js rename to libs_deprecated/juno-ui-components/src/components/DataListCell/index.js diff --git a/libs/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.component.js b/libs_deprecated/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.component.js rename to libs_deprecated/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.component.js diff --git a/libs/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.stories.js b/libs_deprecated/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.stories.js diff --git a/libs/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.test.js b/libs_deprecated/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.test.js rename to libs_deprecated/juno-ui-components/src/components/DataListCheckboxCell/DataListCheckboxCell.test.js diff --git a/libs/juno-ui-components/src/components/DataListCheckboxCell/index.js b/libs_deprecated/juno-ui-components/src/components/DataListCheckboxCell/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListCheckboxCell/index.js rename to libs_deprecated/juno-ui-components/src/components/DataListCheckboxCell/index.js diff --git a/libs/juno-ui-components/src/components/DataListRow/DataListRow.component.js b/libs_deprecated/juno-ui-components/src/components/DataListRow/DataListRow.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListRow/DataListRow.component.js rename to libs_deprecated/juno-ui-components/src/components/DataListRow/DataListRow.component.js diff --git a/libs/juno-ui-components/src/components/DataListRow/DataListRow.stories.js b/libs_deprecated/juno-ui-components/src/components/DataListRow/DataListRow.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListRow/DataListRow.stories.js rename to libs_deprecated/juno-ui-components/src/components/DataListRow/DataListRow.stories.js diff --git a/libs/juno-ui-components/src/components/DataListRow/DataListRow.test.js b/libs_deprecated/juno-ui-components/src/components/DataListRow/DataListRow.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListRow/DataListRow.test.js rename to libs_deprecated/juno-ui-components/src/components/DataListRow/DataListRow.test.js diff --git a/libs/juno-ui-components/src/components/DataListRow/index.js b/libs_deprecated/juno-ui-components/src/components/DataListRow/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DataListRow/index.js rename to libs_deprecated/juno-ui-components/src/components/DataListRow/index.js diff --git a/libs/juno-ui-components/src/components/DateTimePicker/DateTimePicker.component.js b/libs_deprecated/juno-ui-components/src/components/DateTimePicker/DateTimePicker.component.js similarity index 100% rename from libs/juno-ui-components/src/components/DateTimePicker/DateTimePicker.component.js rename to libs_deprecated/juno-ui-components/src/components/DateTimePicker/DateTimePicker.component.js diff --git a/libs/juno-ui-components/src/components/DateTimePicker/DateTimePicker.stories.js b/libs_deprecated/juno-ui-components/src/components/DateTimePicker/DateTimePicker.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/DateTimePicker/DateTimePicker.stories.js rename to libs_deprecated/juno-ui-components/src/components/DateTimePicker/DateTimePicker.stories.js diff --git a/libs/juno-ui-components/src/components/DateTimePicker/DateTimePicker.test.js b/libs_deprecated/juno-ui-components/src/components/DateTimePicker/DateTimePicker.test.js similarity index 100% rename from libs/juno-ui-components/src/components/DateTimePicker/DateTimePicker.test.js rename to libs_deprecated/juno-ui-components/src/components/DateTimePicker/DateTimePicker.test.js diff --git a/libs/juno-ui-components/src/components/DateTimePicker/datetimepicker.scss b/libs_deprecated/juno-ui-components/src/components/DateTimePicker/datetimepicker.scss similarity index 100% rename from libs/juno-ui-components/src/components/DateTimePicker/datetimepicker.scss rename to libs_deprecated/juno-ui-components/src/components/DateTimePicker/datetimepicker.scss diff --git a/libs/juno-ui-components/src/components/DateTimePicker/index.js b/libs_deprecated/juno-ui-components/src/components/DateTimePicker/index.js similarity index 100% rename from libs/juno-ui-components/src/components/DateTimePicker/index.js rename to libs_deprecated/juno-ui-components/src/components/DateTimePicker/index.js diff --git a/libs/juno-ui-components/src/components/FilterInput/FilterInput.component.js b/libs_deprecated/juno-ui-components/src/components/FilterInput/FilterInput.component.js similarity index 100% rename from libs/juno-ui-components/src/components/FilterInput/FilterInput.component.js rename to libs_deprecated/juno-ui-components/src/components/FilterInput/FilterInput.component.js diff --git a/libs/juno-ui-components/src/components/FilterInput/FilterInput.stories.js b/libs_deprecated/juno-ui-components/src/components/FilterInput/FilterInput.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/FilterInput/FilterInput.stories.js rename to libs_deprecated/juno-ui-components/src/components/FilterInput/FilterInput.stories.js diff --git a/libs/juno-ui-components/src/components/FilterInput/FilterInput.test.js b/libs_deprecated/juno-ui-components/src/components/FilterInput/FilterInput.test.js similarity index 100% rename from libs/juno-ui-components/src/components/FilterInput/FilterInput.test.js rename to libs_deprecated/juno-ui-components/src/components/FilterInput/FilterInput.test.js diff --git a/libs/juno-ui-components/src/components/FilterInput/index.js b/libs_deprecated/juno-ui-components/src/components/FilterInput/index.js similarity index 100% rename from libs/juno-ui-components/src/components/FilterInput/index.js rename to libs_deprecated/juno-ui-components/src/components/FilterInput/index.js diff --git a/libs/juno-ui-components/src/components/FilterPill/FilterPill.component.js b/libs_deprecated/juno-ui-components/src/components/FilterPill/FilterPill.component.js similarity index 100% rename from libs/juno-ui-components/src/components/FilterPill/FilterPill.component.js rename to libs_deprecated/juno-ui-components/src/components/FilterPill/FilterPill.component.js diff --git a/libs/juno-ui-components/src/components/FilterPill/FilterPill.stories.js b/libs_deprecated/juno-ui-components/src/components/FilterPill/FilterPill.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/FilterPill/FilterPill.stories.js rename to libs_deprecated/juno-ui-components/src/components/FilterPill/FilterPill.stories.js diff --git a/libs/juno-ui-components/src/components/FilterPill/FilterPill.test.js b/libs_deprecated/juno-ui-components/src/components/FilterPill/FilterPill.test.js similarity index 100% rename from libs/juno-ui-components/src/components/FilterPill/FilterPill.test.js rename to libs_deprecated/juno-ui-components/src/components/FilterPill/FilterPill.test.js diff --git a/libs/juno-ui-components/src/components/FilterPill/index.js b/libs_deprecated/juno-ui-components/src/components/FilterPill/index.js similarity index 100% rename from libs/juno-ui-components/src/components/FilterPill/index.js rename to libs_deprecated/juno-ui-components/src/components/FilterPill/index.js diff --git a/libs/juno-ui-components/src/components/Filters/Filters.component.js b/libs_deprecated/juno-ui-components/src/components/Filters/Filters.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Filters/Filters.component.js rename to libs_deprecated/juno-ui-components/src/components/Filters/Filters.component.js diff --git a/libs/juno-ui-components/src/components/Filters/Filters.stories.js b/libs_deprecated/juno-ui-components/src/components/Filters/Filters.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Filters/Filters.stories.js rename to libs_deprecated/juno-ui-components/src/components/Filters/Filters.stories.js diff --git a/libs/juno-ui-components/src/components/Filters/Filters.test.js b/libs_deprecated/juno-ui-components/src/components/Filters/Filters.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Filters/Filters.test.js rename to libs_deprecated/juno-ui-components/src/components/Filters/Filters.test.js diff --git a/libs/juno-ui-components/src/components/Filters/index.js b/libs_deprecated/juno-ui-components/src/components/Filters/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Filters/index.js rename to libs_deprecated/juno-ui-components/src/components/Filters/index.js diff --git a/libs/juno-ui-components/src/components/Form/Form.component.js b/libs_deprecated/juno-ui-components/src/components/Form/Form.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Form/Form.component.js rename to libs_deprecated/juno-ui-components/src/components/Form/Form.component.js diff --git a/libs/juno-ui-components/src/components/Form/Form.stories.js b/libs_deprecated/juno-ui-components/src/components/Form/Form.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Form/Form.stories.js rename to libs_deprecated/juno-ui-components/src/components/Form/Form.stories.js diff --git a/libs/juno-ui-components/src/components/Form/Form.test.js b/libs_deprecated/juno-ui-components/src/components/Form/Form.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Form/Form.test.js rename to libs_deprecated/juno-ui-components/src/components/Form/Form.test.js diff --git a/libs/juno-ui-components/src/components/Form/index.js b/libs_deprecated/juno-ui-components/src/components/Form/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Form/index.js rename to libs_deprecated/juno-ui-components/src/components/Form/index.js diff --git a/libs/juno-ui-components/src/components/FormHint/FormHint.component.js b/libs_deprecated/juno-ui-components/src/components/FormHint/FormHint.component.js similarity index 100% rename from libs/juno-ui-components/src/components/FormHint/FormHint.component.js rename to libs_deprecated/juno-ui-components/src/components/FormHint/FormHint.component.js diff --git a/libs/juno-ui-components/src/components/FormHint/FormHint.stories.js b/libs_deprecated/juno-ui-components/src/components/FormHint/FormHint.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/FormHint/FormHint.stories.js rename to libs_deprecated/juno-ui-components/src/components/FormHint/FormHint.stories.js diff --git a/libs/juno-ui-components/src/components/FormHint/FormHint.test.js b/libs_deprecated/juno-ui-components/src/components/FormHint/FormHint.test.js similarity index 100% rename from libs/juno-ui-components/src/components/FormHint/FormHint.test.js rename to libs_deprecated/juno-ui-components/src/components/FormHint/FormHint.test.js diff --git a/libs/juno-ui-components/src/components/FormHint/index.js b/libs_deprecated/juno-ui-components/src/components/FormHint/index.js similarity index 100% rename from libs/juno-ui-components/src/components/FormHint/index.js rename to libs_deprecated/juno-ui-components/src/components/FormHint/index.js diff --git a/libs/juno-ui-components/src/components/FormRow/FormRow.component.js b/libs_deprecated/juno-ui-components/src/components/FormRow/FormRow.component.js similarity index 100% rename from libs/juno-ui-components/src/components/FormRow/FormRow.component.js rename to libs_deprecated/juno-ui-components/src/components/FormRow/FormRow.component.js diff --git a/libs/juno-ui-components/src/components/FormRow/FormRow.stories.js b/libs_deprecated/juno-ui-components/src/components/FormRow/FormRow.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/FormRow/FormRow.stories.js rename to libs_deprecated/juno-ui-components/src/components/FormRow/FormRow.stories.js diff --git a/libs/juno-ui-components/src/components/FormRow/FormRow.test.js b/libs_deprecated/juno-ui-components/src/components/FormRow/FormRow.test.js similarity index 100% rename from libs/juno-ui-components/src/components/FormRow/FormRow.test.js rename to libs_deprecated/juno-ui-components/src/components/FormRow/FormRow.test.js diff --git a/libs/juno-ui-components/src/components/FormRow/index.js b/libs_deprecated/juno-ui-components/src/components/FormRow/index.js similarity index 100% rename from libs/juno-ui-components/src/components/FormRow/index.js rename to libs_deprecated/juno-ui-components/src/components/FormRow/index.js diff --git a/libs/juno-ui-components/src/components/FormSection/FormSection.component.js b/libs_deprecated/juno-ui-components/src/components/FormSection/FormSection.component.js similarity index 100% rename from libs/juno-ui-components/src/components/FormSection/FormSection.component.js rename to libs_deprecated/juno-ui-components/src/components/FormSection/FormSection.component.js diff --git a/libs/juno-ui-components/src/components/FormSection/FormSection.stories.js b/libs_deprecated/juno-ui-components/src/components/FormSection/FormSection.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/FormSection/FormSection.stories.js rename to libs_deprecated/juno-ui-components/src/components/FormSection/FormSection.stories.js diff --git a/libs/juno-ui-components/src/components/FormSection/FormSection.test.js b/libs_deprecated/juno-ui-components/src/components/FormSection/FormSection.test.js similarity index 100% rename from libs/juno-ui-components/src/components/FormSection/FormSection.test.js rename to libs_deprecated/juno-ui-components/src/components/FormSection/FormSection.test.js diff --git a/libs/juno-ui-components/src/components/FormSection/index.js b/libs_deprecated/juno-ui-components/src/components/FormSection/index.js similarity index 100% rename from libs/juno-ui-components/src/components/FormSection/index.js rename to libs_deprecated/juno-ui-components/src/components/FormSection/index.js diff --git a/libs/juno-ui-components/src/components/Grid/Grid.component.js b/libs_deprecated/juno-ui-components/src/components/Grid/Grid.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Grid/Grid.component.js rename to libs_deprecated/juno-ui-components/src/components/Grid/Grid.component.js diff --git a/libs/juno-ui-components/src/components/Grid/Grid.stories.js b/libs_deprecated/juno-ui-components/src/components/Grid/Grid.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Grid/Grid.stories.js rename to libs_deprecated/juno-ui-components/src/components/Grid/Grid.stories.js diff --git a/libs/juno-ui-components/src/components/Grid/Grid.test.js b/libs_deprecated/juno-ui-components/src/components/Grid/Grid.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Grid/Grid.test.js rename to libs_deprecated/juno-ui-components/src/components/Grid/Grid.test.js diff --git a/libs/juno-ui-components/src/components/Grid/index.js b/libs_deprecated/juno-ui-components/src/components/Grid/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Grid/index.js rename to libs_deprecated/juno-ui-components/src/components/Grid/index.js diff --git a/libs/juno-ui-components/src/components/GridColumn/GridColumn.component.js b/libs_deprecated/juno-ui-components/src/components/GridColumn/GridColumn.component.js similarity index 100% rename from libs/juno-ui-components/src/components/GridColumn/GridColumn.component.js rename to libs_deprecated/juno-ui-components/src/components/GridColumn/GridColumn.component.js diff --git a/libs/juno-ui-components/src/components/GridColumn/GridColumn.stories.js b/libs_deprecated/juno-ui-components/src/components/GridColumn/GridColumn.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/GridColumn/GridColumn.stories.js rename to libs_deprecated/juno-ui-components/src/components/GridColumn/GridColumn.stories.js diff --git a/libs/juno-ui-components/src/components/GridColumn/GridColumn.test.js b/libs_deprecated/juno-ui-components/src/components/GridColumn/GridColumn.test.js similarity index 100% rename from libs/juno-ui-components/src/components/GridColumn/GridColumn.test.js rename to libs_deprecated/juno-ui-components/src/components/GridColumn/GridColumn.test.js diff --git a/libs/juno-ui-components/src/components/GridColumn/index.js b/libs_deprecated/juno-ui-components/src/components/GridColumn/index.js similarity index 100% rename from libs/juno-ui-components/src/components/GridColumn/index.js rename to libs_deprecated/juno-ui-components/src/components/GridColumn/index.js diff --git a/libs/juno-ui-components/src/components/GridRow/GridRow.component.js b/libs_deprecated/juno-ui-components/src/components/GridRow/GridRow.component.js similarity index 100% rename from libs/juno-ui-components/src/components/GridRow/GridRow.component.js rename to libs_deprecated/juno-ui-components/src/components/GridRow/GridRow.component.js diff --git a/libs/juno-ui-components/src/components/GridRow/GridRow.stories.js b/libs_deprecated/juno-ui-components/src/components/GridRow/GridRow.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/GridRow/GridRow.stories.js rename to libs_deprecated/juno-ui-components/src/components/GridRow/GridRow.stories.js diff --git a/libs/juno-ui-components/src/components/GridRow/GridRow.test.js b/libs_deprecated/juno-ui-components/src/components/GridRow/GridRow.test.js similarity index 100% rename from libs/juno-ui-components/src/components/GridRow/GridRow.test.js rename to libs_deprecated/juno-ui-components/src/components/GridRow/GridRow.test.js diff --git a/libs/juno-ui-components/src/components/GridRow/index.js b/libs_deprecated/juno-ui-components/src/components/GridRow/index.js similarity index 100% rename from libs/juno-ui-components/src/components/GridRow/index.js rename to libs_deprecated/juno-ui-components/src/components/GridRow/index.js diff --git a/libs/juno-ui-components/src/components/Icon/Icon.component.js b/libs_deprecated/juno-ui-components/src/components/Icon/Icon.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Icon/Icon.component.js rename to libs_deprecated/juno-ui-components/src/components/Icon/Icon.component.js diff --git a/libs/juno-ui-components/src/components/Icon/Icon.stories.js b/libs_deprecated/juno-ui-components/src/components/Icon/Icon.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Icon/Icon.stories.js rename to libs_deprecated/juno-ui-components/src/components/Icon/Icon.stories.js diff --git a/libs/juno-ui-components/src/components/Icon/Icon.test.js b/libs_deprecated/juno-ui-components/src/components/Icon/Icon.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Icon/Icon.test.js rename to libs_deprecated/juno-ui-components/src/components/Icon/Icon.test.js diff --git a/libs/juno-ui-components/src/components/Icon/icons/home_sharp.svg b/libs_deprecated/juno-ui-components/src/components/Icon/icons/home_sharp.svg similarity index 100% rename from libs/juno-ui-components/src/components/Icon/icons/home_sharp.svg rename to libs_deprecated/juno-ui-components/src/components/Icon/icons/home_sharp.svg diff --git a/libs/juno-ui-components/src/components/Icon/icons/juno-danger.svg b/libs_deprecated/juno-ui-components/src/components/Icon/icons/juno-danger.svg similarity index 100% rename from libs/juno-ui-components/src/components/Icon/icons/juno-danger.svg rename to libs_deprecated/juno-ui-components/src/components/Icon/icons/juno-danger.svg diff --git a/libs/juno-ui-components/src/components/Icon/icons/juno_severity_critical.svg b/libs_deprecated/juno-ui-components/src/components/Icon/icons/juno_severity_critical.svg similarity index 100% rename from libs/juno-ui-components/src/components/Icon/icons/juno_severity_critical.svg rename to libs_deprecated/juno-ui-components/src/components/Icon/icons/juno_severity_critical.svg diff --git a/libs/juno-ui-components/src/components/Icon/icons/juno_severity_high.svg b/libs_deprecated/juno-ui-components/src/components/Icon/icons/juno_severity_high.svg similarity index 100% rename from libs/juno-ui-components/src/components/Icon/icons/juno_severity_high.svg rename to libs_deprecated/juno-ui-components/src/components/Icon/icons/juno_severity_high.svg diff --git a/libs/juno-ui-components/src/components/Icon/icons/juno_severity_low.svg b/libs_deprecated/juno-ui-components/src/components/Icon/icons/juno_severity_low.svg similarity index 100% rename from libs/juno-ui-components/src/components/Icon/icons/juno_severity_low.svg rename to libs_deprecated/juno-ui-components/src/components/Icon/icons/juno_severity_low.svg diff --git a/libs/juno-ui-components/src/components/Icon/icons/juno_severity_medium.svg b/libs_deprecated/juno-ui-components/src/components/Icon/icons/juno_severity_medium.svg similarity index 100% rename from libs/juno-ui-components/src/components/Icon/icons/juno_severity_medium.svg rename to libs_deprecated/juno-ui-components/src/components/Icon/icons/juno_severity_medium.svg diff --git a/libs/juno-ui-components/src/components/Icon/icons/place.svg b/libs_deprecated/juno-ui-components/src/components/Icon/icons/place.svg similarity index 100% rename from libs/juno-ui-components/src/components/Icon/icons/place.svg rename to libs_deprecated/juno-ui-components/src/components/Icon/icons/place.svg diff --git a/libs/juno-ui-components/src/components/Icon/index.js b/libs_deprecated/juno-ui-components/src/components/Icon/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Icon/index.js rename to libs_deprecated/juno-ui-components/src/components/Icon/index.js diff --git a/libs/juno-ui-components/src/components/InputGroup/InputGroup.component.js b/libs_deprecated/juno-ui-components/src/components/InputGroup/InputGroup.component.js similarity index 100% rename from libs/juno-ui-components/src/components/InputGroup/InputGroup.component.js rename to libs_deprecated/juno-ui-components/src/components/InputGroup/InputGroup.component.js diff --git a/libs/juno-ui-components/src/components/InputGroup/InputGroup.stories.js b/libs_deprecated/juno-ui-components/src/components/InputGroup/InputGroup.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/InputGroup/InputGroup.stories.js rename to libs_deprecated/juno-ui-components/src/components/InputGroup/InputGroup.stories.js diff --git a/libs/juno-ui-components/src/components/InputGroup/InputGroup.test.js b/libs_deprecated/juno-ui-components/src/components/InputGroup/InputGroup.test.js similarity index 100% rename from libs/juno-ui-components/src/components/InputGroup/InputGroup.test.js rename to libs_deprecated/juno-ui-components/src/components/InputGroup/InputGroup.test.js diff --git a/libs/juno-ui-components/src/components/InputGroup/index.js b/libs_deprecated/juno-ui-components/src/components/InputGroup/index.js similarity index 100% rename from libs/juno-ui-components/src/components/InputGroup/index.js rename to libs_deprecated/juno-ui-components/src/components/InputGroup/index.js diff --git a/libs/juno-ui-components/src/components/InputGroup/input-group.scss b/libs_deprecated/juno-ui-components/src/components/InputGroup/input-group.scss similarity index 100% rename from libs/juno-ui-components/src/components/InputGroup/input-group.scss rename to libs_deprecated/juno-ui-components/src/components/InputGroup/input-group.scss diff --git a/libs/juno-ui-components/src/components/IntroBox/IntroBox.component.js b/libs_deprecated/juno-ui-components/src/components/IntroBox/IntroBox.component.js similarity index 100% rename from libs/juno-ui-components/src/components/IntroBox/IntroBox.component.js rename to libs_deprecated/juno-ui-components/src/components/IntroBox/IntroBox.component.js diff --git a/libs/juno-ui-components/src/components/IntroBox/IntroBox.stories.js b/libs_deprecated/juno-ui-components/src/components/IntroBox/IntroBox.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/IntroBox/IntroBox.stories.js rename to libs_deprecated/juno-ui-components/src/components/IntroBox/IntroBox.stories.js diff --git a/libs/juno-ui-components/src/components/IntroBox/IntroBox.test.js b/libs_deprecated/juno-ui-components/src/components/IntroBox/IntroBox.test.js similarity index 100% rename from libs/juno-ui-components/src/components/IntroBox/IntroBox.test.js rename to libs_deprecated/juno-ui-components/src/components/IntroBox/IntroBox.test.js diff --git a/libs/juno-ui-components/src/components/IntroBox/index.js b/libs_deprecated/juno-ui-components/src/components/IntroBox/index.js similarity index 100% rename from libs/juno-ui-components/src/components/IntroBox/index.js rename to libs_deprecated/juno-ui-components/src/components/IntroBox/index.js diff --git a/libs/juno-ui-components/src/components/JsonViewer/JsonViewer.component.js b/libs_deprecated/juno-ui-components/src/components/JsonViewer/JsonViewer.component.js similarity index 100% rename from libs/juno-ui-components/src/components/JsonViewer/JsonViewer.component.js rename to libs_deprecated/juno-ui-components/src/components/JsonViewer/JsonViewer.component.js diff --git a/libs/juno-ui-components/src/components/JsonViewer/JsonViewer.stories.js b/libs_deprecated/juno-ui-components/src/components/JsonViewer/JsonViewer.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/JsonViewer/JsonViewer.stories.js rename to libs_deprecated/juno-ui-components/src/components/JsonViewer/JsonViewer.stories.js diff --git a/libs/juno-ui-components/src/components/JsonViewer/JsonViewer.test.js b/libs_deprecated/juno-ui-components/src/components/JsonViewer/JsonViewer.test.js similarity index 100% rename from libs/juno-ui-components/src/components/JsonViewer/JsonViewer.test.js rename to libs_deprecated/juno-ui-components/src/components/JsonViewer/JsonViewer.test.js diff --git a/libs/juno-ui-components/src/components/JsonViewer/index.js b/libs_deprecated/juno-ui-components/src/components/JsonViewer/index.js similarity index 100% rename from libs/juno-ui-components/src/components/JsonViewer/index.js rename to libs_deprecated/juno-ui-components/src/components/JsonViewer/index.js diff --git a/libs/juno-ui-components/src/components/JsonViewer/themes.js b/libs_deprecated/juno-ui-components/src/components/JsonViewer/themes.js similarity index 100% rename from libs/juno-ui-components/src/components/JsonViewer/themes.js rename to libs_deprecated/juno-ui-components/src/components/JsonViewer/themes.js diff --git a/libs/juno-ui-components/src/components/Label/Label.component.js b/libs_deprecated/juno-ui-components/src/components/Label/Label.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Label/Label.component.js rename to libs_deprecated/juno-ui-components/src/components/Label/Label.component.js diff --git a/libs/juno-ui-components/src/components/Label/Label.stories.js b/libs_deprecated/juno-ui-components/src/components/Label/Label.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Label/Label.stories.js rename to libs_deprecated/juno-ui-components/src/components/Label/Label.stories.js diff --git a/libs/juno-ui-components/src/components/Label/Label.test.js b/libs_deprecated/juno-ui-components/src/components/Label/Label.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Label/Label.test.js rename to libs_deprecated/juno-ui-components/src/components/Label/Label.test.js diff --git a/libs/juno-ui-components/src/components/Label/index.js b/libs_deprecated/juno-ui-components/src/components/Label/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Label/index.js rename to libs_deprecated/juno-ui-components/src/components/Label/index.js diff --git a/libs/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.component.js b/libs_deprecated/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.component.js similarity index 100% rename from libs/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.component.js rename to libs_deprecated/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.component.js diff --git a/libs/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.stories.js b/libs_deprecated/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.stories.js rename to libs_deprecated/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.stories.js diff --git a/libs/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.test.js b/libs_deprecated/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.test.js similarity index 100% rename from libs/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.test.js rename to libs_deprecated/juno-ui-components/src/components/LoadingIndicator/LoadingIndicator.test.js diff --git a/libs/juno-ui-components/src/components/LoadingIndicator/index.js b/libs_deprecated/juno-ui-components/src/components/LoadingIndicator/index.js similarity index 100% rename from libs/juno-ui-components/src/components/LoadingIndicator/index.js rename to libs_deprecated/juno-ui-components/src/components/LoadingIndicator/index.js diff --git a/libs/juno-ui-components/src/components/LoadingIndicator/loading-indicator.svg b/libs_deprecated/juno-ui-components/src/components/LoadingIndicator/loading-indicator.svg similarity index 100% rename from libs/juno-ui-components/src/components/LoadingIndicator/loading-indicator.svg rename to libs_deprecated/juno-ui-components/src/components/LoadingIndicator/loading-indicator.svg diff --git a/libs/juno-ui-components/src/components/MainContainer/MainContainer.component.js b/libs_deprecated/juno-ui-components/src/components/MainContainer/MainContainer.component.js similarity index 100% rename from libs/juno-ui-components/src/components/MainContainer/MainContainer.component.js rename to libs_deprecated/juno-ui-components/src/components/MainContainer/MainContainer.component.js diff --git a/libs/juno-ui-components/src/components/MainContainer/MainContainer.stories.js b/libs_deprecated/juno-ui-components/src/components/MainContainer/MainContainer.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/MainContainer/MainContainer.stories.js rename to libs_deprecated/juno-ui-components/src/components/MainContainer/MainContainer.stories.js diff --git a/libs/juno-ui-components/src/components/MainContainer/MainContainer.test.js b/libs_deprecated/juno-ui-components/src/components/MainContainer/MainContainer.test.js similarity index 100% rename from libs/juno-ui-components/src/components/MainContainer/MainContainer.test.js rename to libs_deprecated/juno-ui-components/src/components/MainContainer/MainContainer.test.js diff --git a/libs/juno-ui-components/src/components/MainContainer/index.js b/libs_deprecated/juno-ui-components/src/components/MainContainer/index.js similarity index 100% rename from libs/juno-ui-components/src/components/MainContainer/index.js rename to libs_deprecated/juno-ui-components/src/components/MainContainer/index.js diff --git a/libs/juno-ui-components/src/components/MainContainerInner/MainContainerInner.component.js b/libs_deprecated/juno-ui-components/src/components/MainContainerInner/MainContainerInner.component.js similarity index 100% rename from libs/juno-ui-components/src/components/MainContainerInner/MainContainerInner.component.js rename to libs_deprecated/juno-ui-components/src/components/MainContainerInner/MainContainerInner.component.js diff --git a/libs/juno-ui-components/src/components/MainContainerInner/MainContainerInner.test.js b/libs_deprecated/juno-ui-components/src/components/MainContainerInner/MainContainerInner.test.js similarity index 100% rename from libs/juno-ui-components/src/components/MainContainerInner/MainContainerInner.test.js rename to libs_deprecated/juno-ui-components/src/components/MainContainerInner/MainContainerInner.test.js diff --git a/libs/juno-ui-components/src/components/MainContainerInner/index.js b/libs_deprecated/juno-ui-components/src/components/MainContainerInner/index.js similarity index 100% rename from libs/juno-ui-components/src/components/MainContainerInner/index.js rename to libs_deprecated/juno-ui-components/src/components/MainContainerInner/index.js diff --git a/libs/juno-ui-components/src/components/MainTabs/MainTabs.component.js b/libs_deprecated/juno-ui-components/src/components/MainTabs/MainTabs.component.js similarity index 100% rename from libs/juno-ui-components/src/components/MainTabs/MainTabs.component.js rename to libs_deprecated/juno-ui-components/src/components/MainTabs/MainTabs.component.js diff --git a/libs/juno-ui-components/src/components/MainTabs/MainTabs.stories.js b/libs_deprecated/juno-ui-components/src/components/MainTabs/MainTabs.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/MainTabs/MainTabs.stories.js rename to libs_deprecated/juno-ui-components/src/components/MainTabs/MainTabs.stories.js diff --git a/libs/juno-ui-components/src/components/MainTabs/MainTabs.test.js b/libs_deprecated/juno-ui-components/src/components/MainTabs/MainTabs.test.js similarity index 100% rename from libs/juno-ui-components/src/components/MainTabs/MainTabs.test.js rename to libs_deprecated/juno-ui-components/src/components/MainTabs/MainTabs.test.js diff --git a/libs/juno-ui-components/src/components/MainTabs/index.js b/libs_deprecated/juno-ui-components/src/components/MainTabs/index.js similarity index 100% rename from libs/juno-ui-components/src/components/MainTabs/index.js rename to libs_deprecated/juno-ui-components/src/components/MainTabs/index.js diff --git a/libs/juno-ui-components/src/components/Menu/Menu.component.js b/libs_deprecated/juno-ui-components/src/components/Menu/Menu.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Menu/Menu.component.js rename to libs_deprecated/juno-ui-components/src/components/Menu/Menu.component.js diff --git a/libs/juno-ui-components/src/components/Menu/Menu.stories.js b/libs_deprecated/juno-ui-components/src/components/Menu/Menu.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Menu/Menu.stories.js rename to libs_deprecated/juno-ui-components/src/components/Menu/Menu.stories.js diff --git a/libs/juno-ui-components/src/components/Menu/Menu.test.js b/libs_deprecated/juno-ui-components/src/components/Menu/Menu.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Menu/Menu.test.js rename to libs_deprecated/juno-ui-components/src/components/Menu/Menu.test.js diff --git a/libs/juno-ui-components/src/components/Menu/index.js b/libs_deprecated/juno-ui-components/src/components/Menu/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Menu/index.js rename to libs_deprecated/juno-ui-components/src/components/Menu/index.js diff --git a/libs/juno-ui-components/src/components/MenuItem/MenuItem.component.js b/libs_deprecated/juno-ui-components/src/components/MenuItem/MenuItem.component.js similarity index 100% rename from libs/juno-ui-components/src/components/MenuItem/MenuItem.component.js rename to libs_deprecated/juno-ui-components/src/components/MenuItem/MenuItem.component.js diff --git a/libs/juno-ui-components/src/components/MenuItem/MenuItem.stories.js b/libs_deprecated/juno-ui-components/src/components/MenuItem/MenuItem.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/MenuItem/MenuItem.stories.js rename to libs_deprecated/juno-ui-components/src/components/MenuItem/MenuItem.stories.js diff --git a/libs/juno-ui-components/src/components/MenuItem/MenuItem.test.js b/libs_deprecated/juno-ui-components/src/components/MenuItem/MenuItem.test.js similarity index 100% rename from libs/juno-ui-components/src/components/MenuItem/MenuItem.test.js rename to libs_deprecated/juno-ui-components/src/components/MenuItem/MenuItem.test.js diff --git a/libs/juno-ui-components/src/components/MenuItem/index.js b/libs_deprecated/juno-ui-components/src/components/MenuItem/index.js similarity index 100% rename from libs/juno-ui-components/src/components/MenuItem/index.js rename to libs_deprecated/juno-ui-components/src/components/MenuItem/index.js diff --git a/libs/juno-ui-components/src/components/MenuSection/MenuSection.component.js b/libs_deprecated/juno-ui-components/src/components/MenuSection/MenuSection.component.js similarity index 100% rename from libs/juno-ui-components/src/components/MenuSection/MenuSection.component.js rename to libs_deprecated/juno-ui-components/src/components/MenuSection/MenuSection.component.js diff --git a/libs/juno-ui-components/src/components/MenuSection/MenuSection.stories.js b/libs_deprecated/juno-ui-components/src/components/MenuSection/MenuSection.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/MenuSection/MenuSection.stories.js rename to libs_deprecated/juno-ui-components/src/components/MenuSection/MenuSection.stories.js diff --git a/libs/juno-ui-components/src/components/MenuSection/MenuSection.test.js b/libs_deprecated/juno-ui-components/src/components/MenuSection/MenuSection.test.js similarity index 100% rename from libs/juno-ui-components/src/components/MenuSection/MenuSection.test.js rename to libs_deprecated/juno-ui-components/src/components/MenuSection/MenuSection.test.js diff --git a/libs/juno-ui-components/src/components/MenuSection/index.js b/libs_deprecated/juno-ui-components/src/components/MenuSection/index.js similarity index 100% rename from libs/juno-ui-components/src/components/MenuSection/index.js rename to libs_deprecated/juno-ui-components/src/components/MenuSection/index.js diff --git a/libs/juno-ui-components/src/components/Message/Message.component.js b/libs_deprecated/juno-ui-components/src/components/Message/Message.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Message/Message.component.js rename to libs_deprecated/juno-ui-components/src/components/Message/Message.component.js diff --git a/libs/juno-ui-components/src/components/Message/Message.stories.js b/libs_deprecated/juno-ui-components/src/components/Message/Message.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Message/Message.stories.js rename to libs_deprecated/juno-ui-components/src/components/Message/Message.stories.js diff --git a/libs/juno-ui-components/src/components/Message/Message.test.js b/libs_deprecated/juno-ui-components/src/components/Message/Message.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Message/Message.test.js rename to libs_deprecated/juno-ui-components/src/components/Message/Message.test.js diff --git a/libs/juno-ui-components/src/components/Message/index.js b/libs_deprecated/juno-ui-components/src/components/Message/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Message/index.js rename to libs_deprecated/juno-ui-components/src/components/Message/index.js diff --git a/libs/juno-ui-components/src/components/Modal/Modal.component.js b/libs_deprecated/juno-ui-components/src/components/Modal/Modal.component.js similarity index 100% rename from libs/juno-ui-components/src/components/Modal/Modal.component.js rename to libs_deprecated/juno-ui-components/src/components/Modal/Modal.component.js diff --git a/libs/juno-ui-components/src/components/Modal/Modal.stories.js b/libs_deprecated/juno-ui-components/src/components/Modal/Modal.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/Modal/Modal.stories.js rename to libs_deprecated/juno-ui-components/src/components/Modal/Modal.stories.js diff --git a/libs/juno-ui-components/src/components/Modal/Modal.test.js b/libs_deprecated/juno-ui-components/src/components/Modal/Modal.test.js similarity index 100% rename from libs/juno-ui-components/src/components/Modal/Modal.test.js rename to libs_deprecated/juno-ui-components/src/components/Modal/Modal.test.js diff --git a/libs/juno-ui-components/src/components/Modal/index.js b/libs_deprecated/juno-ui-components/src/components/Modal/index.js similarity index 100% rename from libs/juno-ui-components/src/components/Modal/index.js rename to libs_deprecated/juno-ui-components/src/components/Modal/index.js diff --git a/libs/juno-ui-components/src/components/ModalFooter/ModalFooter.component.js b/libs_deprecated/juno-ui-components/src/components/ModalFooter/ModalFooter.component.js similarity index 100% rename from libs/juno-ui-components/src/components/ModalFooter/ModalFooter.component.js rename to libs_deprecated/juno-ui-components/src/components/ModalFooter/ModalFooter.component.js diff --git a/libs/juno-ui-components/src/components/ModalFooter/ModalFooter.stories.js b/libs_deprecated/juno-ui-components/src/components/ModalFooter/ModalFooter.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/ModalFooter/ModalFooter.stories.js rename to libs_deprecated/juno-ui-components/src/components/ModalFooter/ModalFooter.stories.js diff --git a/libs/juno-ui-components/src/components/ModalFooter/ModalFooter.test.js b/libs_deprecated/juno-ui-components/src/components/ModalFooter/ModalFooter.test.js similarity index 100% rename from libs/juno-ui-components/src/components/ModalFooter/ModalFooter.test.js rename to libs_deprecated/juno-ui-components/src/components/ModalFooter/ModalFooter.test.js diff --git a/libs/juno-ui-components/src/components/ModalFooter/index.js b/libs_deprecated/juno-ui-components/src/components/ModalFooter/index.js similarity index 100% rename from libs/juno-ui-components/src/components/ModalFooter/index.js rename to libs_deprecated/juno-ui-components/src/components/ModalFooter/index.js diff --git a/libs/juno-ui-components/src/components/NativeSelect/NativeSelect.component.js b/libs_deprecated/juno-ui-components/src/components/NativeSelect/NativeSelect.component.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelect/NativeSelect.component.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelect/NativeSelect.component.js diff --git a/libs/juno-ui-components/src/components/NativeSelect/NativeSelect.stories.js b/libs_deprecated/juno-ui-components/src/components/NativeSelect/NativeSelect.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelect/NativeSelect.stories.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelect/NativeSelect.stories.js diff --git a/libs/juno-ui-components/src/components/NativeSelect/NativeSelect.test.js b/libs_deprecated/juno-ui-components/src/components/NativeSelect/NativeSelect.test.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelect/NativeSelect.test.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelect/NativeSelect.test.js diff --git a/libs/juno-ui-components/src/components/NativeSelect/index.js b/libs_deprecated/juno-ui-components/src/components/NativeSelect/index.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelect/index.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelect/index.js diff --git a/libs/juno-ui-components/src/components/NativeSelectOption/NativeSelectOption.component.js b/libs_deprecated/juno-ui-components/src/components/NativeSelectOption/NativeSelectOption.component.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelectOption/NativeSelectOption.component.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelectOption/NativeSelectOption.component.js diff --git a/libs/juno-ui-components/src/components/NativeSelectOption/NativeSelectOption.stories.js b/libs_deprecated/juno-ui-components/src/components/NativeSelectOption/NativeSelectOption.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelectOption/NativeSelectOption.stories.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelectOption/NativeSelectOption.stories.js diff --git a/libs/juno-ui-components/src/components/NativeSelectOption/SelectOption.test.js b/libs_deprecated/juno-ui-components/src/components/NativeSelectOption/SelectOption.test.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelectOption/SelectOption.test.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelectOption/SelectOption.test.js diff --git a/libs/juno-ui-components/src/components/NativeSelectOption/index.js b/libs_deprecated/juno-ui-components/src/components/NativeSelectOption/index.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelectOption/index.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelectOption/index.js diff --git a/libs/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.component.js b/libs_deprecated/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.component.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.component.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.component.js diff --git a/libs/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.stories.js b/libs_deprecated/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.stories.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.stories.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.stories.js diff --git a/libs/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.test.js b/libs_deprecated/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.test.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.test.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelectOptionGroup/NativeSelectOptionGroup.test.js diff --git a/libs/juno-ui-components/src/components/NativeSelectOptionGroup/index.js b/libs_deprecated/juno-ui-components/src/components/NativeSelectOptionGroup/index.js similarity index 100% rename from libs/juno-ui-components/src/components/NativeSelectOptionGroup/index.js rename to libs_deprecated/juno-ui-components/src/components/NativeSelectOptionGroup/index.js diff --git a/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.component.js b/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.component.js new file mode 100644 index 000000000..32c276c6e --- /dev/null +++ b/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.component.js @@ -0,0 +1,134 @@ +/* + * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import React, { createContext, useEffect, useState } from "react" +import PropTypes from "prop-types" +import { NavigationItem } from "../NavigationItem/" + +export const NavigationContext = createContext() + +/** A generic Navigation component providing all the necessary functionality for a navigation. For internal use only. Not to be used directly, but to be wrapped by more role-specific / semantic navigation components such as `TabNavigation`, `TopNavigation`, `SideNavigation`. */ +export const Navigation = ({ + activeItem, + ariaLabel, + children, + className, + disabled, + onActiveItemChange, + onChange, + ...props +}) => { + const [activeItm, setActiveItm] = useState("") + const [items, setItems] = useState(new Map()) + + const findItemIdByKeyValue = (valueToFind) => { + // The prioritized sequence of individual item keys to check for a value: + const prioritizedKeys = ["value", "children", "label"] + const itemsKeys = Array.from(items.keys()) + if (itemsKeys.includes(valueToFind)) { + // return the value if it is found in the keys of the items map + return valueToFind + } else { + // If the value is not found in the keys of the items map, search for the value in the individual items according to the sequence in prioritizedKeys. If a matching item is found, return its id or null: + let foundItemId + for (let [key, obj] of items.entries()) { + prioritizedKeys.forEach((pKey) => { + if (obj[pKey] === valueToFind) { + foundItemId = obj.id + } + }) + } + return foundItemId + } + } + + useEffect(() => { + if (activeItem) { + const activeItemId = findItemIdByKeyValue(activeItem) + setActiveItm(activeItemId) + } + }, [activeItem]) + + // Re-evaluate active item when items map changes (essential to set the active item properly on first render!): + useEffect(() => { + if (activeItem) { + const activeItemId = findItemIdByKeyValue(activeItem) + setActiveItm(activeItemId) + } + }, [items]) + + // Key is set as established by the child item according to priority: value || children || label + const addItem = (key, children, label, value) => { + setItems((oldMap) => + new Map(oldMap).set(key, { + id: key, // store the associated key of the item in the map inside the object, so we can easily get the key later if we have to find an object by any of its keys + value: value, + label: label, + children: children, + displayName: children || label || value, // priority of what to actually render in each item + }) + ) + } + + const handleActiveItemChange = (key) => { + setActiveItm(key) + onActiveItemChange && onActiveItemChange(key) + } + + return ( + +
      + {children} +
    +
    + ) +} + +// TODO: validate whether children are instances of NavigationItem + +Navigation.propTypes = { + /** The currently active item. Pass the `value`, `label` prop, or the child string of the respective NavigationItem. */ + activeItem: PropTypes.string, + /** The aria label of the navigation */ + arialLabel: PropTypes.string, + /** The child navigation items of the navigation */ + children: PropTypes.oneOfType([ + PropTypes.node, + PropTypes.arrayOf(PropTypes.node), + ]), + /** Pass a custom className to the navigation parent element */ + className: PropTypes.string, + /** Whether the navigation is disabled. Will disable all children. */ + disabled: PropTypes.bool, + /** Handler to execute when the active item changes. Alias to `onChange`. */ + onActiveItemChange: PropTypes.func, + /** Handler to execute when the active item changes. Alias to `onActiveItemChange`. */ + onChange: PropTypes.func, +} + +Navigation.defaultProps = { + activeItem: "", + ariaLabel: "", + children: null, + className: "", + disabled: false, + onActiveItemChange: undefined, + onChange: undefined, +} diff --git a/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.stories.js b/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.stories.js new file mode 100644 index 000000000..513e88236 --- /dev/null +++ b/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.stories.js @@ -0,0 +1,155 @@ +/* + * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import React from "react" +import { Navigation } from "./index.js" +import { NavigationItem } from "../NavigationItem/" + +export default { + title: "Internal/Navigation", + component: Navigation, + argTypes: { + children: { + control: false, + }, + role: { + options: ["TabNavigation", "TopNavigation", "SideNavigation"], + control: { type: "select" }, + }, + }, +} + +const Template = ({ children, ...props }) => ( + {children} +) + +export const DefaultWithChildren = { + render: Template, + args: { + activeItem: "Item 1", + children: [ + Item 1, + Item 2, + Item 3, + + Item 4 + , + ], + }, +} + +export const WithValuesAndLabels = { + render: Template, + args: { + children: [ + , + , + , + ], + }, +} + +export const WithValuesLabelsAndChildren = { + render: Template, + args: { + children: [ + + Item 1 + , + + Item 2 + , + + Item 3 + , + ], + }, +} + +export const ValuesOnly = { + render: Template, + args: { + children: [ + , + , + , + ], + }, +} + +export const WithActiveItemByValue = { + render: Template, + args: { + activeItem: "item-2", + children: [ + , + , + , + ], + }, +} + +// TODO: +export const WithActiveItemByLabel = { + render: Template, + args: { + activeItem: "Item 2", + children: [ + , + , + , + ], + }, +} + +// TODO: +export const WithActiveItemByChild = { + render: Template, + args: { + activeItem: "Item 2", + children: [ + + Item 1 + , + + Item 2 + , + + Item 3 + , + ], + }, +} + +export const Disabled = { + render: Template, + args: { + disabled: true, + children: [ + Item 1, + + Item 2 + , + Item 3, + ], + }, +} + +export const ItemsAsLinks = { + render: Template, + args: { + children: [ + + Link 1 + , + + Link 2 + , + + Link 3 + , + ], + }, +} diff --git a/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.test.js b/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.test.js new file mode 100644 index 000000000..757038ee9 --- /dev/null +++ b/libs_deprecated/juno-ui-components/src/components/Navigation/Navigation.test.js @@ -0,0 +1,1524 @@ +/* + * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import * as React from "react" +import { render, screen, waitFor, cleanup, act } from "@testing-library/react" +import userEvent from "@testing-library/user-event" +import { Navigation } from "./index" +import { NavigationItem } from "../NavigationItem/index" + +const mockOnChange = jest.fn() +const mockOnActiveItemChange = jest.fn() + +describe("Navigation", () => { + afterEach(() => { + cleanup() + jest.clearAllMocks() + }) + + test("renders a Navigation", async () => { + render() + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.getByRole("navigation")).toHaveClass("juno-navigation") + }) + + test("renders children as passed", async () => { + render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + }) + + test("renders an aria-label as passed", async () => { + render() + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.getByRole("navigation")).toHaveAttribute( + "aria-label", + "describe the navigation" + ) + }) + + test("renders a disabled navigation as passed", async () => { + render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.getByRole("navigation")).toHaveAttribute( + "aria-disabled", + "true" + ) + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).toBeDisabled() + expect(screen.getByRole("button", { name: "Item 1" })).toHaveAttribute( + "aria-disabled", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toBeDisabled() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-disabled", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toBeDisabled() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-disabled", + "true" + ) + }) + + // Test setting the activeItem initially: + + test("renders an active item as passed to the parent by child content when only content is given", async () => { + render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child content when content and label are given", async () => { + render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child content when content and value are given", async () => { + render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child content when content, label, and value are given", async () => { + render( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child value when only value is given", async () => { + render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "item-1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child value when value and label are given", async () => { + render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child value when value and child content are given", async () => { + render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child value when value, label, and child content are given", async () => { + render( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child label when only label is given", async () => { + render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child label when value and label are given", async () => { + render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child label when label and child content are given", async () => { + render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("renders an active item as passed to the parent by child label when value, label, and child content are given", async () => { + render( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + }) + + // Test re-rendering / updating the activeItem: + + test("re-renders the activeItem when passed by child content when only child content is given", async () => { + const { rerender } = render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + + rerender( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child content when child content and value are given", async () => { + const { rerender } = render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child content when child content and child label are given", async () => { + const { rerender } = render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child content when child content, value, and label are given", async () => { + const { rerender } = render( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child value when only child value is given", async () => { + const { rerender } = render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "item-1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "item-1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child value when child value and label are given", async () => { + const { rerender } = render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "item-1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "item-1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "item-3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "item-3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "item-3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child value when child value and child content are given", async () => { + const { rerender } = render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child value when child value, label, and child content are given", async () => { + const { rerender } = render( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child label when only child label is given", async () => { + const { rerender } = render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).not.toHaveAttribute("aria-selected", "true") + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).not.toHaveClass("juno-navigation-item-active") + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).toHaveAttribute("aria-selected", "true") + expect(screen.getByRole("button", { name: "Item 2 Label" })).toHaveClass( + "juno-navigation-item-active" + ) + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).not.toHaveAttribute("aria-selected", "true") + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).not.toHaveClass("juno-navigation-item-active") + rerender( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).not.toHaveAttribute("aria-selected", "true") + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).not.toHaveClass("juno-navigation-item-active") + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).not.toHaveAttribute("aria-selected", "true") + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).not.toHaveClass("juno-navigation-item-active") + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).toHaveAttribute("aria-selected", "true") + expect(screen.getByRole("button", { name: "Item 3 Label" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child label when child label and child content are given", async () => { + const { rerender } = render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("re-renders the activeItem when passed by child label when child label and child value are given", async () => { + const { rerender } = render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).not.toHaveAttribute("aria-selected", "true") + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).not.toHaveClass("juno-navigation-item-active") + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).toHaveAttribute("aria-selected", "true") + expect(screen.getByRole("button", { name: "Item 2 Label" })).toHaveClass( + "juno-navigation-item-active" + ) + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).not.toHaveAttribute("aria-selected", "true") + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).not.toHaveClass("juno-navigation-item-active") + rerender( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).not.toHaveAttribute("aria-selected", "true") + expect( + screen.getByRole("button", { name: "Item 1 Label" }) + ).not.toHaveClass("juno-navigation-item-active") + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).not.toHaveAttribute("aria-selected", "true") + expect( + screen.getByRole("button", { name: "Item 2 Label" }) + ).not.toHaveClass("juno-navigation-item-active") + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).toBeInTheDocument() + expect( + screen.getByRole("button", { name: "Item 3 Label" }) + ).toHaveAttribute("aria-selected", "true") + expect(screen.getByRole("button", { name: "Item 3 Label" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + // + test("re-renders the activeItem when passed by child label when child label, child value, and child content are given", async () => { + const { rerender } = render( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).not.toHaveClass( + "juno-navigation-item-active" + ) + rerender( + + + Item 1 + + + Item 2 + + + Item 3 + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + expect(screen.queryAllByRole("button")).toHaveLength(3) + expect(screen.getByRole("button", { name: "Item 1" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 1" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 2" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 2" })).not.toHaveClass( + "juno-navigation-item-active" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Item 3" })).toHaveAttribute( + "aria-selected", + "true" + ) + expect(screen.getByRole("button", { name: "Item 3" })).toHaveClass( + "juno-navigation-item-active" + ) + }) + + test("executes an onActiveItemChange handler when the user clicks an item and the active item changes", async () => { + // Use a callback to change a variable so we can double-check whether this was executed across context-/component borders: + let callbackWasExecuted = 0 + const onActiveItemChangeCallback = () => { + callbackWasExecuted = 1 + } + render( + + + + + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + const user = userEvent.setup() + const itemToClick = screen.getByRole("button", { name: "Item 2" }) + waitFor(() => { + user.click(itemToClick) + expect(onActiveItemChangeCallback).toHaveBeenCalled() + expect(callbackWasExecuted).toBe(1) + }) + }) + + test("executes an onChange handler when the user clicks an item", async () => { + // Use a callback to change a variable so we can double-check whether this was executed across context-/component borders: + let clickCallbackWasExecuted = 0 + const onChangeCallback = () => { + clickCallbackWasExecuted = 1 + } + render( + + Item 1 + Item 2 + Item 3 + + ) + expect(screen.getByRole("navigation")).toBeInTheDocument() + const user = userEvent.setup() + const itemToClick = screen.getByRole("button", { name: "Item 2" }) + waitFor(() => { + user.click(itemToClick) + expect(onChangeCallback).toHaveBeenCalled() + expect(clickCallbackWasExecuted).toBe(1) + }) + }) + + test("executes an onChange handler when the active item was changed programmatically", async () => { + const { rerender } = render( + + Item 1 + Item 2 + Item 3 + + ) + expect(mockOnChange).not.toHaveBeenCalled() + waitFor(() => { + rerender( + + Item 1 + Item 2 + Item 3 + + ) + expect(mockOnChange).toHaveBeenCalled() + }) + }) + + test("executes an onActiveItemChange handler when the active item was changed programmatically", async () => { + const { rerender } = render( + + Item 1 + Item 2 + Item 3 + + ) + expect(mockOnChange).not.toHaveBeenCalled() + waitFor(() => { + rerender( + + Item 1 + Item 2 + Item 3 + + ) + expect(mockOnActiveItemChange).toHaveBeenCalled() + }) + }) + + test("renders custom classNames as passed", async () => { + render() + expect(screen.getByRole("navigation")).toHaveClass("my-custom-class") + }) + + test("renders all props as passed", async () => { + render() + expect(screen.getByRole("navigation")).toHaveAttribute( + "data-lol", + "Prop goes here" + ) + }) +}) diff --git a/libs_deprecated/juno-ui-components/src/components/Navigation/index.js b/libs_deprecated/juno-ui-components/src/components/Navigation/index.js new file mode 100644 index 000000000..0ed30bd3f --- /dev/null +++ b/libs_deprecated/juno-ui-components/src/components/Navigation/index.js @@ -0,0 +1,6 @@ +/* + * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +export { Navigation } from "./Navigation.component" diff --git a/libs_deprecated/juno-ui-components/src/components/NavigationItem/NavigationItem.component.js b/libs_deprecated/juno-ui-components/src/components/NavigationItem/NavigationItem.component.js new file mode 100644 index 000000000..8b40794cc --- /dev/null +++ b/libs_deprecated/juno-ui-components/src/components/NavigationItem/NavigationItem.component.js @@ -0,0 +1,216 @@ +/* + * SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import React, { useContext, useEffect, useState } from "react" +import PropTypes from "prop-types" +import { NavigationContext } from "../Navigation/Navigation.component" +import { Icon } from "../Icon/index.js" +import { knownIcons } from "../Icon/Icon.component.js" + +const itemStyles = ` + jn-flex + jn-items-center +` + +const disabledStyles = ` + jn-opacity-50 + jn-cursor-not-allowed +` + +/** A generic Navigation Item component. For internal use only. Use to wrap more semantic, role-specific navigation item components such as `SidenavigationItem`, `TabNavigationItem` , `TopNavigationItem` around. */ +export const NavigationItem = ({ + active, + activeItemStyles, + ariaLabel, + children, + className, + disabled, + icon, + inactiveItemStyles, + label, + href, + onClick, + value, + wrapperClassName, + ...props +}) => { + const navigationContext = useContext(NavigationContext) + + // Create a unique Identifier to a) identify the active item with the parent, b) as a key in the map of items with the parent, and c) to be returned by interested event handlers. + const theKey = value || children || label + + const { + activeItem: activeItem, + addItem: addItem, + handleActiveItemChange: handleActiveItemChange, + navigationDisabled: navigationDisabled, + navigationRole: navigationRole, + } = navigationContext || {} + + // Determine whether the item is initially set to active via the parent navigation component or by its own devices: + const initialActive = () => { + if (navigationContext?.activeItem?.length > 0) { + return activeItem === theKey + } else { + return active + } + } + + const [isActive, setIsActive] = useState(() => initialActive()) + + useEffect(() => { + // only add the item to the parent if we are in a context and addItem method exists: + addItem ? addItem(theKey, children, label, value) : undefined + }, [children, label, value]) + + useEffect(() => { + if (activeItem) { + activeItem === theKey ? setIsActive(true) : setIsActive(false) + return + } + setIsActive(active) + }, [activeItem, active]) + + const handleClick = (event) => { + if (disabled) { + event.preventDefault() + } else { + if ( + !isActive && + handleActiveItemChange && + typeof handleActiveItemChange === "function" + ) { + handleActiveItemChange(theKey) + } + onClick && onClick(event) + } + } + + return ( +
  • + {href && href.length ? ( + + {icon ? : ""} + {children || label || value} + + ) : ( + + )} +
  • + ) +} + +NavigationItem.propTypes = { + /** Whether the navigation item is the currently active item. If an acitve item is set on the parent, the one on the parent will win. */ + active: PropTypes.bool, + /** Styles to apply to the active item*/ + activeItemStyles: PropTypes.string, + /** The aria-label of the item */ + ariaLabel: PropTypes.string, + /** Pass custom classNames to the item itself. */ + className: PropTypes.string, + /** The child string of the item. Will override `label` when passed. */ + children: PropTypes.string, + /** Whether the item is disabled */ + disabled: PropTypes.bool, + /** An icon to render in the item */ + icon: PropTypes.oneOf(knownIcons), + /* Pass styles that apply to IN-active items only, in the event activeStyles are overwritten by defaultStyles affecting the same CSS property*/ + inactiveItemStyles: PropTypes.string, + /** The label of the item. Will be rendered if no children are passed */ + label: PropTypes.string, + /** The href of the item. The item will be rendered as an `` element when passed, instead of a `