@@ -35,6 +35,9 @@ const {
35
35
36
36
const selectedFilter = ref <ComponentRelationship >()
37
37
38
+ const search = ref (' ' )
39
+ const searchDebounced = useDebounce (search , 300 )
40
+
38
41
const entries = computed (() => {
39
42
const relations = (props .relationships || [])
40
43
if (selectedFilter .value ) {
@@ -89,16 +92,18 @@ const data = computed<Data>(() => {
89
92
? ' square'
90
93
: ' dot'
91
94
95
+ const isGrayedOut = searchDebounced .value && ! rel .id .toLowerCase ().includes (searchDebounced .value .toLowerCase ())
96
+
92
97
return {
93
98
id: rel .id ,
94
99
label: path .split (' /' ).splice (- 1 )[0 ].replace (/ \. \w + $ / , ' ' ),
95
100
group ,
96
101
shape ,
97
102
size: 15 + Math .min (rel .deps .length / 2 , 8 ),
98
103
font: {
99
- color: colorMode .value === ' dark' ? ' white' : ' black' ,
104
+ color: isGrayedOut ? ' #8885 ' : ( colorMode .value === ' dark' ? ' white' : ' black' ) ,
100
105
},
101
- color: selectedFilter .value ?.id === rel .id ? ' #82c742' : undefined ,
106
+ color: isGrayedOut ? ' #8885 ' : selectedFilter .value ?.id === rel .id ? ' #82c742' : undefined ,
102
107
// @ts-expect-error additional data
103
108
extra: {
104
109
id: rel .id ,
@@ -200,8 +205,8 @@ function setFilter() {
200
205
</script >
201
206
202
207
<template >
203
- <NNavbar ref =" navbar" absolute left-0 right-0 top-0 >
204
- <template #search >
208
+ <NNavbar ref =" navbar" v-model:search = " search " absolute left-0 right-0 top-0 >
209
+ <template #actions >
205
210
<div flex =" ~ gap-4 wrap" w-full >
206
211
<NCheckbox v-model =" showPages" n =" primary sm" >
207
212
<span op75 >Show pages</span >
0 commit comments