feat: assistant overview page UI

This commit is contained in:
Shivam Mishra
2026-06-29 17:26:42 +05:30
parent 299bc6c0a4
commit 85cd87c410
10 changed files with 453 additions and 0 deletions
@@ -0,0 +1,36 @@
<script setup>
import { computed } from 'vue';
const props = defineProps({
label: { type: String, required: true },
value: { type: String, required: true },
trend: { type: String, default: '' },
hint: { type: String, default: '' },
// null = neutral, true = good direction, false = bad direction
trendGood: { type: Boolean, default: null },
});
const trendClass = computed(() => {
if (props.trendGood === null) return 'text-n-slate-11';
return props.trendGood ? 'text-n-teal-11' : 'text-n-ruby-11';
});
</script>
<template>
<div class="flex flex-col gap-3 p-5 group bg-n-solid-1">
<div class="flex items-center gap-1.5">
<span class="text-sm font-medium text-n-slate-11">{{ label }}</span>
<span
v-if="hint"
v-tooltip="hint"
class="transition-opacity opacity-0 cursor-help i-lucide-info size-3.5 text-n-slate-10 group-hover:opacity-100"
/>
</div>
<div class="flex items-end justify-between gap-2">
<span class="text-3xl font-semibold tracking-tight text-n-slate-12">
{{ value }}
</span>
<span class="text-sm font-medium" :class="trendClass">{{ trend }}</span>
</div>
</div>
</template>