diff --git a/src/components/cylc/TaskFilter.vue b/src/components/cylc/TaskFilter.vue
new file mode 100644
index 000000000..13621c492
--- /dev/null
+++ b/src/components/cylc/TaskFilter.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ slotProps.item }}
+
+
+
+
+
+
+ (+{{ localValue.states.length - maxVisibleStates }})
+
+
+
+
+
+
+
+
diff --git a/src/components/cylc/table/Table.vue b/src/components/cylc/table/Table.vue
index 0132cefd6..7714e0b86 100644
--- a/src/components/cylc/table/Table.vue
+++ b/src/components/cylc/table/Table.vue
@@ -29,62 +29,7 @@ along with this program. If not, see .
v-if="filterable"
class=""
>
-
-
-
-
-
-
-
-
- {{ slotProps.item.value }}
-
-
-
-
-
-
- (+{{ tasksFilter.states.length - maximumTasks }})
-
-
-
-
-
+
.
diff --git a/src/components/cylc/tree/Tree.vue b/src/components/cylc/tree/Tree.vue
index 63924f8ab..871df4852 100644
--- a/src/components/cylc/tree/Tree.vue
+++ b/src/components/cylc/tree/Tree.vue
@@ -29,64 +29,7 @@ along with this program. If not, see .
v-if="filterable"
class="grow"
>
-
-
-
-
-
-
-
-
- {{ slotProps.item }}
-
-
-
-
-
-
- (+{{ tasksFilter.states.length - maximumTasks }})
-
-
-
-
-
+
.