Repository: chaoss/grimoirelab-sortinghat (language: python)

Issue:
[FR] Button to remove all pending/unapplied match recommendations
The match recommendations are currently shared by manual processing and _Unify_ jobs.

This makes it very risky if _Unify_ jobs are scheduled because manual processing must end before the next scheduled run.

We might get way too many recommendations to handle manually. In such cases, _Unify_ jobs have to be de-scheduled to prevent massive uncontrolled unifications that could cause snowballs.

And match recommendations can only be removed by accessing the database directly. There's no option in the WUI, nor in the API to do so.

The most basic solution would be a button in the interface next to the recommendations count (or at least an option in the API) that disables (removes) the unapplied recommendations.


Discussion / hints:
We need to clarify whether the unify process merges recommendations created by the "recommendations" feature with a more "relaxed" matching algorithm.
For this feature we need two things:

-  an API mutation to remove the existing recommendations
- a button on the UI to remove this recommendations


Fix patch:
diff --git a/releases/unreleased/remove-merge-recommendations.yml b/releases/unreleased/remove-merge-recommendations.yml
new file mode 100644
index 00000000..505b62f4
--- /dev/null
+++ b/releases/unreleased/remove-merge-recommendations.yml
@@ -0,0 +1,9 @@
+---
+title: Remove merge recommendations
+category: added
+author: Eva Millán <evamillan@bitergia.com>
+issue: 883
+notes: >
+  Recommendations can now be deleted from the database
+  and not just dismissed. This is useful in case there
+  are too many recommendations to handle manually. 
diff --git a/sortinghat/core/api.py b/sortinghat/core/api.py
index 88930284..06fdb94b 100644
--- a/sortinghat/core/api.py
+++ b/sortinghat/core/api.py
@@ -47,6 +47,7 @@
                  delete_scheduled_task as delete_scheduled_task_db,
                  delete_domain as delete_domain_db,
                  delete_alias as delete_alias_db,
+                 delete_merge_recommendations as delete_merge_recommendations_db,
                  update_profile as update_profile_db,
                  update_scheduled_task as update_scheduled_task_db,
                  move_identity as move_identity_db,
@@ -63,7 +64,7 @@
                      DuplicateRangeError,
                      EqualIndividualError)
 from .log import TransactionsLog
-from .models import Identity, MIN_PERIOD_DATE, MAX_PERIOD_DATE
+from .models import Identity, MergeRecommendation, MIN_PERIOD_DATE, MAX_PERIOD_DATE
 from .aux import merge_datetime_ranges
 from .decorators import atomic_using_tenant
 from ..utils import generate_uuid
@@ -1617,3 +1618,24 @@ def delete_scheduled_task(ctx, task_id):
     logger.info(f"Task {task_id} deleted")
 
     return task
+
+
+@atomic_using_tenant
+def delete_merge_recommendations(ctx):
+    """Remove merge recommendations from the registry.
+
+    This function removes all the merge recommendations that have not been
+    processed from the registry.
+
+    :param ctx: context from where this method is called
+    """
+    trxl = TransactionsLog.open('delete_merge_recommendations', ctx)
+
+    recommendations = MergeRecommendation.objects.filter(applied__isnull=True)
+    delete_merge_recommendations_db(trxl, recommendations=recommendations)
+
+    trxl.close()
+
+    logger.info("Merge recommendations deleted")
+
+    return recommendations
diff --git a/sortinghat/core/db.py b/sortinghat/core/db.py
index 830cfdca..4eabb073 100644
--- a/sortinghat/core/db.py
+++ b/sortinghat/core/db.py
@@ -46,7 +46,8 @@
                      Enrollment,
                      Operation,
                      ScheduledTask,
-                     Alias)
+                     Alias,
+                     MergeRecommendation)
 from .aux import validate_field
 
 
@@ -1328,3 +1329,26 @@ def delete_alias(trxl, alias):
     trxl.log_operation(op_type=Operation.OpType.DELETE, entity_type='alias',
                        timestamp=datetime_utcnow(), args=op_args,
                        target=op_args['alias'])
+
+
+def delete_merge_recommendations(trxl, recommendations):
+    """Remove merge recommendations from the database.
+
+    :param trxl: TransactionsLog object from the method calling this one
+    :param recommendations: MergeRecommendation queryset to remove
+
+    :raises ValueError: raised when `recommendations` is not a MergeRecommendation queryset;
+    """
+    # Setting operation arguments before they are modified
+    op_args = {
+        'merge_recommendations': [rec.id for rec in recommendations]
+    }
+
+    if recommendations.model is not MergeRecommendation:
+        raise ValueError("'recommendations' must be a MergeRecommendation queryset")
+
+    recommendations.delete()
+
+    trxl.log_operation(op_type=Operation.OpType.DELETE, entity_type='merge_recommendation',
+                       timestamp=datetime_utcnow(), args=op_args,
+                       target='merge_recommendations')
diff --git a/sortinghat/core/schema.py b/sortinghat/core/schema.py
index 72b52788..d7baf1f7 100644
--- a/sortinghat/core/schema.py
+++ b/sortinghat/core/schema.py
@@ -58,6 +58,7 @@
                   delete_team,
                   delete_domain,
                   delete_alias,
+                  delete_merge_recommendations,
                   enroll,
                   withdraw,
                   update_enrollment,
@@ -1374,6 +1375,22 @@ def mutate(self, info, recommendation_id, apply):
         )
 
 
+class DeleteMergeRecommendations(graphene.Mutation):
+    deleted = graphene.Boolean()
+
+    @check_permissions(['core.delete_mergerecommendation'])
+    def mutate(self, info):
+        user = info.context.user
+        tenant = get_db_tenant()
+        ctx = SortingHatContext(user=user, tenant=tenant)
+
+        rec = delete_merge_recommendations(ctx)
+
+        return DeleteMergeRecommendations(
+            deleted=True
+        )
+
+
 class ManageAffiliationRecommendation(graphene.Mutation):
     class Arguments:
         recommendation_id = graphene.Int()
@@ -2197,6 +2214,9 @@ class SortingHatMutation(graphene.ObjectType):
     update_scheduled_task = UpdateScheduledTask.Field(
         description='Update a periodic task.'
     )
+    delete_merge_recommendations = DeleteMergeRecommendations.Field(
+        description='Remove all unapplied merge recommendations.'
+    )
 
     # JWT authentication
     token_auth = graphql_jwt.ObtainJSONWebToken.Field()
diff --git a/ui/src/apollo/mutations.js b/ui/src/apollo/mutations.js
index 51a4a420..f054b1d1 100644
--- a/ui/src/apollo/mutations.js
+++ b/ui/src/apollo/mutations.js
@@ -442,6 +442,14 @@ const ADD_LINKEDIN_PROFILE = gql`
   ${FULL_INDIVIDUAL}
 `;
 
+const DELETE_MERGE_RECOMMENDATIONS = gql`
+  mutation deleteMergeRecommendations {
+    deleteMergeRecommendations {
+      deleted
+    }
+  }
+`;
+
 const tokenAuth = (apollo, username, password) => {
   const response = apollo.mutate({
     mutation: TOKEN_AUTH,
@@ -854,6 +862,12 @@ const addLinkedinProfile = (apollo, uuid, username) => {
   });
 };
 
+const deleteMergeRecommendations = (apollo) => {
+  return apollo.mutate({
+    mutation: DELETE_MERGE_RECOMMENDATIONS,
+  });
+};
+
 export {
   tokenAuth,
   lockIndividual,
@@ -888,4 +902,5 @@ export {
   addAlias,
   deleteAlias,
   addLinkedinProfile,
+  deleteMergeRecommendations,
 };
diff --git a/ui/src/components/IndividualsTable.stories.js b/ui/src/components/IndividualsTable.stories.js
index aad7c8fe..a32d19cd 100644
--- a/ui/src/components/IndividualsTable.stories.js
+++ b/ui/src/components/IndividualsTable.stories.js
@@ -412,6 +412,7 @@ export const Default = () => ({
       };
     },
     manageRecommendation: () => {},
+    deleteMergeRecommendations: () => {},
   }),
   data: () => ({
     query: query,
@@ -478,6 +479,7 @@ export const Expandable = () => ({
       };
     },
     manageRecommendation: () => {},
+    deleteMergeRecommendations: () => {},
   }),
   data: () => ({
     query: query,
@@ -535,6 +537,7 @@ export const Outlined = () => ({
       };
     },
     manageRecommendation: () => {},
+    deleteMergeRecommendations: () => {},
   }),
   data: () => ({
     query: query,
@@ -582,6 +585,7 @@ export const HiddenHeader = () => ({
     getRecommendations: () => {},
     getRecommendationsCount: () => {},
     manageRecommendation: () => {},
+    deleteMergeRecommendations: () => {},
   }),
   data: () => ({
     query: query,
diff --git a/ui/src/components/Recommendation.stories.js b/ui/src/components/Recommendation.stories.js
index a8d9b834..966f8c65 100644
--- a/ui/src/components/Recommendation.stories.js
+++ b/ui/src/components/Recommendation.stories.js
@@ -188,6 +188,7 @@ export const Default = () => ({
       getRecommendationsCount: this.getRecommendations,
       getRecommendations: this.getRecommendations,
       manageRecommendation: this.manageRecommendation,
+      deleteMergeRecommendations: () => {},
     };
   },
 });
@@ -208,12 +209,16 @@ export const CustomModalActivator = () => ({
       this.index = +!this.index;
       return true;
     },
+    deleteRecommendations() {
+      return true;
+    },
   },
   provide() {
     return {
       getRecommendationsCount: this.getRecommendations,
       getRecommendations: this.getRecommendations,
       manageRecommendation: this.manageRecommendation,
+      deleteMergeRecommendations: () => {},
     };
   },
 });
diff --git a/ui/src/components/Recommendations.vue b/ui/src/components/Recommendations.vue
index 1ce17cb7..0a057b7b 100644
--- a/ui/src/components/Recommendations.vue
+++ b/ui/src/components/Recommendations.vue
@@ -1,17 +1,68 @@
 <template>
   <v-dialog v-model="isOpen" width="700" persistent>
-    <template v-slot:activator="{ props }">
-      <v-btn
+    <template v-slot:activator="{ props: dialog }">
+      <v-btn-group
         v-show="count !== 0"
-        v-bind="props"
         class="mr-4"
-        height="34"
+        density="comfortable"
         variant="outlined"
-        size="small"
+        divided
       >
-        <v-icon size="small" start>mdi-lightbulb-on-outline</v-icon>
-        {{ count }} recommendation{{ count > 1 ? "s" : "" }}
-      </v-btn>
+        <v-btn v-bind="dialog" height="34" variant="outlined" size="small">
+          <v-icon size="small" start>mdi-lightbulb-on-outline</v-icon>
+          Recommendations
+          <v-chip class="ml-1" size="x-small">{{ count }}</v-chip>
+        </v-btn>
+        <v-menu v-model="menu" location="bottom">
+          <template v-slot:activator="{ props: menu }">
+            <v-btn
+              size="small"
+              height="34"
+              icon="mdi-menu-down"
+              aria-label="Open menu"
+              v-bind="menu"
+            />
+          </template>
+          <v-list density="comfortable" nav>
+            <v-list-item v-bind="dialog">
+              <v-list-item-title>Review recommendations</v-list-item-title>
+            </v-list-item>
+            <v-dialog
+              activator="parent"
+              max-width="500"
+              aria-label="Delete recommendations confirmation"
+            >
+              <template v-slot:activator="{ props: activator }">
+                <v-list-item v-bind="activator">
+                  <v-list-item-title>
+                    Delete all recommendations
+                  </v-list-item-title>
+                </v-list-item>
+              </template>
+              <template v-slot:default="{ isActive }">
+                <v-card
+                  title="Delete all recommendations?"
+                  :text="errorMessage"
+                >
+                  <template v-slot:actions>
+                    <v-btn
+                      class="ml-auto"
+                      text="Cancel"
+                      @click="isActive.value = false"
+                    ></v-btn>
+                    <v-btn
+                      color="primary"
+                      text="Delete"
+                      variant="flat"
+                      @click="deleteRecommendations(isActive)"
+                    ></v-btn>
+                  </template>
+                </v-card>
+              </template>
+            </v-dialog>
+          </v-list>
+        </v-menu>
+      </v-btn-group>
     </template>
 
     <v-card v-if="currentItem" class="section">
@@ -98,6 +149,7 @@ export default {
     "getRecommendations",
     "getRecommendationsCount",
     "manageRecommendation",
+    "deleteMergeRecommendations",
   ],
   data() {
     return {
@@ -105,6 +157,7 @@ export default {
       currentItem: null,
       isOpen: false,
       errorMessage: null,
+      menu: null,
     };
   },
   methods: {
@@ -163,6 +216,18 @@ export default {
       this.$emit("updateTable");
       this.$emit("updateWorkspace");
     },
+    async deleteRecommendations(isActive) {
+      try {
+        await this.deleteMergeRecommendations();
+        this.count = 0;
+        this.menu = false;
+        this.errorMessage = null;
+        isActive.value = false;
+      } catch (error) {
+        this.$logger.error(`Error removing recommendations: ${error}`);
+        this.errorMessage = this.$getErrorMessage(error);
+      }
+    },
   },
   watch: {
     isOpen(value) {
@@ -183,4 +248,8 @@ export default {
 .col {
   max-width: 290px;
 }
+
+.v-btn-group--density-comfortable.v-btn-group {
+  height: 34px;
+}
 </style>
diff --git a/ui/src/components/WorkSpace.stories.js b/ui/src/components/WorkSpace.stories.js
index d7d9512a..1f4c9f07 100644
--- a/ui/src/components/WorkSpace.stories.js
+++ b/ui/src/components/WorkSpace.stories.js
@@ -274,6 +274,7 @@ export const DragAndDrop = () => ({
       };
     },
     manageRecommendation: () => {},
+    deleteMergeRecommendations: () => {},
   }),
   data: () => ({
     individuals: [],
diff --git a/ui/src/views/Dashboard.vue b/ui/src/views/Dashboard.vue
index efb6dfa5..56865559 100644
--- a/ui/src/views/Dashboard.vue
+++ b/ui/src/views/Dashboard.vue
@@ -114,6 +114,7 @@ import {
   mergeOrganizations,
   addAlias,
   deleteAlias,
+  deleteMergeRecommendations,
 } from "../apollo/mutations";
 import IndividualsTable from "../components/IndividualsTable";
 import OrganizationsTable from "../components/OrganizationsTable";
@@ -369,6 +370,10 @@ export default {
       const response = await deleteAlias(this.$apollo, alias);
       return response;
     },
+    async deleteRecommendations() {
+      const response = await deleteMergeRecommendations(this.$apollo);
+      return response;
+    },
   },
   async mounted() {
     if (this.workspace && this.workspace.length > 0) {
@@ -386,6 +391,7 @@ export default {
       getRecommendations: this.getRecommendations,
       getRecommendationsCount: this.getRecommendationsCount,
       manageRecommendation: this.manageRecommendation,
+      deleteMergeRecommendations: this.deleteRecommendations,
     };
   },
 };


Test patch:
diff --git a/tests/test_api.py b/tests/test_api.py
index dab4195e..5c47cee4 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -49,7 +49,8 @@
                                     Transaction,
                                     Operation,
                                     ScheduledTask,
-                                    Alias)
+                                    Alias,
+                                    MergeRecommendation)
 
 NOT_FOUND_ERROR = "{entity} not found in the registry"
 ENROLLMENT_RANGE_INVALID = "range date '{start}'-'{end}' is part of an existing range for {org}"
@@ -6720,3 +6721,78 @@ def test_operations(self):
         op1_args = json.loads(op1.args)
         self.assertEqual(len(op1_args), 1)
         self.assertEqual(op1_args['alias'], 'Example Inc.')
+
+
+class TestDeleteMergeRecommendations(TestCase):
+    """Unit tests for delete_merge_recommendations"""
+
+    def setUp(self):
+        """Load initial dataset"""
+
+        self.user = get_user_model().objects.create(username='test')
+        self.ctx = SortingHatContext(self.user)
+
+        identity1 = api.add_identity(self.ctx, 'scm', email='jsmith@example')
+        identity2 = api.add_identity(self.ctx, 'mls', email='jsmith@example')
+        identity3 = api.add_identity(self.ctx, 'scm', email='johnsmith@example')
+
+        self.rec1 = MergeRecommendation.objects.create(individual1=identity1.individual,
+                                                       individual2=identity2.individual)
+        self.rec2 = MergeRecommendation.objects.create(individual1=identity1.individual,
+                                                       individual2=identity3.individual)
+        self.rec3 = MergeRecommendation.objects.create(individual1=identity2.individual,
+                                                       individual2=identity3.individual,
+                                                       applied=0)
+
+    def test_delete_alias(self):
+        """Check whether it deletes all unreviewed merge recommendations"""
+
+        api.delete_merge_recommendations(self.ctx)
+
+        recs = MergeRecommendation.objects.all()
+        self.assertEqual(len(recs), 1)
+
+        rec = recs[0]
+        self.assertEqual(rec, self.rec3)
+        self.assertEqual(rec.applied, 0)
+
+    def test_transaction(self):
+        """Check if a transaction is created when deleting recommendations"""
+
+        timestamp = datetime_utcnow()
+
+        api.delete_merge_recommendations(self.ctx)
+
+        transactions = Transaction.objects.filter(created_at__gte=timestamp)
+        self.assertEqual(len(transactions), 1)
+
+        trx = transactions[0]
+        self.assertIsInstance(trx, Transaction)
+        self.assertEqual(trx.name, 'delete_merge_recommendations')
+        self.assertGreater(trx.created_at, timestamp)
+        self.assertEqual(trx.authored_by, self.ctx.user.username)
+
+    def test_operations(self):
+        """Check if the right operations are created when deleting recommendations"""
+
+        timestamp = datetime_utcnow()
+
+        api.delete_merge_recommendations(self.ctx)
+
+        transactions = Transaction.objects.filter(created_at__gte=timestamp)
+        trx = transactions[0]
+
+        operations = Operation.objects.filter(trx=trx)
+        self.assertEqual(len(operations), 1)
+
+        op1 = operations[0]
+        self.assertIsInstance(op1, Operation)
+        self.assertEqual(op1.op_type, Operation.OpType.DELETE.value)
+        self.assertEqual(op1.entity_type, 'merge_recommendation')
+        self.assertEqual(op1.target, 'merge_recommendations')
+        self.assertEqual(op1.trx, trx)
+        self.assertGreater(op1.timestamp, timestamp)
+
+        op1_args = json.loads(op1.args)
+        self.assertEqual(len(op1_args), 1)
+        self.assertEqual(op1_args['merge_recommendations'], [self.rec1.id, self.rec2.id])
diff --git a/tests/test_db.py b/tests/test_db.py
index 97ec142e..9a807531 100644
--- a/tests/test_db.py
+++ b/tests/test_db.py
@@ -50,7 +50,8 @@
                                     Transaction,
                                     Operation,
                                     ScheduledTask,
-                                    Alias)
+                                    Alias,
+                                    MergeRecommendation)
 
 DUPLICATED_ORG_ERROR = "Organization 'Example' already exists in the registry"
 DUPLICATED_DOM_ERROR = "Domain 'example.org' already exists in the registry"
@@ -111,6 +112,7 @@
 MOVE_DOMAIN_ERROR = "Domain 'example.com' is already assigned to 'Example'"
 MOVE_TEAM_ERROR = "Team 'Example team' is already assigned to 'Example organization'"
 ALIAS_NAME_WHITESPACES_ERROR = "'name' cannot be composed by whitespaces only"
+DELETE_MERGE_RECOMMENDATIONS_ERROR = "'recommendations' must be a MergeRecommendation queryset"
 
 
 class TestFindIndividual(TestCase):
@@ -3475,3 +3477,77 @@ def test_operations(self):
         op1_args = json.loads(op1.args)
         self.assertEqual(len(op1_args), 1)
         self.assertEqual(op1_args['alias'], 'Example Inc.')
+
+
+class TestDeleteMergeRecommendations(TestCase):
+    """Unit tests for delete_merge_recommendations"""
+
+    def setUp(self):
+        """Load initial dataset"""
+
+        self.user = get_user_model().objects.create(username='test')
+        self.ctx = SortingHatContext(self.user)
+
+        self.trxl = TransactionsLog.open('delete_merge_recommendations', self.ctx)
+
+    def test_delete_merge_recommendations(self):
+        """Check whether it deletes merge recommendations"""
+
+        indv1 = Individual.objects.create(mk='AAAA')
+        indv2 = Individual.objects.create(mk='BBBB')
+        indv3 = Individual.objects.create(mk='CCCC')
+        MergeRecommendation.objects.create(individual1=indv1, individual2=indv2)
+        MergeRecommendation.objects.create(individual1=indv1, individual2=indv3)
+        MergeRecommendation.objects.create(individual1=indv2, individual2=indv3)
+
+        recs = MergeRecommendation.objects.all()
+        self.assertEqual(len(recs), 3)
+
+        db.delete_merge_recommendations(self.trxl, recs)
+
+        recs = MergeRecommendation.objects.all()
+        self.assertEqual(len(recs), 0)
+
+    def test_delete_merge_recommendations_error(self):
+        """Check whether the wrong type of queryset cannot be removed"""
+
+        orgs = Organization.objects.all()
+
+        with self.assertRaisesRegex(ValueError, DELETE_MERGE_RECOMMENDATIONS_ERROR):
+            db.delete_merge_recommendations(self.trxl, orgs)
+
+        # Check if operations have not been generated after the failure
+        operations = Operation.objects.all()
+        self.assertEqual(len(operations), 0)
+
+    def test_operations(self):
+        """Check if the right operations are created"""
+
+        timestamp = datetime_utcnow()
+        indv1 = Individual.objects.create(mk='AAAA')
+        indv2 = Individual.objects.create(mk='BBBB')
+        indv3 = Individual.objects.create(mk='CCCC')
+        rec1 = MergeRecommendation.objects.create(individual1=indv1, individual2=indv2)
+        rec2 = MergeRecommendation.objects.create(individual1=indv1, individual2=indv3)
+        rec3 = MergeRecommendation.objects.create(individual1=indv2, individual2=indv3)
+
+        recs = MergeRecommendation.objects.all()
+        db.delete_merge_recommendations(self.trxl, recs)
+
+        transactions = Transaction.objects.filter(name='delete_merge_recommendations')
+        trx = transactions[0]
+
+        operations = Operation.objects.filter(trx=trx)
+        self.assertEqual(len(operations), 1)
+
+        op1 = operations[0]
+        self.assertIsInstance(op1, Operation)
+        self.assertEqual(op1.op_type, Operation.OpType.DELETE.value)
+        self.assertEqual(op1.entity_type, 'merge_recommendation')
+        self.assertEqual(op1.trx, trx)
+        self.assertEqual(op1.target, 'merge_recommendations')
+        self.assertGreater(op1.timestamp, timestamp)
+
+        op1_args = json.loads(op1.args)
+        self.assertEqual(len(op1_args), 1)
+        self.assertEqual(op1_args['merge_recommendations'], [rec1.id, rec2.id, rec3.id])
diff --git a/tests/test_schema.py b/tests/test_schema.py
index 0ab1ee17..962310d5 100644
--- a/tests/test_schema.py
+++ b/tests/test_schema.py
@@ -11662,3 +11662,83 @@ def test_authentication(self):
 
         msg = executed['errors'][0]['message']
         self.assertEqual(msg, AUTHENTICATION_ERROR)
+
+
+class TestDeleteMergeRecommendationsMutation(django.test.TestCase):
+    """Unit tests for mutation to accept a match recommendation"""
+
+    SH_DELETE_MERGE_RECS = """
+      mutation deleteMergeRecommendations {
+        deleteMergeRecommendations {
+          deleted
+        }
+      }
+    """
+
+    def setUp(self):
+        """Set queries context"""
+
+        self.user = get_user_model().objects.create(username='test', is_superuser=True)
+        self.context_value = RequestFactory().get(GRAPHQL_ENDPOINT)
+        self.context_value.user = self.user
+
+        indv1 = Individual.objects.create(mk='AAAA')
+        indv2 = Individual.objects.create(mk='BBBB')
+        indv3 = Individual.objects.create(mk='CCCC')
+        Profile.objects.create(name="John",
+                               email='jsmith@example.com',
+                               individual=indv1)
+        Profile.objects.create(name="John",
+                               email='jsmith2@example.com',
+                               individual=indv2)
+        Profile.objects.create(name="John",
+                               email='jsmith3@example.com',
+                               individual=indv3)
+        MergeRecommendation.objects.create(individual1=indv1, individual2=indv2)
+        MergeRecommendation.objects.create(individual1=indv2, individual2=indv3)
+
+    def test_delete_merge_recommendations(self):
+        """Check whether it deletes all merge recommendations"""
+
+        client = graphene.test.Client(schema)
+        executed = client.execute(self.SH_DELETE_MERGE_RECS,
+                                  context_value=self.context_value)
+
+        # Check result
+        rel = executed['data']['deleteMergeRecommendations']
+        self.assertEqual(rel['deleted'], True)
+
+        recs = MergeRecommendation.objects.all()
+        self.assertEqual(len(recs), 0)
+
+    def test_keep_reviewed_recommendations(self):
+        """Check whether it deletes all merge recommendations except reviewed ones"""
+
+        indv1 = Individual.objects.create(mk='DDDD')
+        indv2 = Individual.objects.create(mk='EEEE')
+        MergeRecommendation.objects.create(individual1=indv1, individual2=indv2, applied=0)
+
+        client = graphene.test.Client(schema)
+        executed = client.execute(self.SH_DELETE_MERGE_RECS,
+                                  context_value=self.context_value)
+
+        # Check result
+        rel = executed['data']['deleteMergeRecommendations']
+        self.assertEqual(rel['deleted'], True)
+
+        recs = MergeRecommendation.objects.all()
+        self.assertEqual(len(recs), 1)
+
+    def test_authentication(self):
+        """Check if it fails when a non-authenticated user executes the mutation"""
+
+        context_value = RequestFactory().get(GRAPHQL_ENDPOINT)
+        context_value.user = AnonymousUser()
+
+        client = graphene.test.Client(schema)
+
+        executed = client.execute(self.SH_DELETE_MERGE_RECS,
+                                  context_value=context_value)
+
+        msg = executed['errors'][0]['message']
+        self.assertEqual(msg, AUTHENTICATION_ERROR)
diff --git a/ui/tests/unit/__snapshots__/storybook.spec.js.snap b/ui/tests/unit/__snapshots__/storybook.spec.js.snap
index 8344ad59..62a14b02 100644
--- a/ui/tests/unit/__snapshots__/storybook.spec.js.snap
+++ b/ui/tests/unit/__snapshots__/storybook.spec.js.snap
@@ -16603,40 +16603,104 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
       <div>
         
         
-        <button
-          aria-expanded="false"
-          aria-haspopup="dialog"
-          class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined mr-4"
-          style="height: 34px; display: none;"
-          targetref="[object Object]"
-          type="button"
+        <div
+          class="v-btn-group v-btn-group--divided v-theme--light v-btn-group--density-comfortable mr-4"
+          style="display: none;"
         >
+          <button
+            aria-expanded="false"
+            aria-haspopup="dialog"
+            class="v-btn v-btn--flat v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+            style="height: 34px;"
+            targetref="[object Object]"
+            type="button"
+          >
+            
+            <span
+              class="v-btn__overlay"
+            />
+            <span
+              class="v-btn__underlay"
+            />
+            
+            <!---->
+            <span
+              class="v-btn__content"
+              data-no-activator=""
+            >
+              
+              
+              <i
+                aria-hidden="true"
+                class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+              />
+               Recommendations 
+              <span
+                class="v-chip v-theme--light v-chip--density-default v-chip--size-x-small v-chip--variant-tonal ml-1"
+                draggable="false"
+              >
+                
+                <!---->
+                <span
+                  class="v-chip__underlay"
+                />
+                
+                <!---->
+                <!---->
+                <div
+                  class="v-chip__content"
+                  data-no-activator=""
+                >
+                  
+                  0
+                  
+                </div>
+                <!---->
+                <!---->
+              </span>
+              
+              
+            </span>
+            <!---->
+            <!---->
+          </button>
           
-          <span
-            class="v-btn__overlay"
-          />
-          <span
-            class="v-btn__underlay"
-          />
           
-          <!---->
-          <span
-            class="v-btn__content"
-            data-no-activator=""
+          <button
+            aria-expanded="null"
+            aria-haspopup="menu"
+            aria-label="Open menu"
+            aria-owns="v-menu-3"
+            class="v-btn v-btn--flat v-btn--icon v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+            style="height: 34px;"
+            targetref="[object Object]"
+            type="button"
           >
             
-            
-            <i
-              aria-hidden="true"
-              class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+            <span
+              class="v-btn__overlay"
+            />
+            <span
+              class="v-btn__underlay"
             />
-             0 recommendation
-            
             
-          </span>
-          <!---->
+            <!---->
+            <span
+              class="v-btn__content"
+              data-no-activator=""
+            >
+              <i
+                aria-hidden="true"
+                class="mdi-menu-down mdi v-icon notranslate v-theme--light v-icon--size-default"
+              />
+            </span>
+            <!---->
+            <!---->
+          </button>
+          
           <!---->
-        </button>
+          
+        </div>
         
         <!---->
         
@@ -16688,7 +16752,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
             <button
               aria-expanded="false"
               aria-haspopup="menu"
-              aria-owns="v-menu-4"
+              aria-owns="v-menu-7"
               class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
               style="height: 32px;"
               targetref="[object Object]"
@@ -16794,7 +16858,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 <!---->
                 <label
                   class="v-label v-field-label"
-                  for="input-3"
+                  for="input-6"
                 >
                   <!---->
                   
@@ -16805,9 +16869,9 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 <!---->
                 <input
-                  aria-describedby="input-3-messages"
+                  aria-describedby="input-6-messages"
                   class="v-field__input"
-                  id="input-3"
+                  id="input-6"
                   outlined=""
                   size="1"
                   type="text"
@@ -16866,7 +16930,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
               aria-live="polite"
               class="v-messages"
               css="true"
-              id="input-3-messages"
+              id="input-6-messages"
               name="slide-y-transition"
               persisted="false"
               role="alert"
@@ -16893,7 +16957,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
             
             
             <button
-              aria-describedby="v-tooltip-8"
+              aria-describedby="v-tooltip-11"
               class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
               depressed=""
               style="height: 32px;"
@@ -16940,7 +17004,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
             <div
               aria-expanded="false"
               aria-haspopup="listbox"
-              aria-owns="v-menu-11"
+              aria-owns="v-menu-14"
               class="v-field v-field--appended v-field--center-affix v-field--single-line v-field--variant-outlined v-theme--light v-locale--is-ltr"
               role="combobox"
             >
@@ -16993,7 +17057,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 <!---->
                 <label
                   class="v-label v-field-label"
-                  for="input-7"
+                  for="input-10"
                 >
                   <!---->
                   
@@ -17018,10 +17082,10 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                   
                   
                   <input
-                    aria-describedby="input-7-messages"
+                    aria-describedby="input-10-messages"
                     aria-label="Open"
                     attach=""
-                    id="input-7"
+                    id="input-10"
                     inputmode="none"
                     outlined=""
                     size="1"
@@ -17074,7 +17138,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
               aria-live="polite"
               class="v-messages"
               css="true"
-              id="input-7-messages"
+              id="input-10-messages"
               name="slide-y-transition"
               persisted="false"
               role="alert"
@@ -17089,7 +17153,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
       
       
       <button
-        aria-describedby="v-tooltip-12"
+        aria-describedby="v-tooltip-15"
         class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined mr-4 ml-4 order-2"
         data-cy="merge-button"
         disabled=""
@@ -17130,7 +17194,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
       
       
       <button
-        aria-describedby="v-tooltip-14"
+        aria-describedby="v-tooltip-17"
         class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined order-3"
         data-cy="delete-button"
         disabled=""
@@ -17214,7 +17278,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-16"
+                        id="input-19"
                         type="checkbox"
                         value="true"
                       />
@@ -17379,7 +17443,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-22"
+                        aria-describedby="v-tooltip-25"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -17394,7 +17458,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-23"
+                        aria-describedby="v-tooltip-26"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -17430,7 +17494,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-24"
+                  aria-describedby="v-tooltip-27"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -17466,7 +17530,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-26"
+                  aria-describedby="v-tooltip-29"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -17502,7 +17566,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-28"
+                  aria-describedby="v-tooltip-31"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -17614,7 +17678,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-31"
+                        aria-describedby="v-tooltip-34"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -17629,7 +17693,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-32"
+                        aria-describedby="v-tooltip-35"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -17665,7 +17729,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-33"
+                  aria-describedby="v-tooltip-36"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -17701,7 +17765,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-35"
+                  aria-describedby="v-tooltip-38"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -17737,7 +17801,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-37"
+                  aria-describedby="v-tooltip-40"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -17854,7 +17918,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-41"
+                        aria-describedby="v-tooltip-44"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end"
                         role="button"
@@ -17888,7 +17952,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-42"
+                  aria-describedby="v-tooltip-45"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -18000,7 +18064,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-45"
+                        aria-describedby="v-tooltip-48"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -18015,7 +18079,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-46"
+                        aria-describedby="v-tooltip-49"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -18051,7 +18115,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-47"
+                  aria-describedby="v-tooltip-50"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -18163,7 +18227,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-50"
+                        aria-describedby="v-tooltip-53"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end"
                         role="button"
@@ -18178,7 +18242,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-51"
+                        aria-describedby="v-tooltip-54"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -18214,7 +18278,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-52"
+                  aria-describedby="v-tooltip-55"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -18250,7 +18314,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-54"
+                  aria-describedby="v-tooltip-57"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -18519,7 +18583,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                   <!---->
                   <label
                     class="v-label v-field-label"
-                    for="input-19"
+                    for="input-22"
                   >
                     <!---->
                     
@@ -18530,9 +18594,9 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                   
                   <!---->
                   <input
-                    aria-describedby="input-19-messages"
+                    aria-describedby="input-22-messages"
                     class="v-field__input"
-                    id="input-19"
+                    id="input-22"
                     max="7"
                     min="1"
                     size="1"
@@ -18557,7 +18621,7 @@ exports[`Storybook Tests IndividualsTable Default 1`] = `
                     <label
                       aria-hidden="true"
                       class="v-label v-field-label v-field-label--floating"
-                      for="input-19"
+                      for="input-22"
                     >
                       <!---->
                       
@@ -18712,40 +18776,104 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
       <div>
         
         
-        <button
-          aria-expanded="false"
-          aria-haspopup="dialog"
-          class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined mr-4"
-          style="height: 34px; display: none;"
-          targetref="[object Object]"
-          type="button"
+        <div
+          class="v-btn-group v-btn-group--divided v-theme--light v-btn-group--density-comfortable mr-4"
+          style="display: none;"
         >
+          <button
+            aria-expanded="false"
+            aria-haspopup="dialog"
+            class="v-btn v-btn--flat v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+            style="height: 34px;"
+            targetref="[object Object]"
+            type="button"
+          >
+            
+            <span
+              class="v-btn__overlay"
+            />
+            <span
+              class="v-btn__underlay"
+            />
+            
+            <!---->
+            <span
+              class="v-btn__content"
+              data-no-activator=""
+            >
+              
+              
+              <i
+                aria-hidden="true"
+                class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+              />
+               Recommendations 
+              <span
+                class="v-chip v-theme--light v-chip--density-default v-chip--size-x-small v-chip--variant-tonal ml-1"
+                draggable="false"
+              >
+                
+                <!---->
+                <span
+                  class="v-chip__underlay"
+                />
+                
+                <!---->
+                <!---->
+                <div
+                  class="v-chip__content"
+                  data-no-activator=""
+                >
+                  
+                  0
+                  
+                </div>
+                <!---->
+                <!---->
+              </span>
+              
+              
+            </span>
+            <!---->
+            <!---->
+          </button>
           
-          <span
-            class="v-btn__overlay"
-          />
-          <span
-            class="v-btn__underlay"
-          />
           
-          <!---->
-          <span
-            class="v-btn__content"
-            data-no-activator=""
+          <button
+            aria-expanded="null"
+            aria-haspopup="menu"
+            aria-label="Open menu"
+            aria-owns="v-menu-3"
+            class="v-btn v-btn--flat v-btn--icon v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+            style="height: 34px;"
+            targetref="[object Object]"
+            type="button"
           >
             
-            
-            <i
-              aria-hidden="true"
-              class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+            <span
+              class="v-btn__overlay"
+            />
+            <span
+              class="v-btn__underlay"
             />
-             0 recommendation
-            
             
-          </span>
-          <!---->
+            <!---->
+            <span
+              class="v-btn__content"
+              data-no-activator=""
+            >
+              <i
+                aria-hidden="true"
+                class="mdi-menu-down mdi v-icon notranslate v-theme--light v-icon--size-default"
+              />
+            </span>
+            <!---->
+            <!---->
+          </button>
+          
           <!---->
-        </button>
+          
+        </div>
         
         <!---->
         
@@ -18797,7 +18925,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
             <button
               aria-expanded="false"
               aria-haspopup="menu"
-              aria-owns="v-menu-4"
+              aria-owns="v-menu-7"
               class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
               style="height: 32px;"
               targetref="[object Object]"
@@ -18903,7 +19031,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 <!---->
                 <label
                   class="v-label v-field-label"
-                  for="input-3"
+                  for="input-6"
                 >
                   <!---->
                   
@@ -18914,9 +19042,9 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 <!---->
                 <input
-                  aria-describedby="input-3-messages"
+                  aria-describedby="input-6-messages"
                   class="v-field__input"
-                  id="input-3"
+                  id="input-6"
                   outlined=""
                   size="1"
                   type="text"
@@ -18975,7 +19103,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
               aria-live="polite"
               class="v-messages"
               css="true"
-              id="input-3-messages"
+              id="input-6-messages"
               name="slide-y-transition"
               persisted="false"
               role="alert"
@@ -19002,7 +19130,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
             
             
             <button
-              aria-describedby="v-tooltip-8"
+              aria-describedby="v-tooltip-11"
               class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
               depressed=""
               style="height: 32px;"
@@ -19049,7 +19177,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
             <div
               aria-expanded="false"
               aria-haspopup="listbox"
-              aria-owns="v-menu-11"
+              aria-owns="v-menu-14"
               class="v-field v-field--appended v-field--center-affix v-field--single-line v-field--variant-outlined v-theme--light v-locale--is-ltr"
               role="combobox"
             >
@@ -19102,7 +19230,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 <!---->
                 <label
                   class="v-label v-field-label"
-                  for="input-7"
+                  for="input-10"
                 >
                   <!---->
                   
@@ -19127,10 +19255,10 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                   
                   
                   <input
-                    aria-describedby="input-7-messages"
+                    aria-describedby="input-10-messages"
                     aria-label="Open"
                     attach=""
-                    id="input-7"
+                    id="input-10"
                     inputmode="none"
                     outlined=""
                     size="1"
@@ -19183,7 +19311,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
               aria-live="polite"
               class="v-messages"
               css="true"
-              id="input-7-messages"
+              id="input-10-messages"
               name="slide-y-transition"
               persisted="false"
               role="alert"
@@ -19198,7 +19326,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
       
       
       <button
-        aria-describedby="v-tooltip-12"
+        aria-describedby="v-tooltip-15"
         class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined mr-4 ml-4 order-2"
         data-cy="merge-button"
         disabled=""
@@ -19239,7 +19367,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
       
       
       <button
-        aria-describedby="v-tooltip-14"
+        aria-describedby="v-tooltip-17"
         class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined order-3"
         data-cy="delete-button"
         disabled=""
@@ -19323,7 +19451,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-16"
+                        id="input-19"
                         type="checkbox"
                         value="true"
                       />
@@ -19444,7 +19572,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-21"
+                        id="input-24"
                         type="checkbox"
                         value="true"
                       />
@@ -19518,7 +19646,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-23"
+                        aria-describedby="v-tooltip-26"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -19533,7 +19661,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-24"
+                        aria-describedby="v-tooltip-27"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -19569,7 +19697,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-25"
+                  aria-describedby="v-tooltip-28"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -19605,7 +19733,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-27"
+                  aria-describedby="v-tooltip-30"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -19641,7 +19769,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-29"
+                  aria-describedby="v-tooltip-32"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -19714,7 +19842,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 <button
                   aria-expanded="false"
                   aria-haspopup="menu"
-                  aria-owns="v-menu-32"
+                  aria-owns="v-menu-35"
                   class="v-btn v-btn--icon v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-text"
                   targetref="[object Object]"
                   type="button"
@@ -19750,7 +19878,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <i
-                  aria-describedby="v-tooltip-34"
+                  aria-describedby="v-tooltip-37"
                   aria-hidden="true"
                   class="mdi-drag-vertical mdi v-icon notranslate v-theme--light v-icon--size-default"
                   disabled="false"
@@ -19793,7 +19921,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-35"
+                        id="input-38"
                         type="checkbox"
                         value="true"
                       />
@@ -19867,7 +19995,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-37"
+                        aria-describedby="v-tooltip-40"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -19882,7 +20010,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-38"
+                        aria-describedby="v-tooltip-41"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -19918,7 +20046,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-39"
+                  aria-describedby="v-tooltip-42"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -19954,7 +20082,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-41"
+                  aria-describedby="v-tooltip-44"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -19990,7 +20118,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-43"
+                  aria-describedby="v-tooltip-46"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -20063,7 +20191,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 <button
                   aria-expanded="false"
                   aria-haspopup="menu"
-                  aria-owns="v-menu-46"
+                  aria-owns="v-menu-49"
                   class="v-btn v-btn--icon v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-text"
                   targetref="[object Object]"
                   type="button"
@@ -20099,7 +20227,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <i
-                  aria-describedby="v-tooltip-48"
+                  aria-describedby="v-tooltip-51"
                   aria-hidden="true"
                   class="mdi-drag-vertical mdi v-icon notranslate v-theme--light v-icon--size-default"
                   disabled="false"
@@ -20142,7 +20270,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-49"
+                        id="input-52"
                         type="checkbox"
                         value="true"
                       />
@@ -20221,7 +20349,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-52"
+                        aria-describedby="v-tooltip-55"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end"
                         role="button"
@@ -20255,7 +20383,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-53"
+                  aria-describedby="v-tooltip-56"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -20328,7 +20456,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 <button
                   aria-expanded="false"
                   aria-haspopup="menu"
-                  aria-owns="v-menu-56"
+                  aria-owns="v-menu-59"
                   class="v-btn v-btn--icon v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-text"
                   targetref="[object Object]"
                   type="button"
@@ -20364,7 +20492,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <i
-                  aria-describedby="v-tooltip-58"
+                  aria-describedby="v-tooltip-61"
                   aria-hidden="true"
                   class="mdi-drag-vertical mdi v-icon notranslate v-theme--light v-icon--size-default"
                   disabled="true"
@@ -20407,7 +20535,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-59"
+                        id="input-62"
                         type="checkbox"
                         value="true"
                       />
@@ -20481,7 +20609,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-61"
+                        aria-describedby="v-tooltip-64"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -20496,7 +20624,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-62"
+                        aria-describedby="v-tooltip-65"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -20532,7 +20660,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-63"
+                  aria-describedby="v-tooltip-66"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -20605,7 +20733,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 <button
                   aria-expanded="false"
                   aria-haspopup="menu"
-                  aria-owns="v-menu-66"
+                  aria-owns="v-menu-69"
                   class="v-btn v-btn--icon v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-text"
                   targetref="[object Object]"
                   type="button"
@@ -20641,7 +20769,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <i
-                  aria-describedby="v-tooltip-68"
+                  aria-describedby="v-tooltip-71"
                   aria-hidden="true"
                   class="mdi-drag-vertical mdi v-icon notranslate v-theme--light v-icon--size-default"
                   disabled="false"
@@ -20684,7 +20812,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-69"
+                        id="input-72"
                         type="checkbox"
                         value="true"
                       />
@@ -20758,7 +20886,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-71"
+                        aria-describedby="v-tooltip-74"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end"
                         role="button"
@@ -20773,7 +20901,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-72"
+                        aria-describedby="v-tooltip-75"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -20809,7 +20937,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-73"
+                  aria-describedby="v-tooltip-76"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -20845,7 +20973,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-75"
+                  aria-describedby="v-tooltip-78"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -20918,7 +21046,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 <button
                   aria-expanded="false"
                   aria-haspopup="menu"
-                  aria-owns="v-menu-78"
+                  aria-owns="v-menu-81"
                   class="v-btn v-btn--icon v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-text"
                   targetref="[object Object]"
                   type="button"
@@ -20954,7 +21082,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                 
                 
                 <i
-                  aria-describedby="v-tooltip-80"
+                  aria-describedby="v-tooltip-83"
                   aria-hidden="true"
                   class="mdi-drag-vertical mdi v-icon notranslate v-theme--light v-icon--size-default"
                   disabled="false"
@@ -21198,7 +21326,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                   <!---->
                   <label
                     class="v-label v-field-label"
-                    for="input-19"
+                    for="input-22"
                   >
                     <!---->
                     
@@ -21209,9 +21337,9 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                   
                   <!---->
                   <input
-                    aria-describedby="input-19-messages"
+                    aria-describedby="input-22-messages"
                     class="v-field__input"
-                    id="input-19"
+                    id="input-22"
                     max="7"
                     min="1"
                     size="1"
@@ -21236,7 +21364,7 @@ exports[`Storybook Tests IndividualsTable Expandable 1`] = `
                     <label
                       aria-hidden="true"
                       class="v-label v-field-label v-field-label--floating"
-                      for="input-19"
+                      for="input-22"
                     >
                       <!---->
                       
@@ -23292,40 +23420,104 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
       <div>
         
         
-        <button
-          aria-expanded="false"
-          aria-haspopup="dialog"
-          class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined mr-4"
-          style="height: 34px; display: none;"
-          targetref="[object Object]"
-          type="button"
+        <div
+          class="v-btn-group v-btn-group--divided v-theme--light v-btn-group--density-comfortable mr-4"
+          style="display: none;"
         >
+          <button
+            aria-expanded="false"
+            aria-haspopup="dialog"
+            class="v-btn v-btn--flat v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+            style="height: 34px;"
+            targetref="[object Object]"
+            type="button"
+          >
+            
+            <span
+              class="v-btn__overlay"
+            />
+            <span
+              class="v-btn__underlay"
+            />
+            
+            <!---->
+            <span
+              class="v-btn__content"
+              data-no-activator=""
+            >
+              
+              
+              <i
+                aria-hidden="true"
+                class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+              />
+               Recommendations 
+              <span
+                class="v-chip v-theme--light v-chip--density-default v-chip--size-x-small v-chip--variant-tonal ml-1"
+                draggable="false"
+              >
+                
+                <!---->
+                <span
+                  class="v-chip__underlay"
+                />
+                
+                <!---->
+                <!---->
+                <div
+                  class="v-chip__content"
+                  data-no-activator=""
+                >
+                  
+                  0
+                  
+                </div>
+                <!---->
+                <!---->
+              </span>
+              
+              
+            </span>
+            <!---->
+            <!---->
+          </button>
           
-          <span
-            class="v-btn__overlay"
-          />
-          <span
-            class="v-btn__underlay"
-          />
           
-          <!---->
-          <span
-            class="v-btn__content"
-            data-no-activator=""
+          <button
+            aria-expanded="null"
+            aria-haspopup="menu"
+            aria-label="Open menu"
+            aria-owns="v-menu-3"
+            class="v-btn v-btn--flat v-btn--icon v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+            style="height: 34px;"
+            targetref="[object Object]"
+            type="button"
           >
             
-            
-            <i
-              aria-hidden="true"
-              class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+            <span
+              class="v-btn__overlay"
+            />
+            <span
+              class="v-btn__underlay"
             />
-             0 recommendation
-            
             
-          </span>
-          <!---->
+            <!---->
+            <span
+              class="v-btn__content"
+              data-no-activator=""
+            >
+              <i
+                aria-hidden="true"
+                class="mdi-menu-down mdi v-icon notranslate v-theme--light v-icon--size-default"
+              />
+            </span>
+            <!---->
+            <!---->
+          </button>
+          
           <!---->
-        </button>
+          
+        </div>
         
         <!---->
         
@@ -23377,7 +23569,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
             <button
               aria-expanded="false"
               aria-haspopup="menu"
-              aria-owns="v-menu-4"
+              aria-owns="v-menu-7"
               class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
               style="height: 32px;"
               targetref="[object Object]"
@@ -23483,7 +23675,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
                 <!---->
                 <label
                   class="v-label v-field-label"
-                  for="input-3"
+                  for="input-6"
                 >
                   <!---->
                   
@@ -23494,9 +23686,9 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
                 
                 <!---->
                 <input
-                  aria-describedby="input-3-messages"
+                  aria-describedby="input-6-messages"
                   class="v-field__input"
-                  id="input-3"
+                  id="input-6"
                   outlined=""
                   size="1"
                   type="text"
@@ -23555,7 +23747,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
               aria-live="polite"
               class="v-messages"
               css="true"
-              id="input-3-messages"
+              id="input-6-messages"
               name="slide-y-transition"
               persisted="false"
               role="alert"
@@ -23582,7 +23774,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
             
             
             <button
-              aria-describedby="v-tooltip-8"
+              aria-describedby="v-tooltip-11"
               class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
               depressed=""
               style="height: 32px;"
@@ -23629,7 +23821,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
             <div
               aria-expanded="false"
               aria-haspopup="listbox"
-              aria-owns="v-menu-11"
+              aria-owns="v-menu-14"
               class="v-field v-field--appended v-field--center-affix v-field--single-line v-field--variant-outlined v-theme--light v-locale--is-ltr"
               role="combobox"
             >
@@ -23682,7 +23874,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
                 <!---->
                 <label
                   class="v-label v-field-label"
-                  for="input-7"
+                  for="input-10"
                 >
                   <!---->
                   
@@ -23707,10 +23899,10 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
                   
                   
                   <input
-                    aria-describedby="input-7-messages"
+                    aria-describedby="input-10-messages"
                     aria-label="Open"
                     attach=""
-                    id="input-7"
+                    id="input-10"
                     inputmode="none"
                     outlined=""
                     size="1"
@@ -23763,7 +23955,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
               aria-live="polite"
               class="v-messages"
               css="true"
-              id="input-7-messages"
+              id="input-10-messages"
               name="slide-y-transition"
               persisted="false"
               role="alert"
@@ -23778,7 +23970,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
       
       
       <button
-        aria-describedby="v-tooltip-12"
+        aria-describedby="v-tooltip-15"
         class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined mr-4 ml-4 order-2"
         data-cy="merge-button"
         disabled=""
@@ -23819,7 +24011,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
       
       
       <button
-        aria-describedby="v-tooltip-14"
+        aria-describedby="v-tooltip-17"
         class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined order-3"
         data-cy="delete-button"
         disabled=""
@@ -23903,7 +24095,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-16"
+                        id="input-19"
                         type="checkbox"
                         value="true"
                       />
@@ -24197,7 +24389,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
                   <!---->
                   <label
                     class="v-label v-field-label"
-                    for="input-19"
+                    for="input-22"
                   >
                     <!---->
                     
@@ -24208,9 +24400,9 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
                   
                   <!---->
                   <input
-                    aria-describedby="input-19-messages"
+                    aria-describedby="input-22-messages"
                     class="v-field__input"
-                    id="input-19"
+                    id="input-22"
                     max="0"
                     min="1"
                     size="1"
@@ -24235,7 +24427,7 @@ exports[`Storybook Tests IndividualsTable OnError 1`] = `
                     <label
                       aria-hidden="true"
                       class="v-label v-field-label v-field-label--floating"
-                      for="input-19"
+                      for="input-22"
                     >
                       <!---->
                       
@@ -24390,40 +24582,104 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
       <div>
         
         
-        <button
-          aria-expanded="false"
-          aria-haspopup="dialog"
-          class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined mr-4"
-          style="height: 34px; display: none;"
-          targetref="[object Object]"
-          type="button"
+        <div
+          class="v-btn-group v-btn-group--divided v-theme--light v-btn-group--density-comfortable mr-4"
+          style="display: none;"
         >
+          <button
+            aria-expanded="false"
+            aria-haspopup="dialog"
+            class="v-btn v-btn--flat v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+            style="height: 34px;"
+            targetref="[object Object]"
+            type="button"
+          >
+            
+            <span
+              class="v-btn__overlay"
+            />
+            <span
+              class="v-btn__underlay"
+            />
+            
+            <!---->
+            <span
+              class="v-btn__content"
+              data-no-activator=""
+            >
+              
+              
+              <i
+                aria-hidden="true"
+                class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+              />
+               Recommendations 
+              <span
+                class="v-chip v-theme--light v-chip--density-default v-chip--size-x-small v-chip--variant-tonal ml-1"
+                draggable="false"
+              >
+                
+                <!---->
+                <span
+                  class="v-chip__underlay"
+                />
+                
+                <!---->
+                <!---->
+                <div
+                  class="v-chip__content"
+                  data-no-activator=""
+                >
+                  
+                  0
+                  
+                </div>
+                <!---->
+                <!---->
+              </span>
+              
+              
+            </span>
+            <!---->
+            <!---->
+          </button>
           
-          <span
-            class="v-btn__overlay"
-          />
-          <span
-            class="v-btn__underlay"
-          />
           
-          <!---->
-          <span
-            class="v-btn__content"
-            data-no-activator=""
+          <button
+            aria-expanded="null"
+            aria-haspopup="menu"
+            aria-label="Open menu"
+            aria-owns="v-menu-3"
+            class="v-btn v-btn--flat v-btn--icon v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+            style="height: 34px;"
+            targetref="[object Object]"
+            type="button"
           >
             
-            
-            <i
-              aria-hidden="true"
-              class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+            <span
+              class="v-btn__overlay"
+            />
+            <span
+              class="v-btn__underlay"
             />
-             0 recommendation
-            
             
-          </span>
-          <!---->
+            <!---->
+            <span
+              class="v-btn__content"
+              data-no-activator=""
+            >
+              <i
+                aria-hidden="true"
+                class="mdi-menu-down mdi v-icon notranslate v-theme--light v-icon--size-default"
+              />
+            </span>
+            <!---->
+            <!---->
+          </button>
+          
           <!---->
-        </button>
+          
+        </div>
         
         <!---->
         
@@ -24475,7 +24731,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
             <button
               aria-expanded="false"
               aria-haspopup="menu"
-              aria-owns="v-menu-4"
+              aria-owns="v-menu-7"
               class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
               style="height: 32px;"
               targetref="[object Object]"
@@ -24581,7 +24837,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 <!---->
                 <label
                   class="v-label v-field-label"
-                  for="input-3"
+                  for="input-6"
                 >
                   <!---->
                   
@@ -24592,9 +24848,9 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 <!---->
                 <input
-                  aria-describedby="input-3-messages"
+                  aria-describedby="input-6-messages"
                   class="v-field__input"
-                  id="input-3"
+                  id="input-6"
                   outlined=""
                   size="1"
                   type="text"
@@ -24653,7 +24909,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
               aria-live="polite"
               class="v-messages"
               css="true"
-              id="input-3-messages"
+              id="input-6-messages"
               name="slide-y-transition"
               persisted="false"
               role="alert"
@@ -24680,7 +24936,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
             
             
             <button
-              aria-describedby="v-tooltip-8"
+              aria-describedby="v-tooltip-11"
               class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
               depressed=""
               style="height: 32px;"
@@ -24727,7 +24983,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
             <div
               aria-expanded="false"
               aria-haspopup="listbox"
-              aria-owns="v-menu-11"
+              aria-owns="v-menu-14"
               class="v-field v-field--appended v-field--center-affix v-field--single-line v-field--variant-outlined v-theme--light v-locale--is-ltr"
               role="combobox"
             >
@@ -24780,7 +25036,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 <!---->
                 <label
                   class="v-label v-field-label"
-                  for="input-7"
+                  for="input-10"
                 >
                   <!---->
                   
@@ -24805,10 +25061,10 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                   
                   
                   <input
-                    aria-describedby="input-7-messages"
+                    aria-describedby="input-10-messages"
                     aria-label="Open"
                     attach=""
-                    id="input-7"
+                    id="input-10"
                     inputmode="none"
                     outlined=""
                     size="1"
@@ -24861,7 +25117,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
               aria-live="polite"
               class="v-messages"
               css="true"
-              id="input-7-messages"
+              id="input-10-messages"
               name="slide-y-transition"
               persisted="false"
               role="alert"
@@ -24876,7 +25132,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
       
       
       <button
-        aria-describedby="v-tooltip-12"
+        aria-describedby="v-tooltip-15"
         class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined mr-4 ml-4 order-2"
         data-cy="merge-button"
         disabled=""
@@ -24917,7 +25173,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
       
       
       <button
-        aria-describedby="v-tooltip-14"
+        aria-describedby="v-tooltip-17"
         class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined order-3"
         data-cy="delete-button"
         disabled=""
@@ -25001,7 +25257,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       />
                       <input
                         aria-disabled="false"
-                        id="input-16"
+                        id="input-19"
                         type="checkbox"
                         value="true"
                       />
@@ -25166,7 +25422,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-22"
+                        aria-describedby="v-tooltip-25"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -25181,7 +25437,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-23"
+                        aria-describedby="v-tooltip-26"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -25217,7 +25473,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-24"
+                  aria-describedby="v-tooltip-27"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -25253,7 +25509,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-26"
+                  aria-describedby="v-tooltip-29"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -25289,7 +25545,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-28"
+                  aria-describedby="v-tooltip-31"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -25401,7 +25657,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-31"
+                        aria-describedby="v-tooltip-34"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -25416,7 +25672,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-32"
+                        aria-describedby="v-tooltip-35"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -25452,7 +25708,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-33"
+                  aria-describedby="v-tooltip-36"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -25488,7 +25744,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-35"
+                  aria-describedby="v-tooltip-38"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -25524,7 +25780,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-37"
+                  aria-describedby="v-tooltip-40"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -25641,7 +25897,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-41"
+                        aria-describedby="v-tooltip-44"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end"
                         role="button"
@@ -25675,7 +25931,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-42"
+                  aria-describedby="v-tooltip-45"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -25787,7 +26043,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-45"
+                        aria-describedby="v-tooltip-48"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -25802,7 +26058,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-46"
+                        aria-describedby="v-tooltip-49"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -25838,7 +26094,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-47"
+                  aria-describedby="v-tooltip-50"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -25950,7 +26206,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-50"
+                        aria-describedby="v-tooltip-53"
                         aria-hidden="false"
                         class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end"
                         role="button"
@@ -25965,7 +26221,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                       
                       
                       <i
-                        aria-describedby="v-tooltip-51"
+                        aria-describedby="v-tooltip-54"
                         aria-hidden="false"
                         class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                         role="button"
@@ -26001,7 +26257,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-52"
+                  aria-describedby="v-tooltip-55"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -26037,7 +26293,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                 
                 
                 <span
-                  aria-describedby="v-tooltip-54"
+                  aria-describedby="v-tooltip-57"
                   class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                   draggable="false"
                   style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -26306,7 +26562,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                   <!---->
                   <label
                     class="v-label v-field-label"
-                    for="input-19"
+                    for="input-22"
                   >
                     <!---->
                     
@@ -26317,9 +26573,9 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                   
                   <!---->
                   <input
-                    aria-describedby="input-19-messages"
+                    aria-describedby="input-22-messages"
                     class="v-field__input"
-                    id="input-19"
+                    id="input-22"
                     max="7"
                     min="1"
                     size="1"
@@ -26344,7 +26600,7 @@ exports[`Storybook Tests IndividualsTable Outlined 1`] = `
                     <label
                       aria-hidden="true"
                       class="v-label v-field-label v-field-label--floating"
-                      for="input-19"
+                      for="input-22"
                     >
                       <!---->
                       
@@ -32536,40 +32792,104 @@ exports[`Storybook Tests Recommendations CustomModalActivator 1`] = `
   <div>
     
     
-    <button
-      aria-expanded="false"
-      aria-haspopup="dialog"
-      class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined mr-4"
-      style="height: 34px;"
-      targetref="[object Object]"
-      type="button"
+    <div
+      class="v-btn-group v-btn-group--divided v-theme--light v-btn-group--density-comfortable mr-4"
+      style=""
     >
-      
-      <span
-        class="v-btn__overlay"
-      />
-      <span
-        class="v-btn__underlay"
-      />
-      
-      <!---->
-      <span
-        class="v-btn__content"
-        data-no-activator=""
-      >
-        
+      <button
+        aria-expanded="false"
+        aria-haspopup="dialog"
+        class="v-btn v-btn--flat v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+        style="height: 34px;"
+        targetref="[object Object]"
+        type="button"
+      >
         
-        <i
-          aria-hidden="true"
-          class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+        <span
+          class="v-btn__overlay"
+        />
+        <span
+          class="v-btn__underlay"
         />
-         2 recommendations
         
+        <!---->
+        <span
+          class="v-btn__content"
+          data-no-activator=""
+        >
+          
+          
+          <i
+            aria-hidden="true"
+            class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+          />
+           Recommendations 
+          <span
+            class="v-chip v-theme--light v-chip--density-default v-chip--size-x-small v-chip--variant-tonal ml-1"
+            draggable="false"
+          >
+            
+            <!---->
+            <span
+              class="v-chip__underlay"
+            />
+            
+            <!---->
+            <!---->
+            <div
+              class="v-chip__content"
+              data-no-activator=""
+            >
+              
+              2
+              
+            </div>
+            <!---->
+            <!---->
+          </span>
+          
+          
+        </span>
+        <!---->
+        <!---->
+      </button>
+      
+      
+      <button
+        aria-expanded="null"
+        aria-haspopup="menu"
+        aria-label="Open menu"
+        aria-owns="v-menu-2"
+        class="v-btn v-btn--flat v-btn--icon v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+        style="height: 34px;"
+        targetref="[object Object]"
+        type="button"
+      >
+        
+        <span
+          class="v-btn__overlay"
+        />
+        <span
+          class="v-btn__underlay"
+        />
         
-      </span>
-      <!---->
+        <!---->
+        <span
+          class="v-btn__content"
+          data-no-activator=""
+        >
+          <i
+            aria-hidden="true"
+            class="mdi-menu-down mdi v-icon notranslate v-theme--light v-icon--size-default"
+          />
+        </span>
+        <!---->
+        <!---->
+      </button>
+      
       <!---->
-    </button>
+      
+    </div>
     
     <!---->
     
@@ -32582,40 +32902,104 @@ exports[`Storybook Tests Recommendations Default 1`] = `
   <div>
     
     
-    <button
-      aria-expanded="false"
-      aria-haspopup="dialog"
-      class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined mr-4"
-      style="height: 34px;"
-      targetref="[object Object]"
-      type="button"
+    <div
+      class="v-btn-group v-btn-group--divided v-theme--light v-btn-group--density-comfortable mr-4"
+      style=""
     >
+      <button
+        aria-expanded="false"
+        aria-haspopup="dialog"
+        class="v-btn v-btn--flat v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+        style="height: 34px;"
+        targetref="[object Object]"
+        type="button"
+      >
+        
+        <span
+          class="v-btn__overlay"
+        />
+        <span
+          class="v-btn__underlay"
+        />
+        
+        <!---->
+        <span
+          class="v-btn__content"
+          data-no-activator=""
+        >
+          
+          
+          <i
+            aria-hidden="true"
+            class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+          />
+           Recommendations 
+          <span
+            class="v-chip v-theme--light v-chip--density-default v-chip--size-x-small v-chip--variant-tonal ml-1"
+            draggable="false"
+          >
+            
+            <!---->
+            <span
+              class="v-chip__underlay"
+            />
+            
+            <!---->
+            <!---->
+            <div
+              class="v-chip__content"
+              data-no-activator=""
+            >
+              
+              2
+              
+            </div>
+            <!---->
+            <!---->
+          </span>
+          
+          
+        </span>
+        <!---->
+        <!---->
+      </button>
       
-      <span
-        class="v-btn__overlay"
-      />
-      <span
-        class="v-btn__underlay"
-      />
       
-      <!---->
-      <span
-        class="v-btn__content"
-        data-no-activator=""
+      <button
+        aria-expanded="null"
+        aria-haspopup="menu"
+        aria-label="Open menu"
+        aria-owns="v-menu-2"
+        class="v-btn v-btn--flat v-btn--icon v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+        style="height: 34px;"
+        targetref="[object Object]"
+        type="button"
       >
         
-        
-        <i
-          aria-hidden="true"
-          class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+        <span
+          class="v-btn__overlay"
+        />
+        <span
+          class="v-btn__underlay"
         />
-         2 recommendations
-        
         
-      </span>
-      <!---->
+        <!---->
+        <span
+          class="v-btn__content"
+          data-no-activator=""
+        >
+          <i
+            aria-hidden="true"
+            class="mdi-menu-down mdi v-icon notranslate v-theme--light v-icon--size-default"
+          />
+        </span>
+        <!---->
+        <!---->
+      </button>
+      
       <!---->
-    </button>
+      
+    </div>
     
     <!---->
     
@@ -34696,40 +35080,104 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
         <div>
           
           
-          <button
-            aria-expanded="false"
-            aria-haspopup="dialog"
-            class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined mr-4"
-            style="height: 34px; display: none;"
-            targetref="[object Object]"
-            type="button"
+          <div
+            class="v-btn-group v-btn-group--divided v-theme--light v-btn-group--density-comfortable mr-4"
+            style="display: none;"
           >
+            <button
+              aria-expanded="false"
+              aria-haspopup="dialog"
+              class="v-btn v-btn--flat v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+              style="height: 34px;"
+              targetref="[object Object]"
+              type="button"
+            >
+              
+              <span
+                class="v-btn__overlay"
+              />
+              <span
+                class="v-btn__underlay"
+              />
+              
+              <!---->
+              <span
+                class="v-btn__content"
+                data-no-activator=""
+              >
+                
+                
+                <i
+                  aria-hidden="true"
+                  class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+                />
+                 Recommendations 
+                <span
+                  class="v-chip v-theme--light v-chip--density-default v-chip--size-x-small v-chip--variant-tonal ml-1"
+                  draggable="false"
+                >
+                  
+                  <!---->
+                  <span
+                    class="v-chip__underlay"
+                  />
+                  
+                  <!---->
+                  <!---->
+                  <div
+                    class="v-chip__content"
+                    data-no-activator=""
+                  >
+                    
+                    0
+                    
+                  </div>
+                  <!---->
+                  <!---->
+                </span>
+                
+                
+              </span>
+              <!---->
+              <!---->
+            </button>
             
-            <span
-              class="v-btn__overlay"
-            />
-            <span
-              class="v-btn__underlay"
-            />
             
-            <!---->
-            <span
-              class="v-btn__content"
-              data-no-activator=""
+            <button
+              aria-expanded="null"
+              aria-haspopup="menu"
+              aria-label="Open menu"
+              aria-owns="v-menu-7"
+              class="v-btn v-btn--flat v-btn--icon v-theme--light v-btn--density-comfortable v-btn--size-small v-btn--variant-outlined"
+              style="height: 34px;"
+              targetref="[object Object]"
+              type="button"
             >
               
-              
-              <i
-                aria-hidden="true"
-                class="mdi-lightbulb-on-outline mdi v-icon notranslate v-theme--light v-icon--size-small v-icon--start"
+              <span
+                class="v-btn__overlay"
+              />
+              <span
+                class="v-btn__underlay"
               />
-               0 recommendation
-              
               
-            </span>
-            <!---->
+              <!---->
+              <span
+                class="v-btn__content"
+                data-no-activator=""
+              >
+                <i
+                  aria-hidden="true"
+                  class="mdi-menu-down mdi v-icon notranslate v-theme--light v-icon--size-default"
+                />
+              </span>
+              <!---->
+              <!---->
+            </button>
+            
             <!---->
-          </button>
+            
+          </div>
           
           <!---->
           
@@ -34781,7 +35229,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
               <button
                 aria-expanded="false"
                 aria-haspopup="menu"
-                aria-owns="v-menu-8"
+                aria-owns="v-menu-11"
                 class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
                 style="height: 32px;"
                 targetref="[object Object]"
@@ -34887,7 +35335,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   <!---->
                   <label
                     class="v-label v-field-label"
-                    for="input-7"
+                    for="input-10"
                   >
                     <!---->
                     
@@ -34898,9 +35346,9 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   <!---->
                   <input
-                    aria-describedby="input-7-messages"
+                    aria-describedby="input-10-messages"
                     class="v-field__input"
-                    id="input-7"
+                    id="input-10"
                     outlined=""
                     size="1"
                     type="text"
@@ -34959,7 +35407,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                 aria-live="polite"
                 class="v-messages"
                 css="true"
-                id="input-7-messages"
+                id="input-10-messages"
                 name="slide-y-transition"
                 persisted="false"
                 role="alert"
@@ -34986,7 +35434,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
               
               
               <button
-                aria-describedby="v-tooltip-12"
+                aria-describedby="v-tooltip-15"
                 class="v-btn v-theme--light v-btn--density-default v-btn--size-small v-btn--variant-outlined text-body-1"
                 depressed=""
                 style="height: 32px;"
@@ -35033,7 +35481,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
               <div
                 aria-expanded="false"
                 aria-haspopup="listbox"
-                aria-owns="v-menu-15"
+                aria-owns="v-menu-18"
                 class="v-field v-field--appended v-field--center-affix v-field--single-line v-field--variant-outlined v-theme--light v-locale--is-ltr"
                 role="combobox"
               >
@@ -35086,7 +35534,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   <!---->
                   <label
                     class="v-label v-field-label"
-                    for="input-11"
+                    for="input-14"
                   >
                     <!---->
                     
@@ -35111,10 +35559,10 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                     
                     
                     <input
-                      aria-describedby="input-11-messages"
+                      aria-describedby="input-14-messages"
                       aria-label="Open"
                       attach=""
-                      id="input-11"
+                      id="input-14"
                       inputmode="none"
                       outlined=""
                       size="1"
@@ -35167,7 +35615,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                 aria-live="polite"
                 class="v-messages"
                 css="true"
-                id="input-11-messages"
+                id="input-14-messages"
                 name="slide-y-transition"
                 persisted="false"
                 role="alert"
@@ -35182,7 +35630,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
         
         
         <button
-          aria-describedby="v-tooltip-16"
+          aria-describedby="v-tooltip-19"
           class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined mr-4 ml-4 order-2"
           data-cy="merge-button"
           disabled=""
@@ -35223,7 +35671,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
         
         
         <button
-          aria-describedby="v-tooltip-18"
+          aria-describedby="v-tooltip-21"
           class="v-btn v-btn--disabled v-theme--light v-btn--density-compact v-btn--size-small v-btn--variant-outlined order-3"
           data-cy="delete-button"
           disabled=""
@@ -35307,7 +35755,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         />
                         <input
                           aria-disabled="false"
-                          id="input-20"
+                          id="input-23"
                           type="checkbox"
                           value="true"
                         />
@@ -35472,7 +35920,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-26"
+                          aria-describedby="v-tooltip-29"
                           aria-hidden="false"
                           class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                           role="button"
@@ -35487,7 +35935,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-27"
+                          aria-describedby="v-tooltip-30"
                           aria-hidden="false"
                           class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                           role="button"
@@ -35523,7 +35971,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-28"
+                    aria-describedby="v-tooltip-31"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -35559,7 +36007,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-30"
+                    aria-describedby="v-tooltip-33"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -35595,7 +36043,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-32"
+                    aria-describedby="v-tooltip-35"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -35707,7 +36155,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-35"
+                          aria-describedby="v-tooltip-38"
                           aria-hidden="false"
                           class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                           role="button"
@@ -35722,7 +36170,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-36"
+                          aria-describedby="v-tooltip-39"
                           aria-hidden="false"
                           class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                           role="button"
@@ -35758,7 +36206,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-37"
+                    aria-describedby="v-tooltip-40"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -35794,7 +36242,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-39"
+                    aria-describedby="v-tooltip-42"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -35830,7 +36278,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-41"
+                    aria-describedby="v-tooltip-44"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -35947,7 +36395,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-45"
+                          aria-describedby="v-tooltip-48"
                           aria-hidden="false"
                           class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end"
                           role="button"
@@ -35981,7 +36429,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-46"
+                    aria-describedby="v-tooltip-49"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -36093,7 +36541,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-49"
+                          aria-describedby="v-tooltip-52"
                           aria-hidden="false"
                           class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                           role="button"
@@ -36108,7 +36556,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-50"
+                          aria-describedby="v-tooltip-53"
                           aria-hidden="false"
                           class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                           role="button"
@@ -36144,7 +36592,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-51"
+                    aria-describedby="v-tooltip-54"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -36256,7 +36704,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-54"
+                          aria-describedby="v-tooltip-57"
                           aria-hidden="false"
                           class="mdi-robot mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end"
                           role="button"
@@ -36271,7 +36719,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                         
                         
                         <i
-                          aria-describedby="v-tooltip-55"
+                          aria-describedby="v-tooltip-58"
                           aria-hidden="false"
                           class="mdi-lock mdi v-icon notranslate v-theme--light v-icon--size-x-small v-icon--clickable v-icon--end icon--hidden"
                           role="button"
@@ -36307,7 +36755,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-56"
+                    aria-describedby="v-tooltip-59"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -36343,7 +36791,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                   
                   
                   <span
-                    aria-describedby="v-tooltip-58"
+                    aria-describedby="v-tooltip-61"
                     class="v-chip v-theme--light v-chip--density-default v-chip--size-default v-chip--variant-outlined ma-1"
                     draggable="false"
                     style="color: rgb(54, 60, 66); caret-color: #363c42;"
@@ -36580,7 +37028,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                     <!---->
                     <label
                       class="v-label v-field-label"
-                      for="input-23"
+                      for="input-26"
                     >
                       <!---->
                       
@@ -36591,9 +37039,9 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                     
                     <!---->
                     <input
-                      aria-describedby="input-23-messages"
+                      aria-describedby="input-26-messages"
                       class="v-field__input"
-                      id="input-23"
+                      id="input-26"
                       max="5"
                       min="1"
                       size="1"
@@ -36618,7 +37066,7 @@ exports[`Storybook Tests WorkSpace DragAndDrop 1`] = `
                       <label
                         aria-hidden="true"
                         class="v-label v-field-label v-field-label--floating"
-                        for="input-23"
+                        for="input-26"
                       >
                         <!---->