@@ -5,15 +5,15 @@ const { t } = useI18n()
55const revealRef = ref <InstanceType <typeof RevealWords >>()
66
77const tools = [
8- { key: ' sentry' , tool: ' Sentry (local)' , color: ' #f43f5e' },
9- { key: ' mailhog' , tool: ' Mailhog / Mailtrap' , color: ' #f59e0b' },
8+ { key: ' sentry' , tool: ' Sentry (local)' , color: ' #f43f5e' , link: ' /features/sentry ' },
9+ { key: ' mailhog' , tool: ' Mailhog / Mailtrap' , color: ' #f59e0b' , link: ' /features/email-testing ' },
1010 { key: ' ray' , tool: ' Ray' , color: ' #06b6d4' },
11- { key: ' blackfire' , tool: ' Blackfire / XHProf UI' , color: ' #8b5cf6' },
11+ { key: ' blackfire' , tool: ' Blackfire / XHProf UI' , color: ' #8b5cf6' , link: ' /features/profiler ' },
1212 { key: ' logviewers' , tool: ' Log viewers' , color: ' #6b7280' },
1313 { key: ' requestbin' , tool: ' RequestBin' , color: ' #22c55e' },
1414 { key: ' inspector' , tool: ' Inspector.dev (local)' , color: ' #eab308' },
15- { key: ' smsgateway' , tool: ' SMS gateways (dev)' , color: ' #a855f7' },
16- { key: ' proxy' , tool: ' Charles / Fiddler / mitmproxy' , color: ' #10b981' },
15+ { key: ' smsgateway' , tool: ' SMS gateways (dev)' , color: ' #a855f7' , link: ' /features/sms ' },
16+ { key: ' proxy' , tool: ' Charles / Fiddler / mitmproxy' , color: ' #10b981' , link: ' /features/http-proxy ' },
1717]
1818 </script >
1919
@@ -40,17 +40,23 @@ const tools = [
4040 </div >
4141
4242 <div class =" grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4" >
43- <div
43+ <component
44+ :is =" item.link ? 'NuxtLink' : 'div'"
4445 v-for =" item in tools"
4546 :key =" item.key"
46- class =" flex items-center gap-3 p-4 rounded-xl bg-landing-surface border border-landing-border-subtle"
47+ :to =" item.link || undefined"
48+ class =" flex items-center gap-3 p-4 rounded-xl bg-landing-surface border border-landing-border-subtle no-underline"
49+ :class =" item.link ? 'hover:border-landing-border hover:bg-landing-elevated transition-colors duration-150 cursor-pointer' : ''"
4750 >
4851 <span class =" w-2.5 h-2.5 rounded-full shrink-0" :style =" { background: item.color }" />
49- <div class =" min-w-0" >
52+ <div class =" min-w-0 flex-1 " >
5053 <p class =" text-sm font-medium text-on-dark-secondary font-sans line-through opacity-50" >{{ item.tool }}</p >
5154 <p class =" text-sm text-on-dark-secondary font-sans" >{{ t(`replaces.tools.${item.key}`) }}</p >
5255 </div >
53- </div >
56+ <svg v-if =" item.link" class =" w-4 h-4 text-on-dark-muted shrink-0" fill =" none" stroke =" currentColor" viewBox =" 0 0 24 24" >
57+ <path stroke-linecap =" round" stroke-linejoin =" round" stroke-width =" 2" d =" M9 5l7 7-7 7" />
58+ </svg >
59+ </component >
5460 </div >
5561
5662 <p class =" text-center mt-10 text-lg font-semibold text-white font-sans" >
0 commit comments