diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 00000000..435e8f91
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "build-tools"]
+	path = build-tools
+	url = https://github.com/RedHatInsights/insights-frontend-builder-common.git
diff --git a/.tekton/koku-frontend-mfe-pull-request.yaml b/.tekton/koku-frontend-mfe-pull-request.yaml
index 0d901985..9c95b32c 100644
--- a/.tekton/koku-frontend-mfe-pull-request.yaml
+++ b/.tekton/koku-frontend-mfe-pull-request.yaml
@@ -31,7 +31,7 @@ spec:
     - name: image-expires-after
       value: 5d
     - name: dockerfile
-      value: Dockerfile
+      value: build-tools/Dockerfile
     - name: path-context
       value: .
   pipelineSpec:
@@ -45,7 +45,7 @@ spec:
             - name: name
               value: show-sbom
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:945a7c9066d3e0a95d3fddb7e8a6992e4d632a2a75d8f3a9bd2ff2fef0ec9aa0
+              value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:04f15cbce548e1db7770eee3f155ccb2cc0140a6c371dc67e9a34d83673ea0c0
             - name: kind
               value: task
           resolver: bundles
@@ -152,7 +152,7 @@ spec:
             - name: name
               value: init
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:4c6712db9419461b8c8a39523c012cb0dc061fb58563bb9170b3777d74f54659
+              value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:2f59e9a3c20ce4509356389d327087213cc82c079b30811935837791da140f9f
             - name: kind
               value: task
           resolver: bundles
@@ -169,7 +169,7 @@ spec:
             - name: name
               value: git-clone
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:d091a9e19567a4cbdc5acd57903c71ba71dc51d749a4ba7477e689608851e981
+              value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:92cf275b60f7bd23472acc4bc6e9a4bc9a9cbd78a680a23087fa4df668b85a34
             - name: kind
               value: task
           resolver: bundles
@@ -194,7 +194,7 @@ spec:
             - name: name
               value: prefetch-dependencies
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.1@sha256:29bbe92528ed10c9f36f5565c2cca5837806fe7a0e2cde31b73098384ce69aae
+              value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:dfef566290e002e47f766ead3906922a26978a54b84727705a21dec64df7d9a3
             - name: kind
               value: task
           resolver: bundles
@@ -210,66 +210,6 @@ spec:
             workspace: git-auth
           - name: netrc
             workspace: netrc
-      - name: parse-build-deploy-script
-        params:
-          - name: path-context
-            value: $(params.path-context)
-        taskRef:
-          resolver: git
-          params:
-            - name: url
-              value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build
-            - name: revision
-              value: a6838b71b88dc1e84f11764c9734e4880096585d  # replace with the latest commit from https://github.com/RedHatInsights/konflux-consoledot-frontend-build/commits
-            - name: pathInRepo
-              value: tasks/parse-build-deploy-script/parse-build-deploy-script.yaml
-        workspaces:
-          - name: source
-            workspace: workspace
-        runAfter:
-          - clone-repository
-      - name: create-frontend-dockerfile
-        taskRef:
-          resolver: git
-          params:
-            - name: url
-              value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build
-            - name: revision
-              value: c0ff4861d5aa77584f51576b65f2eb9e12e1ded8
-            - name: pathInRepo
-              value: tasks/create-frontend-dockerfile/create-frontend-dockerfile.yaml
-        workspaces:
-          - name: source
-            workspace: workspace
-        params:
-          - name: path-context
-            value: $(params.path-context)
-          - name: component
-            value: $(tasks.parse-build-deploy-script.results.component)
-          - name: image
-            value: $(tasks.parse-build-deploy-script.results.image)
-          - name: node-build-version
-            value: $(tasks.parse-build-deploy-script.results.node-build-version)
-          - name: quay-expire-time
-            value: $(tasks.parse-build-deploy-script.results.quay-expire-time)
-          - name: npm-build-script
-            value: $(tasks.parse-build-deploy-script.results.npm-build-script)
-          - name: yarn-build-script
-            value: $(tasks.parse-build-deploy-script.results.yarn-build-script)
-          - name: route-path
-            value: $(tasks.parse-build-deploy-script.results.route-path)
-          - name: beta-route-path
-            value: $(tasks.parse-build-deploy-script.results.beta-route-path)
-          - name: preview-route-path
-            value: $(tasks.parse-build-deploy-script.results.preview-route-path)
-          - name: ci-root
-            value: $(tasks.parse-build-deploy-script.results.ci-root)
-          - name: server-name
-            value: $(tasks.parse-build-deploy-script.results.server-name)
-          - name: dist-folder
-            value: $(tasks.parse-build-deploy-script.results.dist-folder)
-        runAfter:
-          - parse-build-deploy-script
       - name: build-container
         params:
           - name: IMAGE
@@ -293,13 +233,12 @@ spec:
             value: $(params.build-args-file)
         runAfter:
           - prefetch-dependencies
-          - create-frontend-dockerfile
         taskRef:
           params:
             - name: name
               value: buildah
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.3@sha256:4f662943e85e9d0b0c52a6be7718e9c77cd4f1072150a988b606d52f2469135a
+              value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:9ccddd19868ab459b0368af00ec823c82277b684928f18f3d18769a9f5353d12
             - name: kind
               value: task
           resolver: bundles
@@ -331,7 +270,7 @@ spec:
             - name: name
               value: build-image-index
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:be5e5d4ef43f14f6dc3f8da4df52b3e3b2529f9d64e706471b0317b5a07a9046
+              value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:d34e4245b767c5b1b5edbbad9fc9cf8050cf19a69c8e55856479848405c596ec
             - name: kind
               value: task
           resolver: bundles
@@ -351,7 +290,7 @@ spec:
             - name: name
               value: source-build
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.1@sha256:9d8f146d0474440165db38a3efdf55da73856de332ebf8d598197f92156ee44e
+              value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.2@sha256:2a01b61339c57cc3b27d8f54c271c32ba1db147a957230c6aa7f4f3c95bce6ee
             - name: kind
               value: task
           resolver: bundles
@@ -367,6 +306,54 @@ spec:
         workspaces:
           - name: workspace
             workspace: workspace
+      - name: sast-shell-check
+        params:
+          - name: image-digest
+            value: $(tasks.build-image-index.results.IMAGE_DIGEST)
+          - name: image-url
+            value: $(tasks.build-image-index.results.IMAGE_URL)
+        runAfter:
+          - build-image-index
+        taskRef:
+          params:
+            - name: name
+              value: sast-shell-check
+            - name: bundle
+              value: quay.io/konflux-ci/tekton-catalog/task-sast-shell-check:0.1@sha256:77724eb55158ed966316e1d478f7e208dbf98202231d8ebf20e0f55ad92f667c
+            - name: kind
+              value: task
+          resolver: bundles
+        when:
+          - input: $(params.skip-checks)
+            operator: in
+            values:
+              - "false"
+        workspaces:
+          - name: workspace
+            workspace: workspace
+      - name: sast-unicode-check
+        params:
+          - name: image-url
+            value: $(tasks.build-image-index.results.IMAGE_URL)
+        runAfter:
+          - build-image-index
+        taskRef:
+          params:
+            - name: name
+              value: sast-unicode-check
+            - name: bundle
+              value: quay.io/konflux-ci/tekton-catalog/task-sast-unicode-check:0.1@sha256:b1a9af196a79baa75632ef494eb6db987f57e870d882d47f5b495e1441c01e3b
+            - name: kind
+              value: task
+          resolver: bundles
+        when:
+          - input: $(params.skip-checks)
+            operator: in
+            values:
+              - "false"
+        workspaces:
+          - name: workspace
+            workspace: workspace
       - name: deprecated-base-image-check
         params:
           - name: IMAGE_URL
@@ -380,7 +367,7 @@ spec:
             - name: name
               value: deprecated-image-check
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:241f87f75a6e4303fbd64b32ba1715d76fe3805c48a6c21829e6a564bcc3a576
+              value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.5@sha256:5d63b920b71192906fe4d6c4903f594e6f34c5edcff9d21714a08b5edcfbc667
             - name: kind
               value: task
           resolver: bundles
@@ -402,7 +389,7 @@ spec:
             - name: name
               value: clair-scan
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:f636f2cbe91d9d4d9685a38c8bc680a36e17f568ec0e60a93da82d1284b488c5
+              value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:03383b5a8674edef0ae184dd81f00386017624a5af255cb0b5803d7659483ba5
             - name: kind
               value: task
           resolver: bundles
@@ -422,7 +409,7 @@ spec:
             - name: name
               value: ecosystem-cert-preflight-checks
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.1@sha256:df8a25a3431a70544172ed4844f9d0c6229d39130633960729f825a031a7dea9
+              value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.2@sha256:2ad615f9b8141ed2e0b060ebda366ce43cf55a9dd7c98e2d93970ff328dca8b2
             - name: kind
               value: task
           resolver: bundles
@@ -444,7 +431,7 @@ spec:
             - name: name
               value: sast-snyk-check
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:30cc34ccf6ca34e7f0951fd508fe4436d07388e7244baab77baf4ef9bdcefff4
+              value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:aa63af0a12a82cff2ffe885f810b855f032926c622f7b03052f30a652a307a50
             - name: kind
               value: task
           resolver: bundles
@@ -469,7 +456,7 @@ spec:
             - name: name
               value: clamav-scan
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.2@sha256:0db068e8a59612472a2483f5113893d0c5c9102e9ad7647d9a4789360e5bc2dc
+              value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.2@sha256:c30c12681b02eb4b83aeb4021d0e714a72db4d1d3bb14579652f4d1a763473ab
             - name: kind
               value: task
           resolver: bundles
@@ -489,7 +476,7 @@ spec:
             - name: name
               value: apply-tags
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:fa7aa88ffe01eeeaa07c8720b27e50e27f6f136ef33595efaa16a0eb4598ea02
+              value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:e1d365ce85d6448f6ebd0d0a000d0f45b694950b7545a2c34bfbcf992c80df61
             - name: kind
               value: task
           resolver: bundles
@@ -510,7 +497,7 @@ spec:
             - name: name
               value: push-dockerfile
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:389dc0f7bb175b9ca04e79ee67352fedd62fff8b1d196029534cd5638c73a0fc
+              value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:eb74e4acece2b14f6995119320f0dccdcc0767f44bd3b317be56f2d29d118a90
             - name: kind
               value: task
           resolver: bundles
@@ -530,7 +517,7 @@ spec:
             - name: name
               value: rpms-signature-scan
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:3bf6d1bcd57af1095b06b4c489f965551364b1f1f72a807de9cab3c23142dca5
+              value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:d00d159c370e3c99447516970c316ef57dfd27c29e0ce3cff50727c9c40936d8
             - name: kind
               value: task
           resolver: bundles
diff --git a/.tekton/koku-frontend-mfe-push.yaml b/.tekton/koku-frontend-mfe-push.yaml
index ea0b8c43..ff681c21 100644
--- a/.tekton/koku-frontend-mfe-push.yaml
+++ b/.tekton/koku-frontend-mfe-push.yaml
@@ -28,7 +28,7 @@ spec:
     - name: output-image
       value: quay.io/redhat-user-workloads/cost-mgmt-dev-tenant/koku-frontend-mfe:{{revision}}
     - name: dockerfile
-      value: Dockerfile
+      value: build-tools/Dockerfile
     - name: path-context
       value: .
   pipelineSpec:
@@ -42,7 +42,7 @@ spec:
             - name: name
               value: show-sbom
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:945a7c9066d3e0a95d3fddb7e8a6992e4d632a2a75d8f3a9bd2ff2fef0ec9aa0
+              value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:04f15cbce548e1db7770eee3f155ccb2cc0140a6c371dc67e9a34d83673ea0c0
             - name: kind
               value: task
           resolver: bundles
@@ -149,7 +149,7 @@ spec:
             - name: name
               value: init
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:4c6712db9419461b8c8a39523c012cb0dc061fb58563bb9170b3777d74f54659
+              value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:2f59e9a3c20ce4509356389d327087213cc82c079b30811935837791da140f9f
             - name: kind
               value: task
           resolver: bundles
@@ -166,7 +166,7 @@ spec:
             - name: name
               value: git-clone
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:d091a9e19567a4cbdc5acd57903c71ba71dc51d749a4ba7477e689608851e981
+              value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:92cf275b60f7bd23472acc4bc6e9a4bc9a9cbd78a680a23087fa4df668b85a34
             - name: kind
               value: task
           resolver: bundles
@@ -191,7 +191,7 @@ spec:
             - name: name
               value: prefetch-dependencies
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.1@sha256:29bbe92528ed10c9f36f5565c2cca5837806fe7a0e2cde31b73098384ce69aae
+              value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:dfef566290e002e47f766ead3906922a26978a54b84727705a21dec64df7d9a3
             - name: kind
               value: task
           resolver: bundles
@@ -207,66 +207,6 @@ spec:
             workspace: git-auth
           - name: netrc
             workspace: netrc
-      - name: parse-build-deploy-script
-        params:
-          - name: path-context
-            value: $(params.path-context)
-        taskRef:
-          resolver: git
-          params:
-            - name: url
-              value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build
-            - name: revision
-              value: a6838b71b88dc1e84f11764c9734e4880096585d  # replace with the latest commit from https://github.com/RedHatInsights/konflux-consoledot-frontend-build/commits
-            - name: pathInRepo
-              value: tasks/parse-build-deploy-script/parse-build-deploy-script.yaml
-        workspaces:
-          - name: source
-            workspace: workspace
-        runAfter:
-          - clone-repository
-      - name: create-frontend-dockerfile
-        taskRef:
-          resolver: git
-          params:
-            - name: url
-              value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build
-            - name: revision
-              value: c0ff4861d5aa77584f51576b65f2eb9e12e1ded8
-            - name: pathInRepo
-              value: tasks/create-frontend-dockerfile/create-frontend-dockerfile.yaml
-        workspaces:
-          - name: source
-            workspace: workspace
-        params:
-          - name: path-context
-            value: $(params.path-context)
-          - name: component
-            value: $(tasks.parse-build-deploy-script.results.component)
-          - name: image
-            value: $(tasks.parse-build-deploy-script.results.image)
-          - name: node-build-version
-            value: $(tasks.parse-build-deploy-script.results.node-build-version)
-          - name: quay-expire-time
-            value: $(tasks.parse-build-deploy-script.results.quay-expire-time)
-          - name: npm-build-script
-            value: $(tasks.parse-build-deploy-script.results.npm-build-script)
-          - name: yarn-build-script
-            value: $(tasks.parse-build-deploy-script.results.yarn-build-script)
-          - name: route-path
-            value: $(tasks.parse-build-deploy-script.results.route-path)
-          - name: beta-route-path
-            value: $(tasks.parse-build-deploy-script.results.beta-route-path)
-          - name: preview-route-path
-            value: $(tasks.parse-build-deploy-script.results.preview-route-path)
-          - name: ci-root
-            value: $(tasks.parse-build-deploy-script.results.ci-root)
-          - name: server-name
-            value: $(tasks.parse-build-deploy-script.results.server-name)
-          - name: dist-folder
-            value: $(tasks.parse-build-deploy-script.results.dist-folder)
-        runAfter:
-          - parse-build-deploy-script
       - name: build-container
         params:
           - name: IMAGE
@@ -290,13 +230,12 @@ spec:
             value: $(params.build-args-file)
         runAfter:
           - prefetch-dependencies
-          - create-frontend-dockerfile
         taskRef:
           params:
             - name: name
               value: buildah
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.3@sha256:4f662943e85e9d0b0c52a6be7718e9c77cd4f1072150a988b606d52f2469135a
+              value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:9ccddd19868ab459b0368af00ec823c82277b684928f18f3d18769a9f5353d12
             - name: kind
               value: task
           resolver: bundles
@@ -328,7 +267,7 @@ spec:
             - name: name
               value: build-image-index
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:be5e5d4ef43f14f6dc3f8da4df52b3e3b2529f9d64e706471b0317b5a07a9046
+              value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:d34e4245b767c5b1b5edbbad9fc9cf8050cf19a69c8e55856479848405c596ec
             - name: kind
               value: task
           resolver: bundles
@@ -348,7 +287,7 @@ spec:
             - name: name
               value: source-build
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.1@sha256:9d8f146d0474440165db38a3efdf55da73856de332ebf8d598197f92156ee44e
+              value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.2@sha256:2a01b61339c57cc3b27d8f54c271c32ba1db147a957230c6aa7f4f3c95bce6ee
             - name: kind
               value: task
           resolver: bundles
@@ -364,6 +303,54 @@ spec:
         workspaces:
           - name: workspace
             workspace: workspace
+      - name: sast-shell-check
+        params:
+          - name: image-digest
+            value: $(tasks.build-image-index.results.IMAGE_DIGEST)
+          - name: image-url
+            value: $(tasks.build-image-index.results.IMAGE_URL)
+        runAfter:
+          - build-image-index
+        taskRef:
+          params:
+            - name: name
+              value: sast-shell-check
+            - name: bundle
+              value: quay.io/konflux-ci/tekton-catalog/task-sast-shell-check:0.1@sha256:77724eb55158ed966316e1d478f7e208dbf98202231d8ebf20e0f55ad92f667c
+            - name: kind
+              value: task
+          resolver: bundles
+        when:
+          - input: $(params.skip-checks)
+            operator: in
+            values:
+              - "false"
+        workspaces:
+          - name: workspace
+            workspace: workspace
+      - name: sast-unicode-check
+        params:
+          - name: image-url
+            value: $(tasks.build-image-index.results.IMAGE_URL)
+        runAfter:
+          - build-image-index
+        taskRef:
+          params:
+            - name: name
+              value: sast-unicode-check
+            - name: bundle
+              value: quay.io/konflux-ci/tekton-catalog/task-sast-unicode-check:0.1@sha256:b1a9af196a79baa75632ef494eb6db987f57e870d882d47f5b495e1441c01e3b
+            - name: kind
+              value: task
+          resolver: bundles
+        when:
+          - input: $(params.skip-checks)
+            operator: in
+            values:
+              - "false"
+        workspaces:
+          - name: workspace
+            workspace: workspace
       - name: deprecated-base-image-check
         params:
           - name: IMAGE_URL
@@ -377,7 +364,7 @@ spec:
             - name: name
               value: deprecated-image-check
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:241f87f75a6e4303fbd64b32ba1715d76fe3805c48a6c21829e6a564bcc3a576
+              value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.5@sha256:5d63b920b71192906fe4d6c4903f594e6f34c5edcff9d21714a08b5edcfbc667
             - name: kind
               value: task
           resolver: bundles
@@ -399,7 +386,7 @@ spec:
             - name: name
               value: clair-scan
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:f636f2cbe91d9d4d9685a38c8bc680a36e17f568ec0e60a93da82d1284b488c5
+              value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:03383b5a8674edef0ae184dd81f00386017624a5af255cb0b5803d7659483ba5
             - name: kind
               value: task
           resolver: bundles
@@ -419,7 +406,7 @@ spec:
             - name: name
               value: ecosystem-cert-preflight-checks
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.1@sha256:df8a25a3431a70544172ed4844f9d0c6229d39130633960729f825a031a7dea9
+              value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.2@sha256:2ad615f9b8141ed2e0b060ebda366ce43cf55a9dd7c98e2d93970ff328dca8b2
             - name: kind
               value: task
           resolver: bundles
@@ -441,7 +428,7 @@ spec:
             - name: name
               value: sast-snyk-check
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:30cc34ccf6ca34e7f0951fd508fe4436d07388e7244baab77baf4ef9bdcefff4
+              value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:aa63af0a12a82cff2ffe885f810b855f032926c622f7b03052f30a652a307a50
             - name: kind
               value: task
           resolver: bundles
@@ -466,7 +453,7 @@ spec:
             - name: name
               value: clamav-scan
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.2@sha256:0db068e8a59612472a2483f5113893d0c5c9102e9ad7647d9a4789360e5bc2dc
+              value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.2@sha256:c30c12681b02eb4b83aeb4021d0e714a72db4d1d3bb14579652f4d1a763473ab
             - name: kind
               value: task
           resolver: bundles
@@ -486,7 +473,7 @@ spec:
             - name: name
               value: apply-tags
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:fa7aa88ffe01eeeaa07c8720b27e50e27f6f136ef33595efaa16a0eb4598ea02
+              value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:e1d365ce85d6448f6ebd0d0a000d0f45b694950b7545a2c34bfbcf992c80df61
             - name: kind
               value: task
           resolver: bundles
@@ -507,7 +494,7 @@ spec:
             - name: name
               value: push-dockerfile
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:389dc0f7bb175b9ca04e79ee67352fedd62fff8b1d196029534cd5638c73a0fc
+              value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:eb74e4acece2b14f6995119320f0dccdcc0767f44bd3b317be56f2d29d118a90
             - name: kind
               value: task
           resolver: bundles
@@ -527,7 +514,7 @@ spec:
             - name: name
               value: rpms-signature-scan
             - name: bundle
-              value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:3bf6d1bcd57af1095b06b4c489f965551364b1f1f72a807de9cab3c23142dca5
+              value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:d00d159c370e3c99447516970c316ef57dfd27c29e0ce3cff50727c9c40936d8
             - name: kind
               value: task
           resolver: bundles
diff --git a/build-tools b/build-tools
new file mode 160000
index 00000000..3fad2bd4
--- /dev/null
+++ b/build-tools
@@ -0,0 +1 @@
+Subproject commit 3fad2bd4c68059879453623e3e4a5339b0f51628
diff --git a/package-lock.json b/package-lock.json
index 34cbfc2e..3652941f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,27 +10,27 @@
       "hasInstallScript": true,
       "license": "GNU AGPLv3",
       "dependencies": {
-        "@patternfly/patternfly": "5.4.2",
-        "@patternfly/react-charts": "7.4.8",
-        "@patternfly/react-component-groups": "5.5.5",
-        "@patternfly/react-core": "5.4.12",
-        "@patternfly/react-icons": "5.4.2",
-        "@patternfly/react-table": "5.4.13",
-        "@patternfly/react-tokens": "5.4.1",
-        "@redhat-cloud-services/frontend-components": "^5.2.3",
-        "@redhat-cloud-services/frontend-components-notifications": "^4.1.14",
-        "@redhat-cloud-services/frontend-components-translations": "^3.2.18",
-        "@redhat-cloud-services/frontend-components-utilities": "^5.0.10",
-        "@reduxjs/toolkit": "^2.5.1",
-        "@unleash/proxy-client-react": "^4.5.1",
-        "axios": "^1.7.9",
+        "@patternfly/patternfly": "6.2.0-prerelease.26",
+        "@patternfly/react-charts": "8.2.0-prerelease.26",
+        "@patternfly/react-component-groups": "6.2.0-prerelease.7",
+        "@patternfly/react-core": "6.2.0-prerelease.34",
+        "@patternfly/react-icons": "6.2.0-prerelease.12",
+        "@patternfly/react-table": "6.2.0-prerelease.35",
+        "@patternfly/react-tokens": "6.2.0-prerelease.11",
+        "@redhat-cloud-services/frontend-components": "^6.0.2",
+        "@redhat-cloud-services/frontend-components-notifications": "^5.0.2",
+        "@redhat-cloud-services/frontend-components-translations": "^4.0.1",
+        "@redhat-cloud-services/frontend-components-utilities": "^6.0.2",
+        "@reduxjs/toolkit": "^2.6.1",
+        "@unleash/proxy-client-react": "^5.0.0",
+        "axios": "^1.8.4",
         "date-fns": "^4.1.0",
         "js-file-download": "^0.4.12",
         "lodash": "^4.17.21",
         "qs": "^6.14.0",
         "react": "^18.3.1",
         "react-dom": "^18.3.1",
-        "react-intl": "^7.1.5",
+        "react-intl": "^7.1.9",
         "react-redux": "^9.2.0",
         "react-router-dom": "^6.28.0",
         "redux": "^5.0.1",
@@ -40,17 +40,17 @@
         "yaml": "^2.7.0"
       },
       "devDependencies": {
-        "@eslint/compat": "^1.2.6",
-        "@eslint/eslintrc": "^3.2.0",
-        "@eslint/js": "^9.19.0",
-        "@formatjs/cli": "^6.5.1",
-        "@formatjs/ecma402-abstract": "^2.3.2",
-        "@formatjs/fast-memoize": "^2.2.6",
-        "@formatjs/icu-messageformat-parser": "^2.11.0",
-        "@formatjs/intl-localematcher": "^0.5.10",
-        "@redhat-cloud-services/frontend-components-config": "^6.4.5",
+        "@eslint/compat": "^1.2.7",
+        "@eslint/eslintrc": "^3.3.1",
+        "@eslint/js": "^9.23.0",
+        "@formatjs/cli": "^6.6.2",
+        "@formatjs/ecma402-abstract": "^2.3.4",
+        "@formatjs/fast-memoize": "^2.2.7",
+        "@formatjs/icu-messageformat-parser": "^2.11.2",
+        "@formatjs/intl-localematcher": "^0.6.1",
+        "@redhat-cloud-services/frontend-components-config": "^6.4.8",
         "@redhat-cloud-services/tsc-transform-imports": "^1.0.23",
-        "@swc/core": "^1.10.12",
+        "@swc/core": "^1.11.13",
         "@swc/jest": "^0.2.37",
         "@testing-library/jest-dom": "^6.6.3",
         "@testing-library/react": "^16.2.0",
@@ -61,22 +61,22 @@
         "@types/react-dom": "^18.3.5",
         "@types/react-redux": "^7.1.34",
         "@types/react-router-dom": "^5.3.3",
-        "@typescript-eslint/eslint-plugin": "^8.23.0",
-        "@typescript-eslint/parser": "^8.23.0",
-        "copy-webpack-plugin": "^12.0.2",
-        "eslint": "^9.19.0",
-        "eslint-plugin-formatjs": "^5.2.13",
+        "@typescript-eslint/eslint-plugin": "^8.27.0",
+        "@typescript-eslint/parser": "^8.27.0",
+        "copy-webpack-plugin": "^13.0.0",
+        "eslint": "^9.23.0",
+        "eslint-plugin-formatjs": "^5.3.0",
         "eslint-plugin-jest-dom": "^5.5.0",
-        "eslint-plugin-jsdoc": "^50.6.3",
+        "eslint-plugin-jsdoc": "^50.6.9",
         "eslint-plugin-markdown": "^5.1.0",
-        "eslint-plugin-prettier": "^5.2.3",
+        "eslint-plugin-prettier": "^5.2.4",
         "eslint-plugin-react": "^7.37.4",
-        "eslint-plugin-react-hooks": "^5.1.0",
+        "eslint-plugin-react-hooks": "^5.2.0",
         "eslint-plugin-simple-import-sort": "^12.1.1",
         "eslint-plugin-sort-keys-fix": "^1.1.2",
         "eslint-plugin-testing-library": "^7.1.1",
         "git-revision-webpack-plugin": "^5.0.0",
-        "globals": "^15.14.0",
+        "globals": "^16.0.0",
         "identity-obj-proxy": "^3.0.0",
         "jest": "^29.7.0",
         "jest-environment-jsdom": "^29.7.0",
@@ -84,12 +84,12 @@
         "jest-transform-stub": "^2.0.0",
         "jws": "^4.0.0",
         "npm-run-all": "^4.1.5",
-        "prettier": "^3.4.2",
+        "prettier": "^3.5.3",
         "rimraf": "^6.0.1",
         "swc_mut_cjs_exports": "^8.0.1",
-        "ts-jest": "^29.2.5",
+        "ts-jest": "^29.3.0",
         "ts-patch": "^3.3.0",
-        "typescript": "^5.7.3"
+        "typescript": "^5.8.2"
       },
       "engines": {
         "node": ">=20.15.0",
@@ -715,9 +715,9 @@
       }
     },
     "node_modules/@eslint/compat": {
-      "version": "1.2.6",
-      "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.6.tgz",
-      "integrity": "sha512-k7HNCqApoDHM6XzT30zGoETj+D+uUcZUb+IVAJmar3u6bvHf7hhHJcWx09QHj4/a2qrKZMWU0E16tvkiAdv06Q==",
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.7.tgz",
+      "integrity": "sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg==",
       "dev": true,
       "license": "Apache-2.0",
       "engines": {
@@ -733,13 +733,13 @@
       }
     },
     "node_modules/@eslint/config-array": {
-      "version": "0.19.1",
-      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz",
-      "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==",
+      "version": "0.19.2",
+      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz",
+      "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
-        "@eslint/object-schema": "^2.1.5",
+        "@eslint/object-schema": "^2.1.6",
         "debug": "^4.3.1",
         "minimatch": "^3.1.2"
       },
@@ -747,10 +747,20 @@
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       }
     },
+    "node_modules/@eslint/config-helpers": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
+      "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      }
+    },
     "node_modules/@eslint/core": {
-      "version": "0.10.0",
-      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz",
-      "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==",
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz",
+      "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
@@ -761,9 +771,9 @@
       }
     },
     "node_modules/@eslint/eslintrc": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
-      "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
+      "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -798,9 +808,9 @@
       }
     },
     "node_modules/@eslint/js": {
-      "version": "9.19.0",
-      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz",
-      "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==",
+      "version": "9.23.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz",
+      "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -808,9 +818,9 @@
       }
     },
     "node_modules/@eslint/object-schema": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz",
-      "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==",
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
+      "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
       "dev": true,
       "license": "Apache-2.0",
       "engines": {
@@ -818,13 +828,13 @@
       }
     },
     "node_modules/@eslint/plugin-kit": {
-      "version": "0.2.5",
-      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz",
-      "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==",
+      "version": "0.2.7",
+      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
+      "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
-        "@eslint/core": "^0.10.0",
+        "@eslint/core": "^0.12.0",
         "levn": "^0.4.1"
       },
       "engines": {
@@ -832,9 +842,9 @@
       }
     },
     "node_modules/@formatjs/cli": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.5.1.tgz",
-      "integrity": "sha512-JptxQysoKiVZkGfd1u9GTlt88IQ1NUCUpxWI7Obkr7cZAupIBT5QbyL1NPq3UAyTgXODQ+09IUwZhJwVExW41g==",
+      "version": "6.6.2",
+      "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.6.2.tgz",
+      "integrity": "sha512-i4eAgnhvQCTTAYE/CVcXDwe2ZwM5U7SXo3Dt+XdpGq6agBJVgPm6qigZBB3M3NFHI7rKX0vpmFOu7zfHWafKlg==",
       "dev": true,
       "license": "MIT",
       "bin": {
@@ -845,13 +855,13 @@
       },
       "peerDependencies": {
         "@glimmer/env": "^0.1.7",
-        "@glimmer/reference": "^0.91.1 || ^0.92.0 || ^0.93.0",
-        "@glimmer/syntax": "^0.92.0 || ^0.93.0",
-        "@glimmer/validator": "^0.92.0 || ^0.93.0",
-        "@vue/compiler-core": "^3.4.0",
-        "content-tag": "^2.0.1 || ^3.0.0",
-        "ember-template-recast": "^6.1.4",
-        "vue": "^3.4.0"
+        "@glimmer/reference": "^0.94.0",
+        "@glimmer/syntax": "^0.94.9",
+        "@glimmer/validator": "^0.94.0",
+        "@vue/compiler-core": "^3.5.12",
+        "content-tag": "^3.0.0",
+        "ember-template-recast": "^6.1.5",
+        "vue": "^3.5.12"
       },
       "peerDependenciesMeta": {
         "@glimmer/env": {
@@ -881,61 +891,61 @@
       }
     },
     "node_modules/@formatjs/ecma402-abstract": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.2.tgz",
-      "integrity": "sha512-6sE5nyvDloULiyOMbOTJEEgWL32w+VHkZQs8S02Lnn8Y/O5aQhjOEXwWzvR7SsBE/exxlSpY2EsWZgqHbtLatg==",
+      "version": "2.3.4",
+      "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.4.tgz",
+      "integrity": "sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==",
       "license": "MIT",
       "dependencies": {
-        "@formatjs/fast-memoize": "2.2.6",
-        "@formatjs/intl-localematcher": "0.5.10",
-        "decimal.js": "10",
-        "tslib": "2"
+        "@formatjs/fast-memoize": "2.2.7",
+        "@formatjs/intl-localematcher": "0.6.1",
+        "decimal.js": "^10.4.3",
+        "tslib": "^2.8.0"
       }
     },
     "node_modules/@formatjs/fast-memoize": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.6.tgz",
-      "integrity": "sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==",
+      "version": "2.2.7",
+      "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz",
+      "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==",
       "license": "MIT",
       "dependencies": {
-        "tslib": "2"
+        "tslib": "^2.8.0"
       }
     },
     "node_modules/@formatjs/icu-messageformat-parser": {
-      "version": "2.11.0",
-      "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.0.tgz",
-      "integrity": "sha512-Hp81uTjjdTk3FLh/dggU5NK7EIsVWc5/ZDWrIldmf2rBuPejuZ13CZ/wpVE2SToyi4EiroPTQ1XJcJuZFIxTtw==",
+      "version": "2.11.2",
+      "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.2.tgz",
+      "integrity": "sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==",
       "license": "MIT",
       "dependencies": {
-        "@formatjs/ecma402-abstract": "2.3.2",
-        "@formatjs/icu-skeleton-parser": "1.8.12",
-        "tslib": "2"
+        "@formatjs/ecma402-abstract": "2.3.4",
+        "@formatjs/icu-skeleton-parser": "1.8.14",
+        "tslib": "^2.8.0"
       }
     },
     "node_modules/@formatjs/icu-skeleton-parser": {
-      "version": "1.8.12",
-      "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.12.tgz",
-      "integrity": "sha512-QRAY2jC1BomFQHYDMcZtClqHR55EEnB96V7Xbk/UiBodsuFc5kujybzt87+qj1KqmJozFhk6n4KiT1HKwAkcfg==",
+      "version": "1.8.14",
+      "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.14.tgz",
+      "integrity": "sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==",
       "license": "MIT",
       "dependencies": {
-        "@formatjs/ecma402-abstract": "2.3.2",
-        "tslib": "2"
+        "@formatjs/ecma402-abstract": "2.3.4",
+        "tslib": "^2.8.0"
       }
     },
     "node_modules/@formatjs/intl": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-3.1.3.tgz",
-      "integrity": "sha512-yWtB1L4vOr17MLII3bcNRmjx6qBkSupJuA6nJz1zVxpWbJXKQL5vgvjRCehTO3z7HolxFjtLdfV0/RN+bC34Fg==",
+      "version": "3.1.5",
+      "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-3.1.5.tgz",
+      "integrity": "sha512-cCTrhTqXGbacet55cKrRlT6lhhDqCBJCqoyngksWNqKzr832jDqrMLjf2tihJArx6TNhPdCJOVgyDw93DhfFhA==",
       "license": "MIT",
       "dependencies": {
-        "@formatjs/ecma402-abstract": "2.3.2",
-        "@formatjs/fast-memoize": "2.2.6",
-        "@formatjs/icu-messageformat-parser": "2.11.0",
-        "intl-messageformat": "10.7.14",
-        "tslib": "2"
+        "@formatjs/ecma402-abstract": "2.3.4",
+        "@formatjs/fast-memoize": "2.2.7",
+        "@formatjs/icu-messageformat-parser": "2.11.2",
+        "intl-messageformat": "10.7.16",
+        "tslib": "^2.8.0"
       },
       "peerDependencies": {
-        "typescript": "5"
+        "typescript": "5.8.2"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -944,31 +954,31 @@
       }
     },
     "node_modules/@formatjs/intl-localematcher": {
-      "version": "0.5.10",
-      "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz",
-      "integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==",
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz",
+      "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==",
       "license": "MIT",
       "dependencies": {
-        "tslib": "2"
+        "tslib": "^2.8.0"
       }
     },
     "node_modules/@formatjs/ts-transformer": {
-      "version": "3.13.31",
-      "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.31.tgz",
-      "integrity": "sha512-DrPadj1CarzCzCzSmqHgtmH+VGswlg0A6ZYWU40XCqxu96yUl6xOFqdrk7Lb3actFKfC7zD283Ax8RS3FcVDEw==",
+      "version": "3.13.33",
+      "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.33.tgz",
+      "integrity": "sha512-J52P8685QW5THfR9baUuaxcvFiROEjUVF0Y3SheeVPp/gevoYcN8DywizK00ELd37S4Egg/Ym+nk5gF5TKZTxA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@formatjs/icu-messageformat-parser": "2.11.0",
-        "@types/json-stable-stringify": "1",
-        "@types/node": "14 || 16 || 17 || 18 || 20 || 22",
-        "chalk": "4",
-        "json-stable-stringify": "1",
-        "tslib": "2",
-        "typescript": "5"
+        "@formatjs/icu-messageformat-parser": "2.11.2",
+        "@types/json-stable-stringify": "^1.1.0",
+        "@types/node": "^22.0.0",
+        "chalk": "^4.1.2",
+        "json-stable-stringify": "^1.1.1",
+        "tslib": "^2.8.0",
+        "typescript": "5.8.2"
       },
       "peerDependencies": {
-        "ts-jest": "27 || 28 || 29"
+        "ts-jest": "^29"
       },
       "peerDependenciesMeta": {
         "ts-jest": {
@@ -1046,9 +1056,9 @@
       }
     },
     "node_modules/@humanwhocodes/retry": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz",
-      "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==",
+      "version": "0.4.2",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz",
+      "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==",
       "dev": true,
       "license": "Apache-2.0",
       "engines": {
@@ -2179,54 +2189,111 @@
       }
     },
     "node_modules/@patternfly/patternfly": {
-      "version": "5.4.2",
-      "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.4.2.tgz",
-      "integrity": "sha512-+BaokNR8/AmTYMESxby9UtQXPGACg449BXQd0KejAvW/uGxlgO6mY1X1205DeBEHoK3e/vXkYXjvZPpv/tcxSA==",
+      "version": "6.2.0-prerelease.26",
+      "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-6.2.0-prerelease.26.tgz",
+      "integrity": "sha512-pfcdKL1F2Lya4uWgGa7zmUu0wzny6iD8nKtX5wndyvxUZh8SoaQQIDf+EEw2PquzODsafb8N+VaOkjrRCAFBIQ==",
       "license": "MIT"
     },
     "node_modules/@patternfly/react-charts": {
-      "version": "7.4.8",
-      "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.4.8.tgz",
-      "integrity": "sha512-Rv2ajbb7kmwcrZIolcaH8RzIMx3+6ldtJlKQoChmNggXGgKFtg3/QBlc9Qj+14LW0LSQ12ZprmRvHZ/Viyq+Qw==",
+      "version": "8.2.0-prerelease.26",
+      "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-8.2.0-prerelease.26.tgz",
+      "integrity": "sha512-jpOFD/wYMPOL3xMcTQa1XHONWmcH0/Rw5nD1tHt4CrCqNARQgZjz4mJ2MUhSE+bDBwK0YLg38XngdCLzlFSWGw==",
       "license": "MIT",
       "dependencies": {
-        "@patternfly/react-styles": "^5.4.1",
-        "@patternfly/react-tokens": "^5.4.1",
+        "@patternfly/react-styles": "^6.2.0-prerelease.11",
+        "@patternfly/react-tokens": "^6.2.0-prerelease.11",
         "hoist-non-react-statics": "^3.3.2",
         "lodash": "^4.17.21",
-        "tslib": "^2.7.0",
-        "victory-area": "^37.3.4",
-        "victory-axis": "^37.3.4",
-        "victory-bar": "^37.3.4",
-        "victory-box-plot": "^37.3.4",
-        "victory-chart": "^37.3.4",
-        "victory-core": "^37.3.4",
-        "victory-create-container": "^37.3.4",
-        "victory-cursor-container": "^37.3.4",
-        "victory-group": "^37.3.4",
-        "victory-legend": "^37.3.4",
-        "victory-line": "^37.3.4",
-        "victory-pie": "^37.3.4",
-        "victory-scatter": "^37.3.4",
-        "victory-stack": "^37.3.4",
-        "victory-tooltip": "^37.3.4",
-        "victory-voronoi-container": "^37.3.4",
-        "victory-zoom-container": "^37.3.4"
+        "tslib": "^2.8.1"
       },
       "peerDependencies": {
+        "echarts": "^5.6.0",
         "react": "^17 || ^18",
-        "react-dom": "^17 || ^18"
+        "react-dom": "^17 || ^18",
+        "victory-area": "^37.3.6",
+        "victory-axis": "^37.3.6",
+        "victory-bar": "^37.3.6",
+        "victory-box-plot": "^37.3.6",
+        "victory-chart": "^37.3.6",
+        "victory-core": "^37.3.6",
+        "victory-create-container": "^37.3.6",
+        "victory-cursor-container": "^37.3.6",
+        "victory-group": "^37.3.6",
+        "victory-legend": "^37.3.6",
+        "victory-line": "^37.3.6",
+        "victory-pie": "^37.3.6",
+        "victory-scatter": "^37.3.6",
+        "victory-stack": "^37.3.6",
+        "victory-tooltip": "^37.3.6",
+        "victory-voronoi-container": "^37.3.6",
+        "victory-zoom-container": "^37.3.6"
+      },
+      "peerDependenciesMeta": {
+        "echarts": {
+          "optional": true
+        },
+        "victory-area": {
+          "optional": true
+        },
+        "victory-axis": {
+          "optional": true
+        },
+        "victory-bar": {
+          "optional": true
+        },
+        "victory-box-plot": {
+          "optional": true
+        },
+        "victory-chart": {
+          "optional": true
+        },
+        "victory-core": {
+          "optional": true
+        },
+        "victory-create-container": {
+          "optional": true
+        },
+        "victory-cursor-container": {
+          "optional": true
+        },
+        "victory-group": {
+          "optional": true
+        },
+        "victory-legend": {
+          "optional": true
+        },
+        "victory-line": {
+          "optional": true
+        },
+        "victory-pie": {
+          "optional": true
+        },
+        "victory-scatter": {
+          "optional": true
+        },
+        "victory-stack": {
+          "optional": true
+        },
+        "victory-tooltip": {
+          "optional": true
+        },
+        "victory-voronoi-container": {
+          "optional": true
+        },
+        "victory-zoom-container": {
+          "optional": true
+        }
       }
     },
     "node_modules/@patternfly/react-component-groups": {
-      "version": "5.5.5",
-      "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-5.5.5.tgz",
-      "integrity": "sha512-Cgp1XxyBWnEDKAQsP+B7A4wlz6Bcp0bjwSMamdOiCR4GALtpBXXGrv6daAomoVCkL9l3zibcAfm/o9d9XBE9Ag==",
+      "version": "6.2.0-prerelease.7",
+      "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-6.2.0-prerelease.7.tgz",
+      "integrity": "sha512-AeTe47T5+3W1OlpbZp3grG7o4E/N5zL+Glky9pAzmnqQYWq3/EwswA/4lH4aM/J6ATb9C3BZ43n8xMJm0Fp7iA==",
       "license": "MIT",
       "dependencies": {
-        "@patternfly/react-core": "^5.4.1",
-        "@patternfly/react-icons": "^5.4.0",
-        "@patternfly/react-table": "^5.4.1",
+        "@patternfly/react-core": "^6.0.0",
+        "@patternfly/react-icons": "^6.0.0",
+        "@patternfly/react-table": "^6.0.0",
         "clsx": "^2.1.1",
         "react-jss": "^10.10.0"
       },
@@ -2236,17 +2303,17 @@
       }
     },
     "node_modules/@patternfly/react-core": {
-      "version": "5.4.12",
-      "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.4.12.tgz",
-      "integrity": "sha512-RI1xS1JGJdE/FvpkMzawaE21oeTc/e+WbxvFXqZfLhTz60P8RzVG1nYWXDL747Onkz3SYtY79PhQ8nsLeO5sJQ==",
+      "version": "6.2.0-prerelease.34",
+      "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-6.2.0-prerelease.34.tgz",
+      "integrity": "sha512-JfsV54oBfrEt2C07VxnBY/Tf2NNQNB6Siy4WY5is2LLt8Kwe6YHb9G6c/gx6pQJmvLCjcB9CrXHSHjCovYTh5g==",
       "license": "MIT",
       "dependencies": {
-        "@patternfly/react-icons": "^5.4.2",
-        "@patternfly/react-styles": "^5.4.1",
-        "@patternfly/react-tokens": "^5.4.1",
-        "focus-trap": "7.6.2",
-        "react-dropzone": "^14.2.3",
-        "tslib": "^2.7.0"
+        "@patternfly/react-icons": "^6.2.0-prerelease.12",
+        "@patternfly/react-styles": "^6.2.0-prerelease.11",
+        "@patternfly/react-tokens": "^6.2.0-prerelease.11",
+        "focus-trap": "7.6.4",
+        "react-dropzone": "^14.3.5",
+        "tslib": "^2.8.1"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -2254,9 +2321,9 @@
       }
     },
     "node_modules/@patternfly/react-icons": {
-      "version": "5.4.2",
-      "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.4.2.tgz",
-      "integrity": "sha512-CMQ5oHYzW6TPVTs2jpNJmP2vGCAKR/YeTPwHGO9dLkAUej1IcIxtCCWK2Fdo2UJsnBjuZihasyw2b6ehvbUm9Q==",
+      "version": "6.2.0-prerelease.12",
+      "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-6.2.0-prerelease.12.tgz",
+      "integrity": "sha512-L1bHrugPbQj6FrNZANbKvV1sYoEcIFo/IJmgRXFc8WW4pIm21IZRknLcefgjeVySQKJ98IQGjQ/557SWXqEDpg==",
       "license": "MIT",
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -2264,23 +2331,23 @@
       }
     },
     "node_modules/@patternfly/react-styles": {
-      "version": "5.4.1",
-      "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.4.1.tgz",
-      "integrity": "sha512-XA8PXksD8uiA3RTwxdUwJXOCf+V6sVd+2HKapWAdRLvtSV+Sdk7NgCvalb4IAQncsddLopjPQD8gAHA298+N8w==",
+      "version": "6.2.0-prerelease.11",
+      "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-6.2.0-prerelease.11.tgz",
+      "integrity": "sha512-DOIk+nwpStcUEmbDD//cPz2C1Gy8An8zaH9G69URgZy17TGneMSc3xsMzpmOFAgWtEXL/urljGGjIPm6ZmsPMQ==",
       "license": "MIT"
     },
     "node_modules/@patternfly/react-table": {
-      "version": "5.4.13",
-      "resolved": "https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.4.13.tgz",
-      "integrity": "sha512-cYw+pgpZXKGg3dZxudteUURqmj5O0ec7aNE80NLqFTcnI0MAOnfrFzCNApXJErn+MjD0VolMcC+H48eaRkT8TA==",
+      "version": "6.2.0-prerelease.35",
+      "resolved": "https://registry.npmjs.org/@patternfly/react-table/-/react-table-6.2.0-prerelease.35.tgz",
+      "integrity": "sha512-i8iIsgMXDIiqVQ9CuBk0dB9jUnU5VTxuMXlbwJzqH3MhfvjxMvahfpEHSaTL8Nv3oq/k9ULhZbJstXbewrRMag==",
       "license": "MIT",
       "dependencies": {
-        "@patternfly/react-core": "^5.4.12",
-        "@patternfly/react-icons": "^5.4.2",
-        "@patternfly/react-styles": "^5.4.1",
-        "@patternfly/react-tokens": "^5.4.1",
+        "@patternfly/react-core": "^6.2.0-prerelease.34",
+        "@patternfly/react-icons": "^6.2.0-prerelease.12",
+        "@patternfly/react-styles": "^6.2.0-prerelease.11",
+        "@patternfly/react-tokens": "^6.2.0-prerelease.11",
         "lodash": "^4.17.21",
-        "tslib": "^2.7.0"
+        "tslib": "^2.8.1"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -2288,9 +2355,9 @@
       }
     },
     "node_modules/@patternfly/react-tokens": {
-      "version": "5.4.1",
-      "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.4.1.tgz",
-      "integrity": "sha512-eygdHE7Krta1mijAv/E8RHiKIgysD0eeNTo8EXUYC8/M4e5K6sqpr2p6rQBF8QiRMN8FnbXvZT3K2OQ28pYt9Q==",
+      "version": "6.2.0-prerelease.11",
+      "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-6.2.0-prerelease.11.tgz",
+      "integrity": "sha512-1JobJw5+ppWMJgi68Z+D0vAto2ACz8w87QPNvhsOs0I5lWIFr9DI/6e/i/3sXVDMeEbmnYnldK+/a9o+f1qo4g==",
       "license": "MIT"
     },
     "node_modules/@pkgjs/parseargs": {
@@ -2367,41 +2434,42 @@
       }
     },
     "node_modules/@redhat-cloud-services/frontend-components": {
-      "version": "5.2.3",
-      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-5.2.3.tgz",
-      "integrity": "sha512-CN1cclfZU9B2mXwLAtqJDsvXpEcQQV2jYBcGg+OZBPBiX0qJ+dpWqF44zMapRMx5xOhc3olc4YML1a52D2OFYw==",
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-6.0.2.tgz",
+      "integrity": "sha512-T/ULBO6QkfJ354O2GDgbZTof5RzxV4SHbwVAgKlVOUNcKKkPdHKPzIbfwi4TWM8/AB+gU+EqjofE3w3UPdbhkg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@patternfly/react-component-groups": "^5.5.5",
-        "@redhat-cloud-services/frontend-components-utilities": "^5.0.4",
-        "@redhat-cloud-services/types": "^1.0.19",
+        "@patternfly/react-component-groups": "^6.0.0",
+        "@redhat-cloud-services/frontend-components-utilities": "^6.0.0",
+        "@redhat-cloud-services/types": "^2.0.0",
         "@scalprum/core": "^0.8.1",
         "@scalprum/react-core": "^0.9.1",
         "classnames": "^2.2.5",
         "sanitize-html": "^2.13.1"
       },
       "peerDependencies": {
-        "@patternfly/react-core": "^5.4.11",
-        "@patternfly/react-icons": "^5.4.2",
-        "@patternfly/react-table": "^5.4.12",
+        "@patternfly/react-core": "^6.0.0",
+        "@patternfly/react-icons": "^6.0.0",
+        "@patternfly/react-table": "^6.0.0",
+        "@patternfly/react-tokens": "^6.0.0",
         "lodash": "^4.17.15",
         "prop-types": "^15.6.2",
         "react": "^18.2.0",
         "react-content-loader": "^6.2.0",
         "react-dom": "^18.2.0",
-        "react-redux": "^7.0.0",
+        "react-redux": "^7.0.0 || ^8.0.0 || ^9.0.0",
         "react-router-dom": "^5.0.0 || ^6.0.0"
       }
     },
     "node_modules/@redhat-cloud-services/frontend-components-config": {
-      "version": "6.4.5",
-      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.4.5.tgz",
-      "integrity": "sha512-soNkbbCij8J9Vw44S3vREt2Gt6PFQ4nHE9iLI+BzaCt7Psab1zSq/G7iDgXntVhLr6X2JtfPRZl8xZjuYJs5tA==",
+      "version": "6.4.8",
+      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.4.8.tgz",
+      "integrity": "sha512-/qaCh4agr27ffO9DzKuHzKPFIPFUGwrwZ+2vRoygzn3gHZlAHbdkVkkmjwlXsUKPSuZkVY0gCyAdRxy4TqdJUg==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
         "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
-        "@redhat-cloud-services/frontend-components-config-utilities": "^4.1.3",
+        "@redhat-cloud-services/frontend-components-config-utilities": "^4.1.6",
         "@redhat-cloud-services/tsc-transform-imports": "^1.0.21",
         "@swc/core": "^1.3.76",
         "assert": "^2.0.0",
@@ -2448,9 +2516,9 @@
       }
     },
     "node_modules/@redhat-cloud-services/frontend-components-config-utilities": {
-      "version": "4.1.4",
-      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-4.1.4.tgz",
-      "integrity": "sha512-J0/4xPzEXtCxwvRQ5P20v/dGUjD7/I1ORr33gTSp/kK8bMHHz9rbzgUdJvNvWCZCA6KmgtV9g4yWISlSopbAcg==",
+      "version": "4.1.6",
+      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-4.1.6.tgz",
+      "integrity": "sha512-cO9ssCR9lpbT4PuPPwD5Ug96O/d0FyA5lPuouWUxwwdHr+DeZU8ejeCW/PaslHwv/9hfEkbckEcRn9lk0Q8lhw==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
@@ -2506,9 +2574,9 @@
       "license": "MIT"
     },
     "node_modules/@redhat-cloud-services/frontend-components-config-utilities/node_modules/readdirp": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz",
-      "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==",
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+      "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -2520,32 +2588,32 @@
       }
     },
     "node_modules/@redhat-cloud-services/frontend-components-notifications": {
-      "version": "4.1.14",
-      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-notifications/-/frontend-components-notifications-4.1.14.tgz",
-      "integrity": "sha512-7RZYa/g7fRB+cIfVSPrdLLlG4/90dQ5Zk1hgDmiKMjqGLNqz4pzucarhEJdcH+JV/tVxifWkrgnazf3msvanwQ==",
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-notifications/-/frontend-components-notifications-5.0.2.tgz",
+      "integrity": "sha512-EOsxzFezul/XS2aIc6U6JFx9zapg1q5caZJM1xoQRjG7qJ2LCZAxShFALlgQDAbG3HtDAInAxOy+LWrosyYAvg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@redhat-cloud-services/frontend-components": "^5.0.5",
-        "@redhat-cloud-services/frontend-components-utilities": "^5.0.4",
+        "@redhat-cloud-services/frontend-components": "^6.0.0",
+        "@redhat-cloud-services/frontend-components-utilities": "^6.0.0",
         "redux-promise-middleware": "6.1.3"
       },
       "peerDependencies": {
-        "@patternfly/react-core": "^5.0.0",
-        "@patternfly/react-icons": "^5.0.0",
+        "@patternfly/react-core": "^6.0.0",
+        "@patternfly/react-icons": "^6.0.0",
         "prop-types": "^15.6.2",
         "react": "^18.2.0",
         "react-dom": "^18.2.0",
-        "react-redux": "^7.2.9",
+        "react-redux": "^7.2.9 || ^8.0.0 || ^9.0.0",
         "redux": ">=4.2.0"
       }
     },
     "node_modules/@redhat-cloud-services/frontend-components-translations": {
-      "version": "3.2.18",
-      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-translations/-/frontend-components-translations-3.2.18.tgz",
-      "integrity": "sha512-5zKTZnFUqMcPf/hZlgANbKC6w0PS4q8Wit3ykkzCHIEeR0VHuySeyH3PoB7jSoeQHtbe51fqLM+ZMWeYLAmyfw==",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-translations/-/frontend-components-translations-4.0.1.tgz",
+      "integrity": "sha512-I1f5G3YD9+OZcskuACGTm3ePBJbP5Ov++J+yIJmrEmbYdr5UOopDI2PCL8AIQvlCR3XcLGzpiGATlagP3EI7NA==",
       "license": "Apache-2.0",
       "optionalDependencies": {
-        "@redhat-cloud-services/frontend-components-utilities": "^5.0.4"
+        "@redhat-cloud-services/frontend-components-utilities": "^6.0.0"
       },
       "peerDependencies": {
         "prop-types": "^15.6.2",
@@ -2555,13 +2623,13 @@
       }
     },
     "node_modules/@redhat-cloud-services/frontend-components-utilities": {
-      "version": "5.0.10",
-      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-utilities/-/frontend-components-utilities-5.0.10.tgz",
-      "integrity": "sha512-fO4qJGwSJk61O+H1CJ6ss/LOmEQV9ihM7gWX6oQqrgtevG/pS95JSHfVJ/AjYUKkkScM/12kMmHvdKXTV3QlZA==",
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-utilities/-/frontend-components-utilities-6.0.2.tgz",
+      "integrity": "sha512-1YH75PeABT190fY33Bh6aj+wJumQVwAjSd5Txw4/Ky80wpTdjEDr2aOyz2gWWhXRDFCwOeRIbABUwOEuZtvuUg==",
       "license": "Apache-2.0",
       "dependencies": {
         "@redhat-cloud-services/rbac-client": "^1.0.111 || 2.x",
-        "@redhat-cloud-services/types": "^1.0.19",
+        "@redhat-cloud-services/types": "^2.0.0",
         "@sentry/browser": "^7.119.1",
         "awesome-debounce-promise": "^2.1.0",
         "axios": "^0.28.1 || ^1.7.0",
@@ -2571,14 +2639,31 @@
         "react-content-loader": "^6.2.0"
       },
       "peerDependencies": {
-        "@patternfly/react-core": "^5.0.0",
-        "@patternfly/react-table": "^5.0.0",
+        "@patternfly/react-core": "^6.0.0",
+        "@patternfly/react-table": "^6.0.0",
         "react": "^18.2.0",
         "react-dom": "^18.2.0",
-        "react-redux": "^7.0.0",
+        "react-redux": "^7.0.0 || ^8.0.0 || ^9.0.0",
         "react-router-dom": "^5.0.0 || ^6.0.0"
       }
     },
+    "node_modules/@redhat-cloud-services/frontend-components/node_modules/@patternfly/react-component-groups": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-6.1.0.tgz",
+      "integrity": "sha512-8RkQv9wQk+D+nUMFtl4uk0ddMvxZ/+jFwnnXe2fw/BulouDVbpKRI24C1S8i1OQHr3++CbocBmmWRV0iw9Kvlw==",
+      "license": "MIT",
+      "dependencies": {
+        "@patternfly/react-core": "^6.0.0",
+        "@patternfly/react-icons": "^6.0.0",
+        "@patternfly/react-table": "^6.0.0",
+        "clsx": "^2.1.1",
+        "react-jss": "^10.10.0"
+      },
+      "peerDependencies": {
+        "react": "^17 || ^18",
+        "react-dom": "^17 || ^18"
+      }
+    },
     "node_modules/@redhat-cloud-services/javascript-clients-shared": {
       "version": "1.2.7",
       "resolved": "https://registry.npmjs.org/@redhat-cloud-services/javascript-clients-shared/-/javascript-clients-shared-1.2.7.tgz",
@@ -2662,15 +2747,15 @@
       }
     },
     "node_modules/@redhat-cloud-services/types": {
-      "version": "1.0.19",
-      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-1.0.19.tgz",
-      "integrity": "sha512-rRAIqLdtqZsBjY//kXfCY8VHEvw1LQxjdLaMRyr1qyGXZZTopl5itFcyOIJkQfeLuBYVibork1pYUI6Czxy3EQ==",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-2.0.0.tgz",
+      "integrity": "sha512-T9KvjntxMtRkNcyYCKB9OktIy7hhy24Y4n1nDZgGsysSnfWOrnmsrLUI7pyrwqsRVzjIjI3oYf7qH7DE5LcFag==",
       "license": "Apache-2.0"
     },
     "node_modules/@reduxjs/toolkit": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.5.1.tgz",
-      "integrity": "sha512-UHhy3p0oUpdhnSxyDjaRDYaw8Xra75UiLbCiRozVPHjfDwNYkh0TsVm/1OmTW8Md+iDAJmYPWUKMvsMc2GtpNg==",
+      "version": "2.6.1",
+      "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.6.1.tgz",
+      "integrity": "sha512-SSlIqZNYhqm/oMkXbtofwZSt9lrncblzo6YcZ9zoX+zLngRBrCOjK4lNLdkNucJF58RHOWrD9txT3bT3piH7Zw==",
       "license": "MIT",
       "dependencies": {
         "immer": "^10.0.3",
@@ -2882,19 +2967,6 @@
       "dev": true,
       "license": "MIT"
     },
-    "node_modules/@sindresorhus/merge-streams": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
-      "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=18"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/@sinonjs/commons": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
@@ -2916,15 +2988,15 @@
       }
     },
     "node_modules/@swc/core": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.12.tgz",
-      "integrity": "sha512-+iUL0PYpPm6N9AdV1wvafakvCqFegQus1aoEDxgFsv3/uNVNIyRaupf/v/Zkp5hbep2EzhtoJR0aiJIzDbXWHg==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.13.tgz",
+      "integrity": "sha512-9BXdYz12Wl0zWmZ80PvtjBWeg2ncwJ9L5WJzjhN6yUTZWEV/AwAdVdJnIEp4pro3WyKmAaMxcVOSbhuuOZco5g==",
       "dev": true,
       "hasInstallScript": true,
       "license": "Apache-2.0",
       "dependencies": {
         "@swc/counter": "^0.1.3",
-        "@swc/types": "^0.1.17"
+        "@swc/types": "^0.1.19"
       },
       "engines": {
         "node": ">=10"
@@ -2934,16 +3006,16 @@
         "url": "https://opencollective.com/swc"
       },
       "optionalDependencies": {
-        "@swc/core-darwin-arm64": "1.10.12",
-        "@swc/core-darwin-x64": "1.10.12",
-        "@swc/core-linux-arm-gnueabihf": "1.10.12",
-        "@swc/core-linux-arm64-gnu": "1.10.12",
-        "@swc/core-linux-arm64-musl": "1.10.12",
-        "@swc/core-linux-x64-gnu": "1.10.12",
-        "@swc/core-linux-x64-musl": "1.10.12",
-        "@swc/core-win32-arm64-msvc": "1.10.12",
-        "@swc/core-win32-ia32-msvc": "1.10.12",
-        "@swc/core-win32-x64-msvc": "1.10.12"
+        "@swc/core-darwin-arm64": "1.11.13",
+        "@swc/core-darwin-x64": "1.11.13",
+        "@swc/core-linux-arm-gnueabihf": "1.11.13",
+        "@swc/core-linux-arm64-gnu": "1.11.13",
+        "@swc/core-linux-arm64-musl": "1.11.13",
+        "@swc/core-linux-x64-gnu": "1.11.13",
+        "@swc/core-linux-x64-musl": "1.11.13",
+        "@swc/core-win32-arm64-msvc": "1.11.13",
+        "@swc/core-win32-ia32-msvc": "1.11.13",
+        "@swc/core-win32-x64-msvc": "1.11.13"
       },
       "peerDependencies": {
         "@swc/helpers": "*"
@@ -2955,9 +3027,9 @@
       }
     },
     "node_modules/@swc/core-darwin-arm64": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.12.tgz",
-      "integrity": "sha512-pOANQegUTAriW7jq3SSMZGM5l89yLVMs48R0F2UG6UZsH04SiViCnDctOGlA/Sa++25C+rL9MGMYM1jDLylBbg==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.13.tgz",
+      "integrity": "sha512-loSERhLaQ9XDS+5Kdx8cLe2tM1G0HLit8MfehipAcsdctpo79zrRlkW34elOf3tQoVPKUItV0b/rTuhjj8NtHg==",
       "cpu": [
         "arm64"
       ],
@@ -2972,9 +3044,9 @@
       }
     },
     "node_modules/@swc/core-darwin-x64": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.12.tgz",
-      "integrity": "sha512-m4kbpIDDsN1FrwfNQMU+FTrss356xsXvatLbearwR+V0lqOkjLBP0VmRvQfHEg+uy13VPyrT9gj4HLoztlci7w==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.13.tgz",
+      "integrity": "sha512-uSA4UwgsDCIysUPfPS8OrQTH2h9spO7IYFd+1NB6dJlVGUuR6jLKuMBOP1IeLeax4cGHayvkcwSJ3OvxHwgcZQ==",
       "cpu": [
         "x64"
       ],
@@ -2989,9 +3061,9 @@
       }
     },
     "node_modules/@swc/core-linux-arm-gnueabihf": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.12.tgz",
-      "integrity": "sha512-OY9LcupgqEu8zVK+rJPes6LDJJwPDmwaShU96beTaxX2K6VrXbpwm5WbPS/8FfQTsmpnuA7dCcMPUKhNgmzTrQ==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.13.tgz",
+      "integrity": "sha512-boVtyJzS8g30iQfe8Q46W5QE/cmhKRln/7NMz/5sBP/am2Lce9NL0d05NnFwEWJp1e2AMGHFOdRr3Xg1cDiPKw==",
       "cpu": [
         "arm"
       ],
@@ -3006,9 +3078,9 @@
       }
     },
     "node_modules/@swc/core-linux-arm64-gnu": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.12.tgz",
-      "integrity": "sha512-nJD587rO0N4y4VZszz3xzVr7JIiCzSMhEMWnPjuh+xmPxDBz0Qccpr8xCr1cSxpl1uY7ERkqAGlKr6CwoV5kVg==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.13.tgz",
+      "integrity": "sha512-+IK0jZ84zHUaKtwpV+T+wT0qIUBnK9v2xXD03vARubKF+eUqCsIvcVHXmLpFuap62dClMrhCiwW10X3RbXNlHw==",
       "cpu": [
         "arm64"
       ],
@@ -3023,9 +3095,9 @@
       }
     },
     "node_modules/@swc/core-linux-arm64-musl": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.12.tgz",
-      "integrity": "sha512-oqhSmV+XauSf0C//MoQnVErNUB/5OzmSiUzuazyLsD5pwqKNN+leC3JtRQ/QVzaCpr65jv9bKexT9+I2Tt3xDw==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.13.tgz",
+      "integrity": "sha512-+ukuB8RHD5BHPCUjQwuLP98z+VRfu+NkKQVBcLJGgp0/+w7y0IkaxLY/aKmrAS5ofCNEGqKL+AOVyRpX1aw+XA==",
       "cpu": [
         "arm64"
       ],
@@ -3040,9 +3112,9 @@
       }
     },
     "node_modules/@swc/core-linux-x64-gnu": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.12.tgz",
-      "integrity": "sha512-XldSIHyjD7m1Gh+/8rxV3Ok711ENLI420CU2EGEqSe3VSGZ7pHJvJn9ZFbYpWhsLxPqBYMFjp3Qw+J6OXCPXCA==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.13.tgz",
+      "integrity": "sha512-q9H3WI3U3dfJ34tdv60zc8oTuWvSd5fOxytyAO9Pc5M82Hic3jjWaf2xBekUg07ubnMZpyfnv+MlD+EbUI3Llw==",
       "cpu": [
         "x64"
       ],
@@ -3057,9 +3129,9 @@
       }
     },
     "node_modules/@swc/core-linux-x64-musl": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.12.tgz",
-      "integrity": "sha512-wvPXzJxzPgTqhyp1UskOx1hRTtdWxlyFD1cGWOxgLsMik0V9xKRgqKnMPv16Nk7L9xl6quQ6DuUHj9ID7L3oVw==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.13.tgz",
+      "integrity": "sha512-9aaZnnq2pLdTbAzTSzy/q8dr7Woy3aYIcQISmw1+Q2/xHJg5y80ZzbWSWKYca/hKonDMjIbGR6dp299I5J0aeA==",
       "cpu": [
         "x64"
       ],
@@ -3074,9 +3146,9 @@
       }
     },
     "node_modules/@swc/core-win32-arm64-msvc": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.12.tgz",
-      "integrity": "sha512-TUYzWuu1O7uyIcRfxdm6Wh1u+gNnrW5M1DUgDOGZLsyQzgc2Zjwfh2llLhuAIilvCVg5QiGbJlpibRYJ/8QGsg==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.13.tgz",
+      "integrity": "sha512-n3QZmDewkHANcoHvtwvA6yJbmS4XJf0MBMmwLZoKDZ2dOnC9D/jHiXw7JOohEuzYcpLoL5tgbqmjxa3XNo9Oow==",
       "cpu": [
         "arm64"
       ],
@@ -3091,9 +3163,9 @@
       }
     },
     "node_modules/@swc/core-win32-ia32-msvc": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.12.tgz",
-      "integrity": "sha512-4Qrw+0Xt+Fe2rz4OJ/dEPMeUf/rtuFWWAj/e0vL7J5laUHirzxawLRE5DCJLQTarOiYR6mWnmadt9o3EKzV6Xg==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.13.tgz",
+      "integrity": "sha512-wM+Nt4lc6YSJFthCx3W2dz0EwFNf++j0/2TQ0Js9QLJuIxUQAgukhNDVCDdq8TNcT0zuA399ALYbvj5lfIqG6g==",
       "cpu": [
         "ia32"
       ],
@@ -3108,9 +3180,9 @@
       }
     },
     "node_modules/@swc/core-win32-x64-msvc": {
-      "version": "1.10.12",
-      "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.12.tgz",
-      "integrity": "sha512-YiloZXLW7rUxJpALwHXaGjVaAEn+ChoblG7/3esque+Y7QCyheoBUJp2DVM1EeVA43jBfZ8tvYF0liWd9Tpz1A==",
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.13.tgz",
+      "integrity": "sha512-+X5/uW3s1L5gK7wAo0E27YaAoidJDo51dnfKSfU7gF3mlEUuWH8H1bAy5OTt2mU4eXtfsdUMEVXSwhDlLtQkuA==",
       "cpu": [
         "x64"
       ],
@@ -3150,9 +3222,9 @@
       }
     },
     "node_modules/@swc/types": {
-      "version": "0.1.17",
-      "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz",
-      "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==",
+      "version": "0.1.19",
+      "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.19.tgz",
+      "integrity": "sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
@@ -3821,488 +3893,104 @@
     "node_modules/@types/serve-index": {
       "version": "1.9.4",
       "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
-      "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@types/express": "*"
-      }
-    },
-    "node_modules/@types/serve-static": {
-      "version": "1.15.7",
-      "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
-      "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@types/http-errors": "*",
-        "@types/node": "*",
-        "@types/send": "*"
-      }
-    },
-    "node_modules/@types/sockjs": {
-      "version": "0.3.36",
-      "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
-      "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@types/node": "*"
-      }
-    },
-    "node_modules/@types/stack-utils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
-      "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/@types/tough-cookie": {
-      "version": "4.0.5",
-      "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
-      "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/@types/unist": {
-      "version": "2.0.11",
-      "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
-      "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/@types/use-sync-external-store": {
-      "version": "0.0.6",
-      "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
-      "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
-      "license": "MIT"
-    },
-    "node_modules/@types/ws": {
-      "version": "8.5.13",
-      "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz",
-      "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@types/node": "*"
-      }
-    },
-    "node_modules/@types/yargs": {
-      "version": "17.0.33",
-      "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
-      "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@types/yargs-parser": "*"
-      }
-    },
-    "node_modules/@types/yargs-parser": {
-      "version": "21.0.3",
-      "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
-      "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz",
-      "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@eslint-community/regexpp": "^4.10.0",
-        "@typescript-eslint/scope-manager": "8.23.0",
-        "@typescript-eslint/type-utils": "8.23.0",
-        "@typescript-eslint/utils": "8.23.0",
-        "@typescript-eslint/visitor-keys": "8.23.0",
-        "graphemer": "^1.4.0",
-        "ignore": "^5.3.1",
-        "natural-compare": "^1.4.0",
-        "ts-api-utils": "^2.0.1"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
-        "eslint": "^8.57.0 || ^9.0.0",
-        "typescript": ">=4.8.4 <5.8.0"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz",
-      "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/visitor-keys": "8.23.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz",
-      "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz",
-      "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/visitor-keys": "8.23.0",
-        "debug": "^4.3.4",
-        "fast-glob": "^3.3.2",
-        "is-glob": "^4.0.3",
-        "minimatch": "^9.0.4",
-        "semver": "^7.6.0",
-        "ts-api-utils": "^2.0.1"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "typescript": ">=4.8.4 <5.8.0"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz",
-      "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "@typescript-eslint/scope-manager": "8.23.0",
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/typescript-estree": "8.23.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "eslint": "^8.57.0 || ^9.0.0",
-        "typescript": ">=4.8.4 <5.8.0"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz",
-      "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "eslint-visitor-keys": "^4.2.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
-      "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
-      "dev": true,
-      "license": "Apache-2.0",
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": {
-      "version": "9.0.5",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
-      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "brace-expansion": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
-    "node_modules/@typescript-eslint/parser": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz",
-      "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/scope-manager": "8.23.0",
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/typescript-estree": "8.23.0",
-        "@typescript-eslint/visitor-keys": "8.23.0",
-        "debug": "^4.3.4"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "eslint": "^8.57.0 || ^9.0.0",
-        "typescript": ">=4.8.4 <5.8.0"
-      }
-    },
-    "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz",
-      "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/visitor-keys": "8.23.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz",
-      "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz",
-      "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/visitor-keys": "8.23.0",
-        "debug": "^4.3.4",
-        "fast-glob": "^3.3.2",
-        "is-glob": "^4.0.3",
-        "minimatch": "^9.0.4",
-        "semver": "^7.6.0",
-        "ts-api-utils": "^2.0.1"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "typescript": ">=4.8.4 <5.8.0"
-      }
-    },
-    "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz",
-      "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "eslint-visitor-keys": "^4.2.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
-      "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
-      "dev": true,
-      "license": "Apache-2.0",
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
-      "version": "9.0.5",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
-      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "brace-expansion": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
+      "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/express": "*"
       }
     },
-    "node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.20.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz",
-      "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==",
+    "node_modules/@types/serve-static": {
+      "version": "1.15.7",
+      "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+      "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.20.0",
-        "@typescript-eslint/visitor-keys": "8.20.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
+        "@types/http-errors": "*",
+        "@types/node": "*",
+        "@types/send": "*"
       }
     },
-    "node_modules/@typescript-eslint/type-utils": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz",
-      "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==",
+    "node_modules/@types/sockjs": {
+      "version": "0.3.36",
+      "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
+      "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/typescript-estree": "8.23.0",
-        "@typescript-eslint/utils": "8.23.0",
-        "debug": "^4.3.4",
-        "ts-api-utils": "^2.0.1"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "eslint": "^8.57.0 || ^9.0.0",
-        "typescript": ">=4.8.4 <5.8.0"
+        "@types/node": "*"
       }
     },
-    "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz",
-      "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==",
+    "node_modules/@types/stack-utils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+      "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/tough-cookie": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+      "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/unist": {
+      "version": "2.0.11",
+      "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+      "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/use-sync-external-store": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
+      "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
+      "license": "MIT"
+    },
+    "node_modules/@types/ws": {
+      "version": "8.5.13",
+      "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz",
+      "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/visitor-keys": "8.23.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
+        "@types/node": "*"
       }
     },
-    "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz",
-      "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==",
+    "node_modules/@types/yargs": {
+      "version": "17.0.33",
+      "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
+      "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
       "dev": true,
       "license": "MIT",
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
+      "dependencies": {
+        "@types/yargs-parser": "*"
       }
     },
-    "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz",
-      "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==",
+    "node_modules/@types/yargs-parser": {
+      "version": "21.0.3",
+      "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+      "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@typescript-eslint/eslint-plugin": {
+      "version": "8.27.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz",
+      "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/visitor-keys": "8.23.0",
-        "debug": "^4.3.4",
-        "fast-glob": "^3.3.2",
-        "is-glob": "^4.0.3",
-        "minimatch": "^9.0.4",
-        "semver": "^7.6.0",
+        "@eslint-community/regexpp": "^4.10.0",
+        "@typescript-eslint/scope-manager": "8.27.0",
+        "@typescript-eslint/type-utils": "8.27.0",
+        "@typescript-eslint/utils": "8.27.0",
+        "@typescript-eslint/visitor-keys": "8.27.0",
+        "graphemer": "^1.4.0",
+        "ignore": "^5.3.1",
+        "natural-compare": "^1.4.0",
         "ts-api-utils": "^2.0.1"
       },
       "engines": {
@@ -4313,20 +4001,23 @@
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "typescript": ">=4.8.4 <5.8.0"
+        "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": ">=4.8.4 <5.9.0"
       }
     },
-    "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz",
-      "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==",
+    "node_modules/@typescript-eslint/parser": {
+      "version": "8.27.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz",
+      "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "@typescript-eslint/scope-manager": "8.23.0",
-        "@typescript-eslint/types": "8.23.0",
-        "@typescript-eslint/typescript-estree": "8.23.0"
+        "@typescript-eslint/scope-manager": "8.27.0",
+        "@typescript-eslint/types": "8.27.0",
+        "@typescript-eslint/typescript-estree": "8.27.0",
+        "@typescript-eslint/visitor-keys": "8.27.0",
+        "debug": "^4.3.4"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4337,18 +4028,18 @@
       },
       "peerDependencies": {
         "eslint": "^8.57.0 || ^9.0.0",
-        "typescript": ">=4.8.4 <5.8.0"
+        "typescript": ">=4.8.4 <5.9.0"
       }
     },
-    "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.23.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz",
-      "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==",
+    "node_modules/@typescript-eslint/scope-manager": {
+      "version": "8.27.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz",
+      "integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.23.0",
-        "eslint-visitor-keys": "^4.2.0"
+        "@typescript-eslint/types": "8.27.0",
+        "@typescript-eslint/visitor-keys": "8.27.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4358,49 +4049,34 @@
         "url": "https://opencollective.com/typescript-eslint"
       }
     },
-    "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+    "node_modules/@typescript-eslint/type-utils": {
+      "version": "8.27.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz",
+      "integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
-      "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
-      "dev": true,
-      "license": "Apache-2.0",
+        "@typescript-eslint/typescript-estree": "8.27.0",
+        "@typescript-eslint/utils": "8.27.0",
+        "debug": "^4.3.4",
+        "ts-api-utils": "^2.0.1"
+      },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       },
       "funding": {
-        "url": "https://opencollective.com/eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": {
-      "version": "9.0.5",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
-      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "brace-expansion": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=16 || 14 >=14.17"
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
       },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
+      "peerDependencies": {
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": ">=4.8.4 <5.9.0"
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "8.20.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz",
-      "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==",
+      "version": "8.27.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.27.0.tgz",
+      "integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -4412,20 +4088,20 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "8.20.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz",
-      "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==",
+      "version": "8.27.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz",
+      "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.20.0",
-        "@typescript-eslint/visitor-keys": "8.20.0",
+        "@typescript-eslint/types": "8.27.0",
+        "@typescript-eslint/visitor-keys": "8.27.0",
         "debug": "^4.3.4",
         "fast-glob": "^3.3.2",
         "is-glob": "^4.0.3",
         "minimatch": "^9.0.4",
         "semver": "^7.6.0",
-        "ts-api-utils": "^2.0.0"
+        "ts-api-utils": "^2.0.1"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4435,7 +4111,7 @@
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "typescript": ">=4.8.4 <5.8.0"
+        "typescript": ">=4.8.4 <5.9.0"
       }
     },
     "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
@@ -4465,16 +4141,16 @@
       }
     },
     "node_modules/@typescript-eslint/utils": {
-      "version": "8.20.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz",
-      "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==",
+      "version": "8.27.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz",
+      "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.4.0",
-        "@typescript-eslint/scope-manager": "8.20.0",
-        "@typescript-eslint/types": "8.20.0",
-        "@typescript-eslint/typescript-estree": "8.20.0"
+        "@typescript-eslint/scope-manager": "8.27.0",
+        "@typescript-eslint/types": "8.27.0",
+        "@typescript-eslint/typescript-estree": "8.27.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4485,17 +4161,17 @@
       },
       "peerDependencies": {
         "eslint": "^8.57.0 || ^9.0.0",
-        "typescript": ">=4.8.4 <5.8.0"
+        "typescript": ">=4.8.4 <5.9.0"
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.20.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz",
-      "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==",
+      "version": "8.27.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz",
+      "integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.20.0",
+        "@typescript-eslint/types": "8.27.0",
         "eslint-visitor-keys": "^4.2.0"
       },
       "engines": {
@@ -4520,15 +4196,15 @@
       }
     },
     "node_modules/@unleash/proxy-client-react": {
-      "version": "4.5.1",
-      "resolved": "https://registry.npmjs.org/@unleash/proxy-client-react/-/proxy-client-react-4.5.1.tgz",
-      "integrity": "sha512-vo9fcAbSM7SItBF0XuKqD/nderEfXCA5EC30ozm1HHWZr2tE4RxodsN26Nh1rGqgDkNVr2MssMX13p9G4P2aSw==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/@unleash/proxy-client-react/-/proxy-client-react-5.0.0.tgz",
+      "integrity": "sha512-f00yLXSdA2ifB1RvqD1T4Il3Yk0CjVibKYS4cdOeLb6LhyH4kIeyJwtQO1slUrKRUy8VBt8Hmm2Rh1JEGlkfSQ==",
       "license": "Apache-2.0",
       "engines": {
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "unleash-proxy-client": "^3.7.2"
+        "unleash-proxy-client": "^3.7.3"
       }
     },
     "node_modules/@webassemblyjs/ast": {
@@ -5287,9 +4963,9 @@
       }
     },
     "node_modules/axios": {
-      "version": "1.7.9",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
-      "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
+      "version": "1.8.4",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz",
+      "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==",
       "license": "MIT",
       "dependencies": {
         "follow-redirects": "^1.15.6",
@@ -6436,18 +6112,17 @@
       "license": "MIT"
     },
     "node_modules/copy-webpack-plugin": {
-      "version": "12.0.2",
-      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz",
-      "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==",
+      "version": "13.0.0",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.0.tgz",
+      "integrity": "sha512-FgR/h5a6hzJqATDGd9YG41SeDViH+0bkHn6WNXCi5zKAZkeESeSxLySSsFLHqLEVCh0E+rITmCf0dusXWYukeQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "fast-glob": "^3.3.2",
         "glob-parent": "^6.0.1",
-        "globby": "^14.0.0",
         "normalize-path": "^3.0.0",
         "schema-utils": "^4.2.0",
-        "serialize-javascript": "^6.0.2"
+        "serialize-javascript": "^6.0.2",
+        "tinyglobby": "^0.2.12"
       },
       "engines": {
         "node": ">= 18.12.0"
@@ -7765,22 +7440,23 @@
       }
     },
     "node_modules/eslint": {
-      "version": "9.19.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz",
-      "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==",
+      "version": "9.23.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz",
+      "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/regexpp": "^4.12.1",
-        "@eslint/config-array": "^0.19.0",
-        "@eslint/core": "^0.10.0",
-        "@eslint/eslintrc": "^3.2.0",
-        "@eslint/js": "9.19.0",
-        "@eslint/plugin-kit": "^0.2.5",
+        "@eslint/config-array": "^0.19.2",
+        "@eslint/config-helpers": "^0.2.0",
+        "@eslint/core": "^0.12.0",
+        "@eslint/eslintrc": "^3.3.1",
+        "@eslint/js": "9.23.0",
+        "@eslint/plugin-kit": "^0.2.7",
         "@humanfs/node": "^0.16.6",
         "@humanwhocodes/module-importer": "^1.0.1",
-        "@humanwhocodes/retry": "^0.4.1",
+        "@humanwhocodes/retry": "^0.4.2",
         "@types/estree": "^1.0.6",
         "@types/json-schema": "^7.0.15",
         "ajv": "^6.12.4",
@@ -7788,7 +7464,7 @@
         "cross-spawn": "^7.0.6",
         "debug": "^4.3.2",
         "escape-string-regexp": "^4.0.0",
-        "eslint-scope": "^8.2.0",
+        "eslint-scope": "^8.3.0",
         "eslint-visitor-keys": "^4.2.0",
         "espree": "^10.3.0",
         "esquery": "^1.5.0",
@@ -7825,24 +7501,24 @@
       }
     },
     "node_modules/eslint-plugin-formatjs": {
-      "version": "5.2.13",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-5.2.13.tgz",
-      "integrity": "sha512-mxUuVpq2T+59uubEQe2aow3dpnGQ3g5kXZHS/NZt0/GqXjSFWYWxX5vxrrPW+74jPO2RaW8jYwBcfOcSucRzGQ==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-5.3.0.tgz",
+      "integrity": "sha512-Ir8mW0h4/mSxkTiAExn+9d/JykC69ZsrXJsHgGU7mdnmmBHMYczYvkGZt8M9kQaHRoloWLsG32djdZMol6ZyFw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@formatjs/icu-messageformat-parser": "2.11.0",
-        "@formatjs/ts-transformer": "3.13.31",
-        "@types/eslint": "9",
-        "@types/picomatch": "3",
-        "@typescript-eslint/utils": "8.20.0",
+        "@formatjs/icu-messageformat-parser": "2.11.2",
+        "@formatjs/ts-transformer": "3.13.33",
+        "@types/eslint": "^9.6.1",
+        "@types/picomatch": "^3",
+        "@typescript-eslint/utils": "^8.27.0",
         "magic-string": "^0.30.0",
         "picomatch": "2 || 3 || 4",
-        "tslib": "2",
+        "tslib": "^2.8.0",
         "unicode-emoji-utils": "^1.2.0"
       },
       "peerDependencies": {
-        "eslint": "9"
+        "eslint": "^9.23.0"
       }
     },
     "node_modules/eslint-plugin-jest-dom": {
@@ -7871,9 +7547,9 @@
       }
     },
     "node_modules/eslint-plugin-jsdoc": {
-      "version": "50.6.3",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.3.tgz",
-      "integrity": "sha512-NxbJyt1M5zffPcYZ8Nb53/8nnbIScmiLAMdoe0/FAszwb7lcSiX3iYBTsuF7RV84dZZJC8r3NghomrUXsmWvxQ==",
+      "version": "50.6.9",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.9.tgz",
+      "integrity": "sha512-7/nHu3FWD4QRG8tCVqcv+BfFtctUtEDWc29oeDXB4bwmDM2/r1ndl14AG/2DUntdqH7qmpvdemJKwb3R97/QEw==",
       "dev": true,
       "license": "BSD-3-Clause",
       "dependencies": {
@@ -7913,14 +7589,14 @@
       }
     },
     "node_modules/eslint-plugin-prettier": {
-      "version": "5.2.3",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz",
-      "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==",
+      "version": "5.2.4",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.4.tgz",
+      "integrity": "sha512-SFtuYmnhwYCtuCDTKPoK+CEzCnEgKTU2qTLwoCxvrC0MFBTIXo1i6hDYOI4cwHaE5GZtlWmTN3YfucYi7KJwPw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "prettier-linter-helpers": "^1.0.0",
-        "synckit": "^0.9.1"
+        "synckit": "^0.10.2"
       },
       "engines": {
         "node": "^14.18.0 || >=16.0.0"
@@ -7943,6 +7619,36 @@
         }
       }
     },
+    "node_modules/eslint-plugin-prettier/node_modules/@pkgr/core": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.0.tgz",
+      "integrity": "sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/unts"
+      }
+    },
+    "node_modules/eslint-plugin-prettier/node_modules/synckit": {
+      "version": "0.10.3",
+      "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.10.3.tgz",
+      "integrity": "sha512-R1urvuyiTaWfeCggqEvpDJwAlDVdsT9NM+IP//Tk2x7qHCkSvBk/fwFgw/TLAHzZlrAnnazMcRw0ZD8HlYFTEQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@pkgr/core": "^0.2.0",
+        "tslib": "^2.8.1"
+      },
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/unts"
+      }
+    },
     "node_modules/eslint-plugin-react": {
       "version": "7.37.4",
       "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz",
@@ -7977,9 +7683,9 @@
       }
     },
     "node_modules/eslint-plugin-react-hooks": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz",
-      "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz",
+      "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -8082,9 +7788,9 @@
       }
     },
     "node_modules/eslint-scope": {
-      "version": "8.2.0",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz",
-      "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==",
+      "version": "8.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
+      "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
@@ -8473,9 +8179,9 @@
       }
     },
     "node_modules/fastq": {
-      "version": "1.18.0",
-      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz",
-      "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==",
+      "version": "1.19.1",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+      "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
       "dev": true,
       "license": "ISC",
       "dependencies": {
@@ -8505,6 +8211,21 @@
         "bser": "2.1.1"
       }
     },
+    "node_modules/fdir": {
+      "version": "6.4.3",
+      "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+      "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+      "dev": true,
+      "license": "MIT",
+      "peerDependencies": {
+        "picomatch": "^3 || ^4"
+      },
+      "peerDependenciesMeta": {
+        "picomatch": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/figures": {
       "version": "3.2.0",
       "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
@@ -8680,16 +8401,16 @@
       }
     },
     "node_modules/flatted": {
-      "version": "3.3.2",
-      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
-      "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==",
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+      "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
       "dev": true,
       "license": "ISC"
     },
     "node_modules/focus-trap": {
-      "version": "7.6.2",
-      "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.2.tgz",
-      "integrity": "sha512-9FhUxK1hVju2+AiQIDJ5Dd//9R2n2RAfJ0qfhF4IHGHgcoEUTMpbTeG/zbEuwaiYXfuAH6XE0/aCyxDdRM+W5w==",
+      "version": "7.6.4",
+      "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz",
+      "integrity": "sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==",
       "license": "MIT",
       "dependencies": {
         "tabbable": "^6.2.0"
@@ -9116,9 +8837,9 @@
       }
     },
     "node_modules/globals": {
-      "version": "15.14.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz",
-      "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==",
+      "version": "16.0.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz",
+      "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -9145,40 +8866,6 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
-    "node_modules/globby": {
-      "version": "14.0.2",
-      "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz",
-      "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@sindresorhus/merge-streams": "^2.1.0",
-        "fast-glob": "^3.3.2",
-        "ignore": "^5.2.4",
-        "path-type": "^5.0.0",
-        "slash": "^5.1.0",
-        "unicorn-magic": "^0.1.0"
-      },
-      "engines": {
-        "node": ">=18"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/globby/node_modules/path-type": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
-      "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/gopd": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
@@ -9924,15 +9611,15 @@
       }
     },
     "node_modules/intl-messageformat": {
-      "version": "10.7.14",
-      "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.14.tgz",
-      "integrity": "sha512-mMGnE4E1otdEutV5vLUdCxRJygHB5ozUBxsPB5qhitewssrS/qGruq9bmvIRkkGsNeK5ZWLfYRld18UHGTIifQ==",
+      "version": "10.7.16",
+      "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.16.tgz",
+      "integrity": "sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==",
       "license": "BSD-3-Clause",
       "dependencies": {
-        "@formatjs/ecma402-abstract": "2.3.2",
-        "@formatjs/fast-memoize": "2.2.6",
-        "@formatjs/icu-messageformat-parser": "2.11.0",
-        "tslib": "2"
+        "@formatjs/ecma402-abstract": "2.3.4",
+        "@formatjs/fast-memoize": "2.2.7",
+        "@formatjs/icu-messageformat-parser": "2.11.2",
+        "tslib": "^2.8.0"
       }
     },
     "node_modules/ipaddr.js": {
@@ -14150,9 +13837,9 @@
       }
     },
     "node_modules/prettier": {
-      "version": "3.4.2",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz",
-      "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
+      "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
       "dev": true,
       "license": "MIT",
       "bin": {
@@ -14481,23 +14168,23 @@
       "license": "MIT"
     },
     "node_modules/react-intl": {
-      "version": "7.1.5",
-      "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-7.1.5.tgz",
-      "integrity": "sha512-cVvsVdaOnZ85XBXU0Lc2PVGNhGlzl4UBV+aWAGe/zrV5Xr+CEW7izUsAp/fIuwvCsJl9R+aokppm+P7cdhnpUA==",
+      "version": "7.1.9",
+      "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-7.1.9.tgz",
+      "integrity": "sha512-VmM0pD/olitUrzGswkphoPCoVZmaJKNJR0gPKVQfiK5Vy0+l5ucoSsYbTfwu/j0WzYzZl/Gdfr2H7Z22AJ5TBg==",
       "license": "BSD-3-Clause",
       "dependencies": {
-        "@formatjs/ecma402-abstract": "2.3.2",
-        "@formatjs/icu-messageformat-parser": "2.11.0",
-        "@formatjs/intl": "3.1.3",
-        "@types/hoist-non-react-statics": "3",
+        "@formatjs/ecma402-abstract": "2.3.4",
+        "@formatjs/icu-messageformat-parser": "2.11.2",
+        "@formatjs/intl": "3.1.5",
+        "@types/hoist-non-react-statics": "^3.3.1",
         "@types/react": "16 || 17 || 18 || 19",
-        "hoist-non-react-statics": "3",
-        "intl-messageformat": "10.7.14",
-        "tslib": "2"
+        "hoist-non-react-statics": "^3.3.2",
+        "intl-messageformat": "10.7.16",
+        "tslib": "^2.8.0"
       },
       "peerDependencies": {
-        "react": "^16.6.0 || 17 || 18 || 19",
-        "typescript": "5"
+        "react": "16 || 17 || 18 || 19",
+        "typescript": "5.8.2"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -14952,9 +14639,9 @@
       }
     },
     "node_modules/reusify": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
-      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+      "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -15491,9 +15178,9 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.6.3",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
-      "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
+      "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
       "license": "ISC",
       "bin": {
         "semver": "bin/semver.js"
@@ -15863,19 +15550,6 @@
       "dev": true,
       "license": "MIT"
     },
-    "node_modules/slash": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
-      "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=14.16"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/slashes": {
       "version": "3.0.12",
       "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz",
@@ -16644,6 +16318,23 @@
       "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
       "license": "MIT"
     },
+    "node_modules/tinyglobby": {
+      "version": "0.2.12",
+      "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
+      "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "fdir": "^6.4.3",
+        "picomatch": "^4.0.2"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/SuperchupuDev"
+      }
+    },
     "node_modules/tmp": {
       "version": "0.0.33",
       "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -16773,9 +16464,9 @@
       }
     },
     "node_modules/ts-jest": {
-      "version": "29.2.5",
-      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz",
-      "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==",
+      "version": "29.3.0",
+      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.0.tgz",
+      "integrity": "sha512-4bfGBX7Gd1Aqz3SyeDS9O276wEU/BInZxskPrbhZLyv+c1wskDCqDFMJQJLWrIr/fKoAH4GE5dKUlrdyvo+39A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -16786,7 +16477,8 @@
         "json5": "^2.2.3",
         "lodash.memoize": "^4.1.2",
         "make-error": "^1.3.6",
-        "semver": "^7.6.3",
+        "semver": "^7.7.1",
+        "type-fest": "^4.37.0",
         "yargs-parser": "^21.1.1"
       },
       "bin": {
@@ -16821,6 +16513,19 @@
         }
       }
     },
+    "node_modules/ts-jest/node_modules/type-fest": {
+      "version": "4.38.0",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.38.0.tgz",
+      "integrity": "sha512-2dBz5D5ycHIoliLYLi0Q2V7KRaDlH0uWIvmk7TYlAg5slqwiPv1ezJdZm1QEM0xgk29oYWMCbIG7E6gHpvChlg==",
+      "dev": true,
+      "license": "(MIT OR CC0-1.0)",
+      "engines": {
+        "node": ">=16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
     "node_modules/ts-loader": {
       "version": "9.5.2",
       "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz",
@@ -17026,9 +16731,9 @@
       }
     },
     "node_modules/typescript": {
-      "version": "5.7.3",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
-      "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+      "version": "5.8.2",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
+      "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
       "devOptional": true,
       "license": "Apache-2.0",
       "bin": {
@@ -17082,19 +16787,6 @@
       "dev": true,
       "license": "MIT"
     },
-    "node_modules/unicorn-magic": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
-      "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=18"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/union": {
       "version": "0.5.0",
       "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz",
@@ -17132,9 +16824,9 @@
       }
     },
     "node_modules/unleash-proxy-client": {
-      "version": "3.7.2",
-      "resolved": "https://registry.npmjs.org/unleash-proxy-client/-/unleash-proxy-client-3.7.2.tgz",
-      "integrity": "sha512-1SvHsl3kQh1DT9EKMQsN9alOvXZEz9hpxa3mG6QWtTmXJqa6VZi25dQ2U8Y2KAULKg6ARLMUQkod74Fe/pKp0g==",
+      "version": "3.7.3",
+      "resolved": "https://registry.npmjs.org/unleash-proxy-client/-/unleash-proxy-client-3.7.3.tgz",
+      "integrity": "sha512-Cd7ovrhAIpwveNFdtpzs7HO0WeArC2fbjIVGL2Cjza8bHD+jJ1JbSuy3tFuKvvUkbVKq/EGV0RgosEa/3UVLgg==",
       "license": "Apache-2.0",
       "peer": true,
       "dependencies": {
diff --git a/package.json b/package.json
index 76b28b39..92c1625b 100644
--- a/package.json
+++ b/package.json
@@ -49,27 +49,27 @@
     "verify": "npm-run-all build lint test"
   },
   "dependencies": {
-    "@patternfly/patternfly": "5.4.2",
-    "@patternfly/react-charts": "7.4.8",
-    "@patternfly/react-component-groups": "5.5.5",
-    "@patternfly/react-core": "5.4.12",
-    "@patternfly/react-icons": "5.4.2",
-    "@patternfly/react-table": "5.4.13",
-    "@patternfly/react-tokens": "5.4.1",
-    "@redhat-cloud-services/frontend-components": "^5.2.3",
-    "@redhat-cloud-services/frontend-components-notifications": "^4.1.14",
-    "@redhat-cloud-services/frontend-components-translations": "^3.2.18",
-    "@redhat-cloud-services/frontend-components-utilities": "^5.0.10",
-    "@reduxjs/toolkit": "^2.5.1",
-    "@unleash/proxy-client-react": "^4.5.1",
-    "axios": "^1.7.9",
+    "@patternfly/patternfly": "6.2.0-prerelease.26",
+    "@patternfly/react-charts": "8.2.0-prerelease.26",
+    "@patternfly/react-component-groups": "6.2.0-prerelease.7",
+    "@patternfly/react-core": "6.2.0-prerelease.34",
+    "@patternfly/react-icons": "6.2.0-prerelease.12",
+    "@patternfly/react-table": "6.2.0-prerelease.35",
+    "@patternfly/react-tokens": "6.2.0-prerelease.11",
+    "@redhat-cloud-services/frontend-components": "^6.0.2",
+    "@redhat-cloud-services/frontend-components-notifications": "^5.0.2",
+    "@redhat-cloud-services/frontend-components-translations": "^4.0.1",
+    "@redhat-cloud-services/frontend-components-utilities": "^6.0.2",
+    "@reduxjs/toolkit": "^2.6.1",
+    "@unleash/proxy-client-react": "^5.0.0",
+    "axios": "^1.8.4",
     "date-fns": "^4.1.0",
     "js-file-download": "^0.4.12",
     "lodash": "^4.17.21",
     "qs": "^6.14.0",
     "react": "^18.3.1",
     "react-dom": "^18.3.1",
-    "react-intl": "^7.1.5",
+    "react-intl": "^7.1.9",
     "react-redux": "^9.2.0",
     "react-router-dom": "^6.28.0",
     "redux": "^5.0.1",
@@ -79,17 +79,17 @@
     "yaml": "^2.7.0"
   },
   "devDependencies": {
-    "@eslint/compat": "^1.2.6",
-    "@eslint/eslintrc": "^3.2.0",
-    "@eslint/js": "^9.19.0",
-    "@formatjs/cli": "^6.5.1",
-    "@formatjs/ecma402-abstract": "^2.3.2",
-    "@formatjs/fast-memoize": "^2.2.6",
-    "@formatjs/icu-messageformat-parser": "^2.11.0",
-    "@formatjs/intl-localematcher": "^0.5.10",
-    "@redhat-cloud-services/frontend-components-config": "^6.4.5",
+    "@eslint/compat": "^1.2.7",
+    "@eslint/eslintrc": "^3.3.1",
+    "@eslint/js": "^9.23.0",
+    "@formatjs/cli": "^6.6.2",
+    "@formatjs/ecma402-abstract": "^2.3.4",
+    "@formatjs/fast-memoize": "^2.2.7",
+    "@formatjs/icu-messageformat-parser": "^2.11.2",
+    "@formatjs/intl-localematcher": "^0.6.1",
+    "@redhat-cloud-services/frontend-components-config": "^6.4.8",
     "@redhat-cloud-services/tsc-transform-imports": "^1.0.23",
-    "@swc/core": "^1.10.12",
+    "@swc/core": "^1.11.13",
     "@swc/jest": "^0.2.37",
     "@testing-library/jest-dom": "^6.6.3",
     "@testing-library/react": "^16.2.0",
@@ -100,22 +100,22 @@
     "@types/react-dom": "^18.3.5",
     "@types/react-redux": "^7.1.34",
     "@types/react-router-dom": "^5.3.3",
-    "@typescript-eslint/eslint-plugin": "^8.23.0",
-    "@typescript-eslint/parser": "^8.23.0",
-    "copy-webpack-plugin": "^12.0.2",
-    "eslint": "^9.19.0",
-    "eslint-plugin-formatjs": "^5.2.13",
-    "eslint-plugin-react-hooks": "^5.1.0",
+    "@typescript-eslint/eslint-plugin": "^8.27.0",
+    "@typescript-eslint/parser": "^8.27.0",
+    "copy-webpack-plugin": "^13.0.0",
+    "eslint": "^9.23.0",
+    "eslint-plugin-formatjs": "^5.3.0",
+    "eslint-plugin-react-hooks": "^5.2.0",
     "eslint-plugin-jest-dom": "^5.5.0",
-    "eslint-plugin-jsdoc": "^50.6.3",
+    "eslint-plugin-jsdoc": "^50.6.9",
     "eslint-plugin-markdown": "^5.1.0",
-    "eslint-plugin-prettier": "^5.2.3",
+    "eslint-plugin-prettier": "^5.2.4",
     "eslint-plugin-react": "^7.37.4",
     "eslint-plugin-simple-import-sort": "^12.1.1",
     "eslint-plugin-sort-keys-fix": "^1.1.2",
     "eslint-plugin-testing-library": "^7.1.1",
     "git-revision-webpack-plugin": "^5.0.0",
-    "globals": "^15.14.0",
+    "globals": "^16.0.0",
     "identity-obj-proxy": "^3.0.0",
     "jest": "^29.7.0",
     "jest-environment-jsdom": "^29.7.0",
@@ -123,19 +123,20 @@
     "jest-transform-stub": "^2.0.0",
     "jws": "^4.0.0",
     "npm-run-all": "^4.1.5",
-    "prettier": "^3.4.2",
+    "prettier": "^3.5.3",
     "rimraf": "^6.0.1",
     "swc_mut_cjs_exports": "^8.0.1",
-    "ts-jest": "^29.2.5",
+    "ts-jest": "^29.3.0",
     "ts-patch": "^3.3.0",
-    "typescript": "^5.7.3"
+    "typescript": "^5.8.2"
   },
   "overrides": {
-    "@typescript-eslint/eslint-plugin": "^8.23.0",
-    "eslint": "^9.19.0",
-    "react-intl": "^7.1.5",
-    "redux": "^5.0.1",
-    "react-redux": "^9.2.0"
+    "@patternfly/react-core": "6.2.0-prerelease.34",
+    "@patternfly/react-icons": "6.2.0-prerelease.12",
+    "@patternfly/react-table": "6.2.0-prerelease.35",
+    "@patternfly/react-tokens": "6.2.0-prerelease.11",
+    "react-intl": "^7.1.9",
+    "redux": "^5.0.1"
   },
   "insights": {
     "appname": "cost-management-mfe"
diff --git a/src/app.tsx b/src/app.tsx
index fec7429a..57e88662 100644
--- a/src/app.tsx
+++ b/src/app.tsx
@@ -36,10 +36,10 @@ const App = () => {
   }, []);
 
   return (
-    <>
+    <div>
       <NotificationsPortal />
       <Routes />
-    </>
+    </div>
   );
 };
 
diff --git a/src/routes/components/charts/common/chartUtils.ts b/src/routes/components/charts/common/chartUtils.ts
index f7c04530..a1ff02b6 100644
--- a/src/routes/components/charts/common/chartUtils.ts
+++ b/src/routes/components/charts/common/chartUtils.ts
@@ -1,4 +1,4 @@
-import { getInteractiveLegendItemStyles } from '@patternfly/react-charts';
+import { getInteractiveLegendItemStyles } from '@patternfly/react-charts/victory';
 import { intl } from 'components/i18n';
 import messages from 'locales/messages';
 import type { FormatOptions, Formatter } from 'utils/format';
diff --git a/src/routes/components/charts/theme/theme-utils.ts b/src/routes/components/charts/theme/theme-utils.ts
index ad25d7ce..acb773b2 100644
--- a/src/routes/components/charts/theme/theme-utils.ts
+++ b/src/routes/components/charts/theme/theme-utils.ts
@@ -1,4 +1,4 @@
-import { ChartThemeColor, getCustomTheme } from '@patternfly/react-charts';
+import { ChartThemeColor, getCustomTheme } from '@patternfly/react-charts/victory';
 
 import { default as ChartTheme } from './theme-koku-mfe';
 
diff --git a/src/routes/components/dataTable/dataTable.scss b/src/routes/components/dataTable/dataTable.scss
index d97c63d3..c3a019b5 100644
--- a/src/routes/components/dataTable/dataTable.scss
+++ b/src/routes/components/dataTable/dataTable.scss
@@ -4,13 +4,13 @@
   div {
     display: block;
     margin-right: 0;
-    margin-bottom: var(--pf-v5-global--spacer--xs);
+    margin-bottom: var(--pf-t--global--spacer--xs);
     &.iconOverride {
       &.decrease {
-        color: var(--pf-v5-global--success-color--100);
+        color: var(--pf-t--global--color--status--success--default);
       }
       &.increase {
-        color: var(--pf-v5-global--danger-color--100);
+        color: var(--pf-t--global--color--status--danger--default);
       }
       .fa-sort-up {
         margin-left: 10px;
@@ -19,10 +19,10 @@
         margin-left: 10px;
       }
       .fa-sort-up::before {
-        color: var(--pf-v5-global--danger-color--100);
+        color: var(--pf-t--global--color--status--danger--default);
       }
       .fa-sort-down::before {
-        color: var(--pf-v5-global--success-color--100);
+        color: var(--pf-t--global--color--status--success--default);
       }
       span {
         margin-right: -17px !important;
@@ -32,7 +32,7 @@
 }
 
 .tableOverride {
-  &.pf-v5-c-table tbody .pf-v5-c-table__check input {
+  &.pf-v6-c-table tbody .pf-v6-c-table__check input {
     margin-top: .40rem;
   }
 }
diff --git a/src/routes/components/dataTable/dataTable.styles.ts b/src/routes/components/dataTable/dataTable.styles.ts
index 9519faaa..51716443 100644
--- a/src/routes/components/dataTable/dataTable.styles.ts
+++ b/src/routes/components/dataTable/dataTable.styles.ts
@@ -1,9 +1,9 @@
-import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100';
-import global_disabled_color_100 from '@patternfly/react-tokens/dist/js/global_disabled_color_100';
-import global_FontSize_xs from '@patternfly/react-tokens/dist/js/global_FontSize_xs';
-import global_spacer_3xl from '@patternfly/react-tokens/dist/js/global_spacer_3xl';
-import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm';
-import global_spacer_xs from '@patternfly/react-tokens/dist/js/global_spacer_xs';
+import t_global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/t_global_background_color_100';
+import t_global_color_disabled_100 from '@patternfly/react-tokens/dist/js/t_global_color_disabled_100';
+import t_global_font_size_xs from '@patternfly/react-tokens/dist/js/t_global_font_size_xs';
+import t_global_spacer_3xl from '@patternfly/react-tokens/dist/js/t_global_spacer_3xl';
+import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm';
+import t_global_spacer_xs from '@patternfly/react-tokens/dist/js/t_global_spacer_xs';
 import type React from 'react';
 
 export const styles = {
@@ -17,10 +17,10 @@ export const styles = {
     minWidth: '50px',
   },
   emptyState: {
-    backgroundColor: global_BackgroundColor_light_100.value,
+    backgroundColor: t_global_BackgroundColor_light_100.value,
     display: 'flex',
     justifyContent: 'center',
-    paddingTop: global_spacer_3xl.value,
+    paddingTop: t_global_spacer_3xl.value,
     height: '35vh',
     width: '100%',
   },
@@ -28,11 +28,11 @@ export const styles = {
     position: 'relative',
   },
   infoArrowDesc: {
-    bottom: global_spacer_xs.value,
+    bottom: t_global_spacer_xs.value,
   },
   infoDescription: {
-    color: global_disabled_color_100.value,
-    fontSize: global_FontSize_xs.value,
+    color: t_global_color_disabled_100.value,
+    fontSize: t_global_font_size_xs.value,
   },
   lastItem: {
     textAlign: 'right',
@@ -50,6 +50,6 @@ export const styles = {
     width: '1%',
   },
   warningIcon: {
-    paddingLeft: global_spacer_sm.var,
+    paddingLeft: t_global_spacer_sm.var,
   },
 } as { [className: string]: React.CSSProperties };
diff --git a/src/routes/components/dataTable/dataTable.tsx b/src/routes/components/dataTable/dataTable.tsx
index 09d11a9f..ffcb982c 100644
--- a/src/routes/components/dataTable/dataTable.tsx
+++ b/src/routes/components/dataTable/dataTable.tsx
@@ -1,13 +1,6 @@
 import './dataTable.scss';
 
-import {
-  Bullseye,
-  EmptyState,
-  EmptyStateBody,
-  EmptyStateHeader,
-  EmptyStateIcon,
-  Spinner,
-} from '@patternfly/react-core';
+import { Bullseye, EmptyState, EmptyStateBody, Spinner } from '@patternfly/react-core';
 import { CalculatorIcon } from '@patternfly/react-icons/dist/esm/icons/calculator-icon';
 import type { ThProps } from '@patternfly/react-table';
 import { SortByDirection, Table, TableVariant, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table';
@@ -58,8 +51,7 @@ class DataTable extends React.Component<DataTableProps, any> {
     return emptyState ? (
       emptyState
     ) : (
-      <EmptyState>
-        <EmptyStateHeader icon={<EmptyStateIcon icon={CalculatorIcon} />} />
+      <EmptyState icon={CalculatorIcon} titleText="">
         <EmptyStateBody>{intl.formatMessage(messages.detailsEmptyState)}</EmptyStateBody>
       </EmptyState>
     );
diff --git a/src/routes/components/dataTable/selectableTable.tsx b/src/routes/components/dataTable/selectableTable.tsx
index a9cb6107..305a4200 100644
--- a/src/routes/components/dataTable/selectableTable.tsx
+++ b/src/routes/components/dataTable/selectableTable.tsx
@@ -1,11 +1,4 @@
-import {
-  Bullseye,
-  EmptyState,
-  EmptyStateBody,
-  EmptyStateHeader,
-  EmptyStateIcon,
-  Spinner,
-} from '@patternfly/react-core';
+import { Bullseye, EmptyState, EmptyStateBody, Spinner } from '@patternfly/react-core';
 import { CalculatorIcon } from '@patternfly/react-icons/dist/esm/icons/calculator-icon';
 import type { ThProps } from '@patternfly/react-table';
 import { SortByDirection, Table, TableVariant, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table';
@@ -53,8 +46,7 @@ class SelectableTable extends React.Component<SelectableTableProps, any> {
       return emptyState;
     }
     return (
-      <EmptyState>
-        <EmptyStateHeader icon={<EmptyStateIcon icon={CalculatorIcon} />} />
+      <EmptyState icon={CalculatorIcon} titleText="">
         <EmptyStateBody>{intl.formatMessage(messages.detailsEmptyState)}</EmptyStateBody>
       </EmptyState>
     );
diff --git a/src/routes/components/dataToolbar/basicToolbar.tsx b/src/routes/components/dataToolbar/basicToolbar.tsx
index a3b76aac..80e53bbc 100644
--- a/src/routes/components/dataToolbar/basicToolbar.tsx
+++ b/src/routes/components/dataToolbar/basicToolbar.tsx
@@ -14,7 +14,6 @@ import { isEqual } from 'routes/utils/equal';
 import type { Filter } from 'routes/utils/filter';
 import { createMapStateToProps } from 'store/common';
 
-import { styles } from './dataToolbar.styles';
 import {
   getCategoryInput,
   getCategorySelect,
@@ -278,7 +277,7 @@ export class BasicToolbarBase extends React.Component<BasicToolbarProps, BasicTo
 
     // Todo: clearAllFilters workaround https://github.com/patternfly/patternfly-react/issues/4222
     return (
-      <div style={style ? style : styles.toolbarContainer}>
+      <div style={style}>
         <Toolbar
           className="toolbarOverride"
           clearAllFilters={this.handleOnDelete as any}
@@ -295,7 +294,7 @@ export class BasicToolbarBase extends React.Component<BasicToolbarProps, BasicTo
               </ToolbarToggleGroup>
             )}{' '}
             {actions && <ToolbarGroup>{actions}</ToolbarGroup>}
-            <ToolbarItem align={{ default: 'alignRight' }} variant="pagination">
+            <ToolbarItem align={{ default: 'alignEnd' }} variant="pagination">
               {pagination}
             </ToolbarItem>
           </ToolbarContent>
diff --git a/src/routes/components/dataToolbar/dataToolbar.scss b/src/routes/components/dataToolbar/dataToolbar.scss
index e6d8b1bf..45a3a07c 100644
--- a/src/routes/components/dataToolbar/dataToolbar.scss
+++ b/src/routes/components/dataToolbar/dataToolbar.scss
@@ -3,15 +3,15 @@
 // Workaround for https://github.com/patternfly/patternfly-react/issues/4477
 // and https://github.com/patternfly/patternfly-react/issues/6371
 .selectOverride {
-  .pf-v5-c-menu-toggle {
+  .pf-v6-c-menu-toggle {
     min-width: 250px;
   }
 }
 
 .toolbarOverride {
-  .pf-v5-c-button.pf-m-control::after {
+  .pf-v6-c-button.pf-m-control::after {
     border-left: none;
   }
   // Alternative workaround to overriding table sticky style
-  // --pf-v5-c-toolbar--ZIndex: auto; z-index: 301;
+  // --pf-v6-c-toolbar--ZIndex: auto; z-index: 301;
 }
diff --git a/src/routes/components/dataToolbar/dataToolbar.styles.ts b/src/routes/components/dataToolbar/dataToolbar.styles.ts
deleted file mode 100644
index 69501132..00000000
--- a/src/routes/components/dataToolbar/dataToolbar.styles.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100';
-import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md';
-import type React from 'react';
-
-export const styles = {
-  export: {
-    marginRight: global_spacer_md.value,
-  },
-  toolbarContainer: {
-    backgroundColor: global_BackgroundColor_light_100.value,
-    paddingBottom: global_spacer_md.value,
-    paddingTop: global_spacer_md.value,
-  },
-} as { [className: string]: React.CSSProperties };
diff --git a/src/routes/components/dataToolbar/utils/category.tsx b/src/routes/components/dataToolbar/utils/category.tsx
index 5849fca1..4ef818ff 100644
--- a/src/routes/components/dataToolbar/utils/category.tsx
+++ b/src/routes/components/dataToolbar/utils/category.tsx
@@ -1,4 +1,4 @@
-import type { ToolbarChipGroup } from '@patternfly/react-core';
+import type { ToolbarLabelGroup } from '@patternfly/react-core';
 import { SearchInput, ToolbarFilter, ToolbarItem } from '@patternfly/react-core';
 import { FilterIcon } from '@patternfly/react-icons/dist/esm/icons/filter-icon';
 import type { ResourcePathsType, ResourceType } from 'api/resources/resource';
@@ -49,8 +49,8 @@ export const getCategoryInput = ({
   return (
     <ToolbarFilter
       categoryName={categoryOption}
-      chips={getChips(filters[categoryOption.key] as Filter[])}
-      deleteChip={onDelete}
+      labels={getChips(filters[categoryOption.key] as Filter[])}
+      deleteLabel={onDelete}
       key={categoryOption.key}
       showToolbarItem={currentCategory === categoryOption.key}
     >
@@ -79,7 +79,7 @@ export const getCategoryInput = ({
   );
 };
 
-export const getDefaultCategoryOptions = (): ToolbarChipGroup[] => {
+export const getDefaultCategoryOptions = (): ToolbarLabelGroup[] => {
   return [{ name: intl.formatMessage(messages.names, { count: 1 }), key: 'name' }];
 };
 
@@ -170,7 +170,7 @@ export const getCategorySelect = ({
   isDisabled,
   onCategorySelect,
 }: {
-  categoryOptions?: ToolbarChipGroup[]; // Options for category menu
+  categoryOptions?: ToolbarLabelGroup[]; // Options for category menu
   currentCategory?: string;
   filters?: Filters;
   isDisabled?: boolean;
@@ -197,7 +197,7 @@ export const getCategorySelect = ({
   );
 };
 
-export const getCategorySelectOptions = (categoryOptions: ToolbarChipGroup[]): SelectWrapperOption[] => {
+export const getCategorySelectOptions = (categoryOptions: ToolbarLabelGroup[]): SelectWrapperOption[] => {
   const options: SelectWrapperOption[] = [];
 
   categoryOptions.map(option => {
diff --git a/src/routes/components/dataToolbar/utils/common.ts b/src/routes/components/dataToolbar/utils/common.ts
index 52b42566..ac6dae01 100644
--- a/src/routes/components/dataToolbar/utils/common.ts
+++ b/src/routes/components/dataToolbar/utils/common.ts
@@ -1,4 +1,4 @@
-import type { ToolbarChipGroup } from '@patternfly/react-core';
+import type { ToolbarLabelGroup } from '@patternfly/react-core';
 import type { Query } from 'api/queries/query';
 import { intl } from 'components/i18n';
 import messages from 'locales/messages';
@@ -10,11 +10,11 @@ export interface Filters {
   [key: string]: Filter[] | { [key: string]: Filter[] };
 }
 
-export interface ToolbarChipGroupExt extends ToolbarChipGroup {
+export interface ToolbarChipGroupExt extends ToolbarLabelGroup {
   ariaLabelKey?: string;
   placeholderKey?: string;
   selectClassName?: string; // A selector from routes/components/dataToolbar/dataToolbar.scss
-  selectOptions?: ToolbarChipGroup[];
+  selectOptions?: ToolbarLabelGroup[];
 }
 
 export const defaultFilters = {
@@ -90,7 +90,7 @@ export const getChips = (filters: Filter[]): string[] => {
   return chips;
 };
 
-export const getDefaultCategory = (categoryOptions: ToolbarChipGroup[], groupBy: string, query: Query) => {
+export const getDefaultCategory = (categoryOptions: ToolbarLabelGroup[], groupBy: string, query: Query) => {
   if (!categoryOptions) {
     return 'name';
   }
diff --git a/src/routes/components/dataToolbar/utils/custom.tsx b/src/routes/components/dataToolbar/utils/custom.tsx
index 76b37694..e32528eb 100644
--- a/src/routes/components/dataToolbar/utils/custom.tsx
+++ b/src/routes/components/dataToolbar/utils/custom.tsx
@@ -39,8 +39,8 @@ export const getCustomSelect = ({
   return (
     <ToolbarFilter
       categoryName={categoryName}
-      chips={getChips(filters[categoryOption.key] as Filter[])}
-      deleteChip={onDelete}
+      labels={getChips(filters[categoryOption.key] as Filter[])}
+      deleteLabel={onDelete}
       key={`custom-select-${categoryOption.key}`}
       showToolbarItem={currentCategory === categoryOption.key}
     >
diff --git a/src/routes/components/page/loading/loading.tsx b/src/routes/components/page/loading/loading.tsx
index 99af6462..8c899538 100644
--- a/src/routes/components/page/loading/loading.tsx
+++ b/src/routes/components/page/loading/loading.tsx
@@ -1,4 +1,4 @@
-import { PageSection } from '@patternfly/react-core';
+import { Card, CardBody, PageSection } from '@patternfly/react-core';
 import { PageHeader, PageHeaderTitle } from '@redhat-cloud-services/frontend-components/PageHeader';
 import React from 'react';
 import { LoadingState } from 'routes/components/state/loadingState';
@@ -19,8 +19,12 @@ const Loading = ({ body, heading, title }: LoadingProps) => {
           <PageHeaderTitle title={title} />
         </PageHeader>
       )}
-      <PageSection>
-        <LoadingState body={body} heading={heading} />
+      <PageSection hasBodyWrapper={false}>
+        <Card>
+          <CardBody>
+            <LoadingState body={body} heading={heading} />
+          </CardBody>
+        </Card>
       </PageSection>
     </>
   );
diff --git a/src/routes/components/page/noOptimizations/noOptimizations.tsx b/src/routes/components/page/noOptimizations/noOptimizations.tsx
index 57780fd9..aaa6dbe5 100644
--- a/src/routes/components/page/noOptimizations/noOptimizations.tsx
+++ b/src/routes/components/page/noOptimizations/noOptimizations.tsx
@@ -18,7 +18,7 @@ const NoOptimizations = ({ title }: NoOptimizationsProps) => {
           <PageHeaderTitle title={title} />
         </PageHeader>
       )}
-      <PageSection>
+      <PageSection hasBodyWrapper={false}>
         <NoOptimizationsState />
       </PageSection>
     </>
diff --git a/src/routes/components/page/noOptimizations/noOptimizationsState.tsx b/src/routes/components/page/noOptimizations/noOptimizationsState.tsx
index 4b78a714..5287d3a4 100644
--- a/src/routes/components/page/noOptimizations/noOptimizationsState.tsx
+++ b/src/routes/components/page/noOptimizations/noOptimizationsState.tsx
@@ -1,10 +1,4 @@
-import {
-  EmptyState,
-  EmptyStateBody,
-  EmptyStateHeader,
-  EmptyStateIcon,
-  EmptyStateVariant,
-} from '@patternfly/react-core';
+import { EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core';
 import messages from 'locales/messages';
 import React from 'react';
 import type { WrappedComponentProps } from 'react-intl';
@@ -22,12 +16,13 @@ class NoOptimizationsStateBase extends React.Component<NoOptimizationsStateProps
     const { intl } = this.props;
 
     return (
-      <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font">
-        <EmptyStateHeader
-          titleText={intl.formatMessage(messages.noOptimizationsTitle)}
-          icon={<EmptyStateIcon icon={OptimizationIcon as any} />}
-          headingLevel="h1"
-        />
+      <EmptyState
+        headingLevel="h1"
+        icon={OptimizationIcon as any}
+        titleText={intl.formatMessage(messages.noOptimizationsTitle)}
+        variant={EmptyStateVariant.lg}
+        className="pf-m-redhat-font"
+      >
         <EmptyStateBody>{intl.formatMessage(messages.noOptimizationsDesc)}</EmptyStateBody>
       </EmptyState>
     );
diff --git a/src/routes/components/page/notAuthorized/notAuthorized.tsx b/src/routes/components/page/notAuthorized/notAuthorized.tsx
index ca01b158..3197725a 100644
--- a/src/routes/components/page/notAuthorized/notAuthorized.tsx
+++ b/src/routes/components/page/notAuthorized/notAuthorized.tsx
@@ -1,4 +1,4 @@
-import { PageSection } from '@patternfly/react-core';
+import { Card, CardBody, PageSection } from '@patternfly/react-core';
 import { PageHeader, PageHeaderTitle } from '@redhat-cloud-services/frontend-components/PageHeader';
 import React from 'react';
 
@@ -19,8 +19,12 @@ const NotAuthorized = ({ pathname, title }: NotAuthorizedProps) => {
           <PageHeaderTitle title={title} />
         </PageHeader>
       )}
-      <PageSection>
-        <NotAuthorizedState pathname={pathname} />
+      <PageSection hasBodyWrapper={false}>
+        <Card>
+          <CardBody>
+            <NotAuthorizedState pathname={pathname} />
+          </CardBody>
+        </Card>
       </PageSection>
     </>
   );
diff --git a/src/routes/components/page/notAuthorized/notAuthorizedState.tsx b/src/routes/components/page/notAuthorized/notAuthorizedState.tsx
index 74fc9fcb..13b9fccd 100644
--- a/src/routes/components/page/notAuthorized/notAuthorizedState.tsx
+++ b/src/routes/components/page/notAuthorized/notAuthorizedState.tsx
@@ -1,4 +1,4 @@
-import UnAuthorized from '@patternfly/react-component-groups/dist/esm/NotAuthorized';
+import UnauthorizedAccess from '@patternfly/react-component-groups/dist/esm/UnauthorizedAccess';
 import messages from 'locales/messages';
 import React from 'react';
 import type { WrappedComponentProps } from 'react-intl';
@@ -30,7 +30,7 @@ class NotAuthorizedStateBase extends React.Component<NotAuthorizedStateProps, an
         msg = messages.costManagement;
         break;
     }
-    return <UnAuthorized serviceName={intl.formatMessage(msg)} />;
+    return <UnauthorizedAccess serviceName={intl.formatMessage(msg)} />;
   }
 }
 
diff --git a/src/routes/components/page/notAvailable/notAvailable.tsx b/src/routes/components/page/notAvailable/notAvailable.tsx
index 953d1f6f..80c8eaec 100644
--- a/src/routes/components/page/notAvailable/notAvailable.tsx
+++ b/src/routes/components/page/notAvailable/notAvailable.tsx
@@ -17,7 +17,7 @@ const NotAvailable = ({ title }: NotAvailableProps) => {
           <PageHeaderTitle title={title} />
         </PageHeader>
       )}
-      <PageSection>
+      <PageSection hasBodyWrapper={false}>
         <Unavailable />
       </PageSection>
     </>
diff --git a/src/routes/components/page/notConfigured/notConfigured.tsx b/src/routes/components/page/notConfigured/notConfigured.tsx
index 524fe77a..cee4b51d 100644
--- a/src/routes/components/page/notConfigured/notConfigured.tsx
+++ b/src/routes/components/page/notConfigured/notConfigured.tsx
@@ -18,7 +18,7 @@ const NotConfigured = ({ title }: NotConfiguredProps) => {
           <PageHeaderTitle title={title} />
         </PageHeader>
       )}
-      <PageSection>
+      <PageSection hasBodyWrapper={false}>
         <NotConfiguredState />
       </PageSection>
     </>
diff --git a/src/routes/components/page/notConfigured/notConfiguredState.tsx b/src/routes/components/page/notConfigured/notConfiguredState.tsx
index e9949531..3cb4f3ef 100644
--- a/src/routes/components/page/notConfigured/notConfiguredState.tsx
+++ b/src/routes/components/page/notConfigured/notConfiguredState.tsx
@@ -1,11 +1,4 @@
-import {
-  ClipboardCopy,
-  EmptyState,
-  EmptyStateBody,
-  EmptyStateHeader,
-  EmptyStateIcon,
-  EmptyStateVariant,
-} from '@patternfly/react-core';
+import { ClipboardCopy, EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core';
 import messages from 'locales/messages';
 import React from 'react';
 import { useIntl } from 'react-intl';
@@ -47,12 +40,13 @@ const NotConfiguredState: React.FC<NotConfiguredStateProps> = () => {
   };
 
   return (
-    <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font">
-      <EmptyStateHeader
-        titleText={intl.formatMessage(messages.notConfiguredTitle)}
-        icon={<EmptyStateIcon icon={OptimizationIcon as any} />}
-        headingLevel="h1"
-      />
+    <EmptyState
+      headingLevel="h1"
+      icon={OptimizationIcon as any}
+      titleText={intl.formatMessage(messages.notConfiguredTitle)}
+      variant={EmptyStateVariant.lg}
+      className="pf-m-redhat-font"
+    >
       <EmptyStateBody>{intl.formatMessage(messages.notConfiguredDesc)}</EmptyStateBody>
       <EmptyStateBody>
         {intl.formatMessage(messages.notConfiguredNamespace, { clipboard: getNamespaceClipboard() })}
diff --git a/src/routes/components/page/notFound/notFound.tsx b/src/routes/components/page/notFound/notFound.tsx
index 9084e9b0..7d1241a4 100644
--- a/src/routes/components/page/notFound/notFound.tsx
+++ b/src/routes/components/page/notFound/notFound.tsx
@@ -1,11 +1,15 @@
-import { PageSection } from '@patternfly/react-core';
-import { InvalidObject } from '@redhat-cloud-services/frontend-components/InvalidObject';
+import { MissingPage } from '@patternfly/react-component-groups/dist/esm/MissingPage';
+import { Card, CardBody, PageSection } from '@patternfly/react-core';
 import React from 'react';
 
 const NotFound = () => {
   return (
-    <PageSection>
-      <InvalidObject />
+    <PageSection hasBodyWrapper={false}>
+      <Card>
+        <CardBody>
+          <MissingPage titleText={undefined} />
+        </CardBody>
+      </Card>
     </PageSection>
   );
 };
diff --git a/src/routes/components/page/welcome/welcome.tsx b/src/routes/components/page/welcome/welcome.tsx
index 9ca951cc..49a3d088 100644
--- a/src/routes/components/page/welcome/welcome.tsx
+++ b/src/routes/components/page/welcome/welcome.tsx
@@ -16,7 +16,7 @@ const Welcome = ({ title }: WelcomeOwnProps) => {
           <PageHeaderTitle title={title} />
         </PageHeader>
       )}
-      <PageSection>
+      <PageSection hasBodyWrapper={false}>
         <WelcomeState />
       </PageSection>
     </>
diff --git a/src/routes/components/page/welcome/welcomeState.tsx b/src/routes/components/page/welcome/welcomeState.tsx
index 49a2ffeb..cc526433 100644
--- a/src/routes/components/page/welcome/welcomeState.tsx
+++ b/src/routes/components/page/welcome/welcomeState.tsx
@@ -1,10 +1,4 @@
-import {
-  EmptyState,
-  EmptyStateBody,
-  EmptyStateHeader,
-  EmptyStateIcon,
-  EmptyStateVariant,
-} from '@patternfly/react-core';
+import { EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core';
 import { PlusCircleIcon } from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon';
 import messages from 'locales/messages';
 import React from 'react';
@@ -18,12 +12,13 @@ class WelcomeStateBase extends React.Component<WelcomeStateBaseOwnProps, any> {
     const { intl } = this.props;
 
     return (
-      <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font">
-        <EmptyStateHeader
-          titleText={intl.formatMessage(messages.welcomeTitle)}
-          icon={<EmptyStateIcon icon={PlusCircleIcon} />}
-          headingLevel="h5"
-        />
+      <EmptyState
+        headingLevel="h5"
+        icon={PlusCircleIcon}
+        titleText={intl.formatMessage(messages.welcomeTitle)}
+        variant={EmptyStateVariant.lg}
+        className="pf-m-redhat-font"
+      >
         <EmptyStateBody>
           {intl.formatMessage(messages.welcomeInfo, {
             url: (
diff --git a/src/routes/components/perspective/perspective.styles.ts b/src/routes/components/perspective/perspective.styles.ts
index b8ebe1d6..366622ff 100644
--- a/src/routes/components/perspective/perspective.styles.ts
+++ b/src/routes/components/perspective/perspective.styles.ts
@@ -1,4 +1,4 @@
-import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md';
+import t_global_spacer_md from '@patternfly/react-tokens/dist/js/t_global_spacer_md';
 import type React from 'react';
 
 export const styles = {
@@ -8,7 +8,7 @@ export const styles = {
   },
   perspectiveLabel: {
     marginBottom: 0,
-    marginRight: global_spacer_md.var,
+    marginRight: t_global_spacer_md.var,
     whiteSpace: 'nowrap',
   },
   perspectiveOptionLabel: {
diff --git a/src/routes/components/resourceTypeahead/resourceFetch.tsx b/src/routes/components/resourceTypeahead/resourceFetch.tsx
index 62ca952e..7e2838ed 100644
--- a/src/routes/components/resourceTypeahead/resourceFetch.tsx
+++ b/src/routes/components/resourceTypeahead/resourceFetch.tsx
@@ -1,4 +1,4 @@
-import type { ToolbarChipGroup } from '@patternfly/react-core';
+import type { ToolbarLabelGroup } from '@patternfly/react-core';
 import type { Query } from 'api/queries/query';
 import { getQuery } from 'api/queries/query';
 import type { Resource } from 'api/resources/resource';
@@ -56,7 +56,7 @@ const ResourceFetch: React.FC<ResourceFetchProps> = ({
 }) => {
   const { resource, resourceFetchStatus } = useMapToProps({ resourcePathsType, resourceType, search });
 
-  const getOptions = (): ToolbarChipGroup[] => {
+  const getOptions = (): ToolbarLabelGroup[] => {
     let options = [];
     if (resource && resource.data && resource.data.length > 0 && resourceFetchStatus !== FetchStatus.inProgress) {
       options = resource.data.map(item => {
diff --git a/src/routes/components/resourceTypeahead/resourceInput.tsx b/src/routes/components/resourceTypeahead/resourceInput.tsx
index 75f935cf..5ea9cd66 100644
--- a/src/routes/components/resourceTypeahead/resourceInput.tsx
+++ b/src/routes/components/resourceTypeahead/resourceInput.tsx
@@ -1,4 +1,4 @@
-import type { ToolbarChipGroup } from '@patternfly/react-core';
+import type { ToolbarLabelGroup } from '@patternfly/react-core';
 import {
   Button,
   Divider,
@@ -23,7 +23,7 @@ interface ResourceInputOwnProps {
   isDisabled?: boolean;
   onChange?: (evt: FormEvent, value: string) => void;
   onClear?: () => void;
-  options?: ToolbarChipGroup[];
+  options?: ToolbarLabelGroup[];
   onSelect?: (value: string) => void;
   placeholder?: string;
   search?: string;
@@ -69,12 +69,11 @@ const ResourceInput: React.FC<ResourceInputProps> = ({
           {search && search.length && (
             <TextInputGroupUtilities>
               <Button
+                icon={<TimesIcon />}
                 variant="plain"
                 onClick={handleOnClear}
                 aria-label={intl.formatMessage(messages.typeaheadAriaClear)}
-              >
-                <TimesIcon />
-              </Button>
+              />
             </TextInputGroupUtilities>
           )}
         </TextInputGroup>
diff --git a/src/routes/components/selectWrapper/select.styles.ts b/src/routes/components/selectWrapper/select.styles.ts
index 0adf3439..87dad960 100644
--- a/src/routes/components/selectWrapper/select.styles.ts
+++ b/src/routes/components/selectWrapper/select.styles.ts
@@ -1,8 +1,8 @@
-import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm';
+import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm';
 import type React from 'react';
 
 export const styles = {
   badge: {
-    marginLeft: global_spacer_sm.var,
+    marginLeft: t_global_spacer_sm.var,
   },
 } as { [className: string]: React.CSSProperties };
diff --git a/src/routes/components/selectWrapper/selectWrapper.scss b/src/routes/components/selectWrapper/selectWrapper.scss
index c89b9bbd..7e1cf3bc 100644
--- a/src/routes/components/selectWrapper/selectWrapper.scss
+++ b/src/routes/components/selectWrapper/selectWrapper.scss
@@ -2,10 +2,10 @@
 
 // Workaround for missing "position" property
 .selectWrapper {
-  .pf-v5-c-menu-toggle {
+  .pf-v6-c-menu-toggle {
     max-width: unset;
   }
-  .pf-v5-c-menu-toggle__text {
+  .pf-v6-c-menu-toggle__text {
     width: max-content;
   }
 }
diff --git a/src/routes/components/state/emptyFilterState/emptyFilterState.tsx b/src/routes/components/state/emptyFilterState/emptyFilterState.tsx
index 7370aec9..0c308fb7 100644
--- a/src/routes/components/state/emptyFilterState/emptyFilterState.tsx
+++ b/src/routes/components/state/emptyFilterState/emptyFilterState.tsx
@@ -1,5 +1,5 @@
 import type { MessageDescriptor } from '@formatjs/intl/src/types';
-import { Bullseye, EmptyState, EmptyStateBody, EmptyStateHeader, EmptyStateIcon } from '@patternfly/react-core';
+import { Bullseye, EmptyState, EmptyStateBody } from '@patternfly/react-core';
 import { SearchIcon } from '@patternfly/react-icons/dist/esm/icons/search-icon';
 import type { Query } from 'api/queries/query';
 import { parseQuery } from 'api/queries/query';
@@ -101,10 +101,12 @@ const EmptyFilterStateBase: React.FC<EmptyFilterStateProps> = ({
     } else if (showEmptyState2) {
       return <ItemScroll />;
     } else {
-      return <EmptyStateIcon icon={icon} />;
+      return null;
     }
   };
 
+  const item = getItem();
+
   return (
     <div
       style={{
@@ -112,9 +114,8 @@ const EmptyFilterStateBase: React.FC<EmptyFilterStateProps> = ({
         ...(showMargin ? styles.containerMargin : {}),
       }}
     >
-      <EmptyState>
-        {getItem()}
-        <EmptyStateHeader titleText={intl.formatMessage(title)} headingLevel="h2" />
+      <EmptyState headingLevel="h2" icon={!item ? icon : undefined} titleText={intl.formatMessage(title)}>
+        {item}
         <EmptyStateBody>{intl.formatMessage(subTitle)}</EmptyStateBody>
       </EmptyState>
     </div>
diff --git a/src/routes/components/state/emptyValueState/emptyValueState.scss b/src/routes/components/state/emptyValueState/emptyValueState.scss
index ada26156..eb0faca0 100644
--- a/src/routes/components/state/emptyValueState/emptyValueState.scss
+++ b/src/routes/components/state/emptyValueState/emptyValueState.scss
@@ -1,5 +1,5 @@
 @import url("~@patternfly/patternfly/base/patternfly-variables.css");
 
 .emptyValueContainer {
-  font-size: var(--pf-v5-global--FontSize--sm);
+  font-size: var(--pf-t--global--font--size--sm);
 }
diff --git a/src/routes/components/state/errorState/errorState.tsx b/src/routes/components/state/errorState/errorState.tsx
index fc3f60cf..dafbc2ba 100644
--- a/src/routes/components/state/errorState/errorState.tsx
+++ b/src/routes/components/state/errorState/errorState.tsx
@@ -1,10 +1,4 @@
-import {
-  EmptyState,
-  EmptyStateBody,
-  EmptyStateHeader,
-  EmptyStateIcon,
-  EmptyStateVariant,
-} from '@patternfly/react-core';
+import { EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core';
 import { ErrorCircleOIcon } from '@patternfly/react-icons/dist/esm/icons/error-circle-o-icon';
 import { LockIcon } from '@patternfly/react-icons/dist/esm/icons/lock-icon';
 import type { AxiosError } from 'axios';
@@ -29,8 +23,13 @@ const ErrorStateBase: React.FC<ErrorStateProps> = ({ error, icon = ErrorCircleOI
   }
 
   return (
-    <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font">
-      <EmptyStateHeader titleText={title} icon={<EmptyStateIcon icon={icon} />} headingLevel="h5" />
+    <EmptyState
+      headingLevel="h5"
+      icon={icon}
+      titleText={title}
+      variant={EmptyStateVariant.lg}
+      className="pf-m-redhat-font"
+    >
       <EmptyStateBody>{subTitle}</EmptyStateBody>
     </EmptyState>
   );
diff --git a/src/routes/components/state/loadingState/loadingState.tsx b/src/routes/components/state/loadingState/loadingState.tsx
index 17a3f21b..293d92d9 100644
--- a/src/routes/components/state/loadingState/loadingState.tsx
+++ b/src/routes/components/state/loadingState/loadingState.tsx
@@ -1,4 +1,4 @@
-import { EmptyState, EmptyStateBody, EmptyStateHeader, EmptyStateVariant, Spinner } from '@patternfly/react-core';
+import { EmptyState, EmptyStateBody, EmptyStateVariant, Spinner } from '@patternfly/react-core';
 import { intl as defaultIntl } from 'components/i18n';
 import messages from 'locales/messages';
 import React from 'react';
@@ -19,9 +19,8 @@ const LoadingStateBase: React.FC<LoadingStateProps> = ({
   heading = intl.formatMessage(messages.loadingStateTitle),
 }) => {
   return (
-    <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font">
+    <EmptyState headingLevel="h5" titleText={heading} variant={EmptyStateVariant.lg} className="pf-m-redhat-font">
       <Spinner size="lg" />
-      <EmptyStateHeader titleText={heading} headingLevel="h5" />
       <EmptyStateBody>{body}</EmptyStateBody>
     </EmptyState>
   );
diff --git a/src/routes/components/state/optimizedState/optimizedState.styles.ts b/src/routes/components/state/optimizedState/optimizedState.styles.ts
deleted file mode 100644
index e1c6d9b8..00000000
--- a/src/routes/components/state/optimizedState/optimizedState.styles.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { global_success_color_100 } from '@patternfly/react-tokens/dist/js/global_success_color_100';
-import type React from 'react';
-
-export const styles = {
-  icon: {
-    color: global_success_color_100.var,
-  },
-} as { [className: string]: React.CSSProperties };
diff --git a/src/routes/components/state/optimizedState/optimizedState.tsx b/src/routes/components/state/optimizedState/optimizedState.tsx
index eddbcf77..3b212135 100644
--- a/src/routes/components/state/optimizedState/optimizedState.tsx
+++ b/src/routes/components/state/optimizedState/optimizedState.tsx
@@ -1,10 +1,4 @@
-import {
-  EmptyState,
-  EmptyStateBody,
-  EmptyStateHeader,
-  EmptyStateIcon,
-  EmptyStateVariant,
-} from '@patternfly/react-core';
+import { EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core';
 import { CheckCircleIcon } from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
 import { intl as defaultIntl } from 'components/i18n';
 import messages from 'locales/messages';
@@ -12,8 +6,6 @@ import React from 'react';
 import type { WrappedComponentProps } from 'react-intl';
 import { injectIntl } from 'react-intl';
 
-import { styles } from './optimizedState.styles';
-
 interface LoadingStateProps extends WrappedComponentProps {
   body?: string;
   heading?: string;
@@ -28,12 +20,14 @@ const LoadingStateBase: React.FC<LoadingStateProps> = ({
   heading = intl.formatMessage(messages.optimizedStateTitle),
 }) => {
   return (
-    <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font" isFullHeight>
-      <EmptyStateHeader
-        headingLevel="h5"
-        icon={<EmptyStateIcon style={styles.icon} icon={CheckCircleIcon} />}
-        titleText={heading}
-      />
+    <EmptyState
+      headingLevel="h5"
+      icon={CheckCircleIcon}
+      titleText={heading}
+      variant={EmptyStateVariant.lg}
+      className="pf-m-redhat-font"
+      isFullHeight
+    >
       <EmptyStateBody>{body}</EmptyStateBody>
     </EmptyState>
   );
diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles.ts b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles.ts
index f1e9ed73..c8dff60d 100644
--- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles.ts
+++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles.ts
@@ -1,38 +1,32 @@
-import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100';
-import global_spacer_lg from '@patternfly/react-tokens/dist/js/global_spacer_lg';
-import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md';
+import t_global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/t_global_background_color_100';
+import t_global_spacer_lg from '@patternfly/react-tokens/dist/js/t_global_spacer_lg';
+import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm';
 import type React from 'react';
 
 export const styles = {
   alertContainer: {
-    marginBottom: global_spacer_lg.value,
+    marginBottom: t_global_spacer_lg.value,
   },
   codeBlock: {
     display: 'flex',
   },
-  container: {
-    minHeight: '100vh',
-  },
   currentActions: {
     height: '36px',
   },
+  headerContainer: {
+    paddingBottom: 0,
+  },
   optimizedState: {
     minHeight: '285px',
   },
-  pagination: {
-    backgroundColor: global_BackgroundColor_light_100.value,
-    paddingBottom: global_spacer_md.value,
-    paddingTop: global_spacer_md.value,
+  paginationContainer: {
+    marginTop: t_global_spacer_sm.var,
   },
   projectLink: {
     padding: 0,
   },
-  tabs: {
-    backgroundColor: global_BackgroundColor_light_100.value,
-    paddingLeft: global_spacer_lg.value,
-  },
   utilizationContainer: {
-    backgroundColor: global_BackgroundColor_light_100.value,
-    marginTop: global_spacer_lg.value,
+    backgroundColor: t_global_BackgroundColor_light_100.value,
+    marginTop: t_global_spacer_lg.value,
   },
 } as { [className: string]: React.CSSProperties };
diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.tsx b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.tsx
index 9b2ba170..c5dc6e35 100644
--- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.tsx
+++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.tsx
@@ -15,7 +15,7 @@ import { useDispatch, useSelector } from 'react-redux';
 import { useLocation } from 'react-router-dom';
 import type { AnyAction } from 'redux';
 import type { ThunkDispatch } from 'redux-thunk';
-import { Loading } from 'routes/components/page/loading';
+import { LoadingState } from 'routes/components/state/loadingState';
 import type { RootState } from 'store';
 import { FetchStatus } from 'store/common';
 import { rosActions, rosSelectors } from 'store/ros';
@@ -241,22 +241,24 @@ const OptimizationsBreakdown: React.FC<OptimizationsBreakdownProps> = () => {
   const [availableTabs] = useState(getAvailableTabs());
 
   return (
-    <div style={styles.container}>
-      <OptimizationsBreakdownHeader
-        breadcrumbLabel={breadcrumbLabel}
-        breadcrumbPath={breadcrumbPath}
-        currentInterval={currentInterval}
-        isDisabled={isLoading}
-        isOptimizationsDetails={isOptimizationsDetails}
-        onSelect={handleOnSelect}
-        optimizationType={getOptimizationType()}
-        projectPath={projectPath}
-        report={report}
-      />
-      <div style={styles.tabs}>{getTabs(availableTabs)}</div>
-      <PageSection isFilled>
+    <>
+      <PageSection style={styles.headerContainer}>
+        <OptimizationsBreakdownHeader
+          breadcrumbLabel={breadcrumbLabel}
+          breadcrumbPath={breadcrumbPath}
+          currentInterval={currentInterval}
+          isDisabled={isLoading}
+          isOptimizationsDetails={isOptimizationsDetails}
+          onSelect={handleOnSelect}
+          optimizationType={getOptimizationType()}
+          projectPath={projectPath}
+          report={report}
+        />
+      </PageSection>
+      <PageSection>{getTabs(availableTabs)}</PageSection>
+      <PageSection>
         {isLoading ? (
-          <Loading
+          <LoadingState
             body={intl.formatMessage(messages.optimizationsLoadingStateDesc)}
             heading={intl.formatMessage(messages.optimizationsLoadingStateTitle)}
           />
@@ -267,8 +269,7 @@ const OptimizationsBreakdown: React.FC<OptimizationsBreakdownProps> = () => {
           </div>
         )}
       </PageSection>
-      .
-    </div>
+    </>
   );
 };
 
diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.styles.ts b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.styles.ts
index 5f013f19..7bdf66f5 100644
--- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.styles.ts
+++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.styles.ts
@@ -1,16 +1,16 @@
 import { chart_color_blue_100 } from '@patternfly/react-tokens/dist/js/chart_color_blue_100';
 import { chart_color_blue_200 } from '@patternfly/react-tokens/dist/js/chart_color_blue_200';
 import { chart_color_blue_400 } from '@patternfly/react-tokens/dist/js/chart_color_blue_400';
-import { chart_color_red_200 } from '@patternfly/react-tokens/dist/js/chart_color_red_200';
+import { t_global_color_status_danger_200 } from '@patternfly/react-tokens/dist/js/t_global_color_status_danger_200';
 
 export const chartStyles = {
   limit: {
     fill: 'none',
   },
-  limitColorScale: [chart_color_red_200.value],
+  limitColorScale: [t_global_color_status_danger_200.var],
   request: {
     fill: 'none',
   },
-  requestColorScale: [chart_color_blue_400.value],
-  usageColorScale: [chart_color_blue_100.value, chart_color_blue_200.value],
+  requestColorScale: [chart_color_blue_400.var],
+  usageColorScale: [chart_color_blue_100.var, chart_color_blue_200.var],
 };
diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.tsx b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.tsx
index e97d161f..8dc6250a 100644
--- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.tsx
+++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.tsx
@@ -10,7 +10,7 @@ import {
   ChartScatter,
   createContainer,
   getInteractiveLegendEvents,
-} from '@patternfly/react-charts';
+} from '@patternfly/react-charts/victory';
 import messages from 'locales/messages';
 import React, { useEffect, useMemo, useState } from 'react';
 import { useIntl } from 'react-intl';
diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.styles.ts b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.styles.ts
index 67f78261..84a8d545 100644
--- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.styles.ts
+++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.styles.ts
@@ -1,20 +1,15 @@
-import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100';
-import global_FontSize_md from '@patternfly/react-tokens/dist/js/global_FontSize_md';
-import global_spacer_lg from '@patternfly/react-tokens/dist/js/global_spacer_lg';
-import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md';
-import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm';
+import t_global_font_size_md from '@patternfly/react-tokens/dist/js/t_global_font_size_md';
+import t_global_spacer_lg from '@patternfly/react-tokens/dist/js/t_global_spacer_lg';
+import t_global_spacer_md from '@patternfly/react-tokens/dist/js/t_global_spacer_md';
+import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm';
 import type React from 'react';
 
 export const styles = {
   description: {
-    marginTop: global_spacer_lg.var,
-  },
-  header: {
-    backgroundColor: global_BackgroundColor_light_100.var,
-    padding: global_spacer_lg.var,
+    marginTop: t_global_spacer_lg.var,
   },
   infoIcon: {
-    fontSize: global_FontSize_md.value,
+    fontSize: t_global_font_size_md.value,
   },
   infoTitle: {
     fontWeight: 'bold',
@@ -22,15 +17,15 @@ export const styles = {
   title: {
     alignItems: 'center',
     display: 'flex',
-    marginTop: global_spacer_md.var,
+    marginTop: t_global_spacer_md.var,
   },
   toolbar: {
     display: 'flex',
     justifyContent: 'space-between',
-    marginTop: global_spacer_lg.var,
+    marginTop: t_global_spacer_lg.var,
   },
   warningIcon: {
-    paddingLeft: global_spacer_sm.var,
+    paddingLeft: t_global_spacer_sm.var,
     paddingTop: '2px',
   },
 } as { [className: string]: React.CSSProperties };
diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.tsx b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.tsx
index d989a789..1c9a9ee0 100644
--- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.tsx
+++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.tsx
@@ -1,13 +1,4 @@
-import {
-  Icon,
-  TextContent,
-  TextList,
-  TextListItem,
-  TextListItemVariants,
-  TextListVariants,
-  Title,
-  TitleSizes,
-} from '@patternfly/react-core';
+import { Content, ContentVariants, Icon, Title, TitleSizes } from '@patternfly/react-core';
 import { ExclamationTriangleIcon } from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';
 import type { RecommendationReportData } from 'api/ros/recommendations';
 import messages from 'locales/messages';
@@ -70,42 +61,42 @@ const OptimizationsBreakdownHeader: React.FC<OptimizationsBreakdownHeaderProps>
     const workloadType = report?.workload_type ? report.workload_type : '';
 
     return (
-      <TextContent>
-        <TextList component={TextListVariants.dl}>
-          <TextListItem component={TextListItemVariants.dt}>
+      <Content>
+        <Content component={ContentVariants.dl}>
+          <Content component={ContentVariants.dt}>
             {intl.formatMessage(messages.optimizationsValues, { value: 'last_reported' })}
-          </TextListItem>
-          <TextListItem component={TextListItemVariants.dd}>{lastReported}</TextListItem>
-          <TextListItem component={TextListItemVariants.dt}>
+          </Content>
+          <Content component={ContentVariants.dd}>{lastReported}</Content>
+          <Content component={ContentVariants.dt}>
             {intl.formatMessage(messages.optimizationsValues, { value: 'cluster' })}
-          </TextListItem>
-          <TextListItem component={TextListItemVariants.dd}>{cluster}</TextListItem>
-          <TextListItem component={TextListItemVariants.dt}>
+          </Content>
+          <Content component={ContentVariants.dd}>{cluster}</Content>
+          <Content component={ContentVariants.dt}>
             {intl.formatMessage(messages.optimizationsValues, { value: 'project' })}
-          </TextListItem>
-          <TextListItem component={TextListItemVariants.dd}>
+          </Content>
+          <Content component={ContentVariants.dd}>
             <OptimizationsBreakdownProjectLink
               breadcrumbLabel={intl.formatMessage(messages.breakdownBackToOptimizationsProject, { value: project })}
               isOptimizationsDetails={isOptimizationsDetails}
               linkPath={projectPath}
               project={project}
             />
-          </TextListItem>
-          <TextListItem component={TextListItemVariants.dt}>
+          </Content>
+          <Content component={ContentVariants.dt}>
             {intl.formatMessage(messages.optimizationsValues, { value: 'workload_type' })}
-          </TextListItem>
-          <TextListItem component={TextListItemVariants.dd}>{workloadType}</TextListItem>
-          <TextListItem component={TextListItemVariants.dt}>
+          </Content>
+          <Content component={ContentVariants.dd}>{workloadType}</Content>
+          <Content component={ContentVariants.dt}>
             {intl.formatMessage(messages.optimizationsValues, { value: 'workload' })}
-          </TextListItem>
-          <TextListItem component={TextListItemVariants.dd}>{workload}</TextListItem>
-        </TextList>
-      </TextContent>
+          </Content>
+          <Content component={ContentVariants.dd}>{workload}</Content>
+        </Content>
+      </Content>
     );
   };
 
   return (
-    <header style={styles.header}>
+    <header>
       {getBackToLink()}
       <div style={styles.title}>
         <Title headingLevel="h1" size={TitleSizes['2xl']}>
diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.styles.ts b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.styles.ts
index be5cc17d..52de399f 100644
--- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.styles.ts
+++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.styles.ts
@@ -1,5 +1,5 @@
-import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md';
-import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm';
+import t_global_spacer_md from '@patternfly/react-tokens/dist/js/t_global_spacer_md';
+import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm';
 
 export const chartStyles = {
   chartHeight: 350,
@@ -13,8 +13,8 @@ export const styles = {
     display: 'flex',
   },
   dividerContainer: {
-    marginRight: `-${global_spacer_sm.value}`,
-    paddingBottom: global_spacer_md.value,
-    paddingTop: global_spacer_md.value,
+    marginRight: `-${t_global_spacer_sm.value}`,
+    paddingBottom: t_global_spacer_md.value,
+    paddingTop: t_global_spacer_md.value,
   },
 } as { [className: string]: React.CSSProperties };
diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.tsx b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.tsx
index a1c6ab48..e3c8e949 100644
--- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.tsx
+++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.tsx
@@ -125,38 +125,40 @@ const OptimizationsBreakdownUtilization: React.FC<OptimizationsBreakdownUtilizat
   };
 
   return (
-    <Grid hasGutter>
-      <GridItem xl={6}>
-        <div style={styles.container}>
-          <div style={styles.cardContainer}>
-            <Card isPlain>
-              <CardTitle>
-                <Title headingLevel="h2" size={TitleSizes.lg}>
-                  {intl.formatMessage(messages.cpuUtilization)}
-                </Title>
-              </CardTitle>
-              <CardBody>{getChart(UsageType.cpuUsage, RecommendationType.cpu)}</CardBody>
-            </Card>
+    <Card>
+      <Grid hasGutter>
+        <GridItem xl={6}>
+          <div style={styles.container}>
+            <div style={styles.cardContainer}>
+              <Card isPlain>
+                <CardTitle>
+                  <Title headingLevel="h2" size={TitleSizes.lg}>
+                    {intl.formatMessage(messages.cpuUtilization)}
+                  </Title>
+                </CardTitle>
+                <CardBody>{getChart(UsageType.cpuUsage, RecommendationType.cpu)}</CardBody>
+              </Card>
+            </div>
+            <Divider
+              orientation={{
+                default: 'vertical',
+              }}
+              style={styles.dividerContainer}
+            />
           </div>
-          <Divider
-            orientation={{
-              default: 'vertical',
-            }}
-            style={styles.dividerContainer}
-          />
-        </div>
-      </GridItem>
-      <GridItem xl={6}>
-        <Card isPlain>
-          <CardTitle>
-            <Title headingLevel="h2" size={TitleSizes.lg}>
-              {intl.formatMessage(messages.memoryUtilization)}
-            </Title>
-          </CardTitle>
-          <CardBody>{getChart(UsageType.memoryUsage, RecommendationType.memory)}</CardBody>
-        </Card>
-      </GridItem>
-    </Grid>
+        </GridItem>
+        <GridItem xl={6}>
+          <Card isPlain>
+            <CardTitle>
+              <Title headingLevel="h2" size={TitleSizes.lg}>
+                {intl.formatMessage(messages.memoryUtilization)}
+              </Title>
+            </CardTitle>
+            <CardBody>{getChart(UsageType.memoryUsage, RecommendationType.memory)}</CardBody>
+          </Card>
+        </GridItem>
+      </Grid>
+    </Card>
   );
 };
 
diff --git a/src/routes/optimizations/optimizationsDetails/optimizationsDetails.styles.ts b/src/routes/optimizations/optimizationsDetails/optimizationsDetails.styles.ts
deleted file mode 100644
index bcd3af1a..00000000
--- a/src/routes/optimizations/optimizationsDetails/optimizationsDetails.styles.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100';
-import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md';
-import type React from 'react';
-
-export const styles = {
-  container: {
-    minHeight: '100vh',
-  },
-  pagination: {
-    backgroundColor: global_BackgroundColor_light_100.value,
-    paddingBottom: global_spacer_md.value,
-    paddingTop: global_spacer_md.value,
-  },
-} as { [className: string]: React.CSSProperties };
diff --git a/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx b/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx
index 7ce925f3..70e123c4 100644
--- a/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx
+++ b/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx
@@ -1,8 +1,7 @@
-import { PageSection } from '@patternfly/react-core';
+import { Card, CardBody, PageSection } from '@patternfly/react-core';
 import React from 'react';
 import { OptimizationsTable } from 'routes/optimizations/optimizationsTable';
 
-import { styles } from './optimizationsDetails.styles';
 import { OptimizationsDetailsHeader } from './optimizationsDetailsHeader';
 
 interface OptimizationsDetailsOwnProps {
@@ -23,19 +22,25 @@ const OptimizationsDetails: React.FC<OptimizationsDetailsProps> = ({
   projectPath,
 }) => {
   return (
-    <div style={styles.container}>
-      <OptimizationsDetailsHeader />
-      <PageSection isFilled>
-        <OptimizationsTable
-          breadcrumbLabel={breadcrumbLabel}
-          breadcrumbPath={breadcrumbPath}
-          isOptimizationsDetails
-          linkPath={linkPath}
-          linkState={linkState}
-          projectPath={projectPath}
-        />
+    <>
+      <PageSection>
+        <OptimizationsDetailsHeader />
       </PageSection>
-    </div>
+      <PageSection>
+        <Card>
+          <CardBody>
+            <OptimizationsTable
+              breadcrumbLabel={breadcrumbLabel}
+              breadcrumbPath={breadcrumbPath}
+              isOptimizationsDetails
+              linkPath={linkPath}
+              linkState={linkState}
+              projectPath={projectPath}
+            />
+          </CardBody>
+        </Card>
+      </PageSection>
+    </>
   );
 };
 
diff --git a/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.styles.ts b/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.styles.ts
index d82039c6..5a7b19ef 100644
--- a/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.styles.ts
+++ b/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.styles.ts
@@ -1,22 +1,15 @@
-import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100';
-import global_FontSize_md from '@patternfly/react-tokens/dist/js/global_FontSize_md';
-import global_spacer_lg from '@patternfly/react-tokens/dist/js/global_spacer_lg';
-import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm';
+import t_global_font_size_md from '@patternfly/react-tokens/dist/js/t_global_font_size_md';
+import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm';
 import type React from 'react';
 
 export const styles = {
-  header: {
-    backgroundColor: global_BackgroundColor_light_100.var,
-    padding: global_spacer_lg.var,
-  },
-  headerContent: {
-    display: 'flex',
-    justifyContent: 'space-between',
+  headerContainer: {
+    paddingBottom: 0,
   },
   infoIcon: {
-    fontSize: global_FontSize_md.value,
+    fontSize: t_global_font_size_md.value,
   },
   title: {
-    paddingBottom: global_spacer_sm.var,
+    paddingBottom: t_global_spacer_sm.var,
   },
 } as { [className: string]: React.CSSProperties };
diff --git a/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.tsx b/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.tsx
index 6b13f785..dbcceed4 100644
--- a/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.tsx
+++ b/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.tsx
@@ -16,40 +16,37 @@ const OptimizationsDetailsHeader: React.FC<OptimizationsDetailsHeaderProps> = ()
   const intl = useIntl();
 
   return (
-    <header style={styles.header}>
-      <div style={styles.headerContent}>
-        <Title headingLevel="h1" style={styles.title} size={TitleSizes['2xl']}>
-          {intl.formatMessage(messages.optimizations)}
-          <span style={styles.infoIcon}>
-            <Popover
-              aria-label={intl.formatMessage(messages.optimizationsInfoArialLabel)}
-              enableFlip
-              bodyContent={
-                <>
-                  <p>{intl.formatMessage(messages.optimizationsInfoTitle)}</p>
-                  <br />
-                  <p>
-                    {intl.formatMessage(messages.optimizationsInfoDesc, {
-                      learnMore: (
-                        <a href={intl.formatMessage(messages.docsOptimizations)} rel="noreferrer" target="_blank">
-                          {intl.formatMessage(messages.learnMore)}
-                        </a>
-                      ),
-                    })}
-                  </p>
-                </>
-              }
-            >
-              <Button
-                aria-label={intl.formatMessage(messages.optimizationsInfoButtonArialLabel)}
-                variant={ButtonVariant.plain}
-              >
-                <OutlinedQuestionCircleIcon />
-              </Button>
-            </Popover>
-          </span>
-        </Title>
-      </div>
+    <header style={styles.headerContainer}>
+      <Title headingLevel="h1" style={styles.title} size={TitleSizes['2xl']}>
+        {intl.formatMessage(messages.optimizations)}
+        <span style={styles.infoIcon}>
+          <Popover
+            aria-label={intl.formatMessage(messages.optimizationsInfoArialLabel)}
+            enableFlip
+            bodyContent={
+              <>
+                <p>{intl.formatMessage(messages.optimizationsInfoTitle)}</p>
+                <br />
+                <p>
+                  {intl.formatMessage(messages.optimizationsInfoDesc, {
+                    learnMore: (
+                      <a href={intl.formatMessage(messages.docsOptimizations)} rel="noreferrer" target="_blank">
+                        {intl.formatMessage(messages.learnMore)}
+                      </a>
+                    ),
+                  })}
+                </p>
+              </>
+            }
+          >
+            <Button
+              icon={<OutlinedQuestionCircleIcon />}
+              aria-label={intl.formatMessage(messages.optimizationsInfoButtonArialLabel)}
+              variant={ButtonVariant.plain}
+            />
+          </Popover>
+        </span>
+      </Title>
     </header>
   );
 };
diff --git a/src/routes/optimizations/optimizationsSummary/optimizations.styles.ts b/src/routes/optimizations/optimizationsSummary/optimizations.styles.ts
index cf85bacc..de2d9e3d 100644
--- a/src/routes/optimizations/optimizationsSummary/optimizations.styles.ts
+++ b/src/routes/optimizations/optimizationsSummary/optimizations.styles.ts
@@ -1,8 +1,8 @@
-import global_FontSize_md from '@patternfly/react-tokens/dist/js/global_FontSize_md';
+import t_global_font_size_md from '@patternfly/react-tokens/dist/js/t_global_font_size_md';
 import type React from 'react';
 
 export const styles = {
   infoIcon: {
-    fontSize: global_FontSize_md.value,
+    fontSize: t_global_font_size_md.value,
   },
 } as { [className: string]: React.CSSProperties };
diff --git a/src/routes/optimizations/optimizationsSummary/optimizationsSummary.scss b/src/routes/optimizations/optimizationsSummary/optimizationsSummary.scss
index 7a01575b..1954db4b 100644
--- a/src/routes/optimizations/optimizationsSummary/optimizationsSummary.scss
+++ b/src/routes/optimizations/optimizationsSummary/optimizationsSummary.scss
@@ -2,8 +2,8 @@
 
 .skeleton {
   height: 125px;
-  margin-bottom: var(--pf-v5-global--spacer--md);
-  margin-top: var(--pf-v5-global--spacer--md);
+  margin-bottom: var(--pf-t--global--font--size--md);
+  margin-top: var(--pf-t--global--font--size--md);
 }
 
 .summary {
diff --git a/src/routes/optimizations/optimizationsSummary/optimizationsSummary.tsx b/src/routes/optimizations/optimizationsSummary/optimizationsSummary.tsx
index bb02412f..191735df 100644
--- a/src/routes/optimizations/optimizationsSummary/optimizationsSummary.tsx
+++ b/src/routes/optimizations/optimizationsSummary/optimizationsSummary.tsx
@@ -81,11 +81,10 @@ const OptimizationsSummary: React.FC<OptimizationsSummaryProps> = ({
               }
             >
               <Button
+                icon={<OutlinedQuestionCircleIcon />}
                 aria-label={intl.formatMessage(messages.optimizationsInfoButtonArialLabel)}
                 variant={ButtonVariant.plain}
-              >
-                <OutlinedQuestionCircleIcon />
-              </Button>
+              />
             </Popover>
           </span>
         </Title>
diff --git a/src/routes/optimizations/optimizationsTable/optimizationsTable.tsx b/src/routes/optimizations/optimizationsTable/optimizationsTable.tsx
index a7aca803..eb5120a6 100644
--- a/src/routes/optimizations/optimizationsTable/optimizationsTable.tsx
+++ b/src/routes/optimizations/optimizationsTable/optimizationsTable.tsx
@@ -11,9 +11,9 @@ import { useDispatch, useSelector } from 'react-redux';
 import { useLocation } from 'react-router-dom';
 import type { AnyAction } from 'redux';
 import type { ThunkDispatch } from 'redux-thunk';
-import { Loading } from 'routes/components/page/loading';
 import { NotAvailable } from 'routes/components/page/notAvailable';
 import { NotConfigured } from 'routes/components/page/notConfigured';
+import { LoadingState } from 'routes/components/state/loadingState';
 import { styles } from 'routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles';
 import { getOrderById, getOrderByValue } from 'routes/utils/orderBy';
 import * as queryUtils from 'routes/utils/query';
@@ -198,14 +198,14 @@ const OptimizationsTable: React.FC<OptimizationsTableProps> = ({
     <>
       {getToolbar()}
       {reportFetchStatus === FetchStatus.inProgress ? (
-        <Loading
+        <LoadingState
           body={intl.formatMessage(messages.optimizationsLoadingStateDesc)}
           heading={intl.formatMessage(messages.optimizationsLoadingStateTitle)}
         />
       ) : (
         <>
           {getTable()}
-          <div style={styles.pagination}>{getPagination(isDisabled, true)}</div>
+          <div style={styles.paginationContainer}>{getPagination(isDisabled, true)}</div>
         </>
       )}
     </>
diff --git a/src/routes/optimizations/optimizationsTable/optimizationsToolbar.tsx b/src/routes/optimizations/optimizationsTable/optimizationsToolbar.tsx
index 0254434b..ddddeb6d 100644
--- a/src/routes/optimizations/optimizationsTable/optimizationsToolbar.tsx
+++ b/src/routes/optimizations/optimizationsTable/optimizationsToolbar.tsx
@@ -1,4 +1,4 @@
-import type { ToolbarChipGroup } from '@patternfly/react-core';
+import type { ToolbarLabelGroup } from '@patternfly/react-core';
 import type { RosQuery } from 'api/queries/rosQuery';
 import messages from 'locales/messages';
 import React from 'react';
@@ -20,7 +20,7 @@ interface OptimizationsToolbarOwnProps {
 }
 
 interface OptimizationsToolbarState {
-  categoryOptions?: ToolbarChipGroup[];
+  categoryOptions?: ToolbarLabelGroup[];
 }
 
 type OptimizationsToolbarProps = OptimizationsToolbarOwnProps & WrappedComponentProps;
@@ -35,7 +35,7 @@ class OptimizationsToolbarBase extends React.Component<OptimizationsToolbarProps
     });
   }
 
-  private getCategoryOptions = (): ToolbarChipGroup[] => {
+  private getCategoryOptions = (): ToolbarLabelGroup[] => {
     const { hideCluster, hideProject, intl } = this.props;
 
     const options = [
diff --git a/src/routes/staging/optimizations/optimizationsBadgeStaging.tsx b/src/routes/staging/optimizations/optimizationsBadgeStaging.tsx
index 288d8f99..35ca1347 100644
--- a/src/routes/staging/optimizations/optimizationsBadgeStaging.tsx
+++ b/src/routes/staging/optimizations/optimizationsBadgeStaging.tsx
@@ -14,7 +14,7 @@ const OptimizationsBadgeStaging: React.FC<OptimizationsBadgeStagingProps> = () =
   const projectFilter = 'openshift';
 
   return (
-    <PageSection isFilled>
+    <PageSection>
       <OptimizationsBadge cluster={clusterFilter} project={projectFilter} />
     </PageSection>
   );
diff --git a/src/routes/staging/optimizations/optimizationsLinkStaging.tsx b/src/routes/staging/optimizations/optimizationsLinkStaging.tsx
index a807316c..e0f69889 100644
--- a/src/routes/staging/optimizations/optimizationsLinkStaging.tsx
+++ b/src/routes/staging/optimizations/optimizationsLinkStaging.tsx
@@ -33,7 +33,7 @@ const OptimizationsLinkStaging: React.FC<OptimizationsLinkStagingProps> = () =>
   });
 
   return (
-    <PageSection isFilled>
+    <PageSection>
       <OptimizationsLink cluster={clusterFilter} project={projectFilter} linkPath={linkPath} linkState={state} />
     </PageSection>
   );
diff --git a/src/routes/staging/optimizations/optimizationsSummaryStaging.tsx b/src/routes/staging/optimizations/optimizationsSummaryStaging.tsx
index f7f93f87..b2fce5a6 100644
--- a/src/routes/staging/optimizations/optimizationsSummaryStaging.tsx
+++ b/src/routes/staging/optimizations/optimizationsSummaryStaging.tsx
@@ -12,7 +12,7 @@ type OptimizationsSummaryStagingProps = OptimizationsSummaryStagingOwnProps;
 
 const OptimizationsSummaryStaging: React.FC<OptimizationsSummaryStagingProps> = () => {
   return (
-    <PageSection isFilled>
+    <PageSection>
       <OptimizationsSummary linkPath={formatPath(routes.optimizationsDetails.path)} />
     </PageSection>
   );
diff --git a/src/routes/staging/optimizations/optimizationsTableStaging.tsx b/src/routes/staging/optimizations/optimizationsTableStaging.tsx
index 7179c13d..50e5c6ea 100644
--- a/src/routes/staging/optimizations/optimizationsTableStaging.tsx
+++ b/src/routes/staging/optimizations/optimizationsTableStaging.tsx
@@ -34,7 +34,7 @@ const OptimizationsDetailsStaging: React.FC<OptimizationsDetailsStagingProps> =
   const projectFilter = 'openshift';
 
   return (
-    <PageSection isFilled>
+    <PageSection>
       <OptimizationsTable
         breadcrumbLabel={
           intl.formatMessage(messages.breakdownBackToOptimizationsProject, { value: groupByValue }) as string
diff --git a/src/styles/global.css b/src/styles/global.css
index 1eff2a25..abdef901 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -8,8 +8,8 @@ body {
   display: flex;
 }
 
-.pf-v5-l-grid > *,
-.pf-v5-l-grid .pf-v5-l-grid__item {
+.pf-v6-l-grid > *,
+.pf-v6-l-grid .pf-v6-l-grid__item {
   min-height: 0;
   min-width: 0;
 }
diff --git a/src/styles/revert.css b/src/styles/revert.css
index 4f16bad4..95151f85 100644
--- a/src/styles/revert.css
+++ b/src/styles/revert.css
@@ -1,10 +1,10 @@
 /* For testing only */
 /* https://developer.mozilla.org/en-US/docs/Web/CSS/revert */
-[class*="pf-v5-c"],
-[class*="pf-v5-c"] *,
-[class*="pf-v5-l"],
-[class*="pf-v5-l"] *,
-[class*="pf-v5-u"],
-[class*="pf-v5-u"] * {
+[class*="pf-v6-c"],
+[class*="pf-v6-c"] *,
+[class*="pf-v6-l"],
+[class*="pf-v6-l"] *,
+[class*="pf-v6-u"],
+[class*="pf-v6-u"] * {
   all: revert;
 }
diff --git a/src/styles/theme.ts b/src/styles/theme.ts
index 01dbc9f0..55c7a49a 100644
--- a/src/styles/theme.ts
+++ b/src/styles/theme.ts
@@ -1,29 +1,26 @@
-import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100';
-import global_BoxShadow_sm_right from '@patternfly/react-tokens/dist/js/global_BoxShadow_sm_right';
-import global_breakpoint_lg from '@patternfly/react-tokens/dist/js/global_breakpoint_lg';
-import global_breakpoint_md from '@patternfly/react-tokens/dist/js/global_breakpoint_md';
-import global_breakpoint_sm from '@patternfly/react-tokens/dist/js/global_breakpoint_sm';
-import global_breakpoint_xl from '@patternfly/react-tokens/dist/js/global_breakpoint_xl';
-import global_breakpoint_xs from '@patternfly/react-tokens/dist/js/global_breakpoint_xs';
-import global_Color_dark_100 from '@patternfly/react-tokens/dist/js/global_Color_dark_100';
+import t_global_background_color_100 from '@patternfly/react-tokens/dist/js/t_global_background_color_100';
+import t_global_box_shadow_sm_right from '@patternfly/react-tokens/dist/js/t_global_box_shadow_sm_right';
+import t_global_breakpoint_lg from '@patternfly/react-tokens/dist/js/t_global_breakpoint_lg';
+import t_global_breakpoint_md from '@patternfly/react-tokens/dist/js/t_global_breakpoint_md';
+import t_global_breakpoint_sm from '@patternfly/react-tokens/dist/js/t_global_breakpoint_sm';
+import t_global_breakpoint_xl from '@patternfly/react-tokens/dist/js/t_global_breakpoint_xl';
+import t_global_breakpoint_xs from '@patternfly/react-tokens/dist/js/t_global_breakpoint_xs';
 
 const createBreakpoint = (size: string) => `@media (min-width: ${size})`;
 
 const breakpoints = {
-  xs: createBreakpoint(global_breakpoint_xs.value),
-  sm: createBreakpoint(global_breakpoint_sm.value),
-  md: createBreakpoint(global_breakpoint_md.value),
-  lg: createBreakpoint(global_breakpoint_lg.value),
-  xl: createBreakpoint(global_breakpoint_xl.value),
+  xs: createBreakpoint(t_global_breakpoint_xs.value),
+  sm: createBreakpoint(t_global_breakpoint_sm.value),
+  md: createBreakpoint(t_global_breakpoint_md.value),
+  lg: createBreakpoint(t_global_breakpoint_lg.value),
+  xl: createBreakpoint(t_global_breakpoint_xl.value),
 };
 
 export const theme = {
   breakpoints,
   page_breakpoint: breakpoints.md,
   page_masthead_height: 70,
-  page_sidebar_background: global_BackgroundColor_light_100.value,
-  page_sidebar_boxShadow: global_BoxShadow_sm_right.value,
+  page_sidebar_background: t_global_background_color_100.value,
+  page_sidebar_boxShadow: t_global_box_shadow_sm_right.value,
   page_sidebar_width: 300,
-  verticalNav_color: global_Color_dark_100.value,
-  verticalNav_link_color: global_Color_dark_100.value,
 };