agregar IDs jerarquicos a componentes + regla #6 en AGENTS.md
This commit is contained in:
@@ -66,8 +66,8 @@ const statusLabel = (status: unknown) => {
|
||||
</div>
|
||||
|
||||
<!-- Stats -->
|
||||
<div class="grid gap-3 @xl:grid-cols-2 @3xl:grid-cols-4">
|
||||
<Card class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<div id="dashboard-stats" class="grid gap-3 @xl:grid-cols-2 @3xl:grid-cols-4">
|
||||
<Card id="dashboard-stats-epics" class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<CardHeader class="flex flex-row items-center justify-between space-y-0 pb-2">
|
||||
<CardTitle class="text-sm font-medium">{{ t('dashboard.epics') }}</CardTitle>
|
||||
<Layers class="size-4 text-muted-foreground" />
|
||||
@@ -78,7 +78,7 @@ const statusLabel = (status: unknown) => {
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<Card id="dashboard-stats-hus" class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<CardHeader class="flex flex-row items-center justify-between space-y-0 pb-2">
|
||||
<CardTitle class="text-sm font-medium">{{ t('dashboard.hus') }}</CardTitle>
|
||||
<FileText class="size-4 text-muted-foreground" />
|
||||
@@ -89,7 +89,7 @@ const statusLabel = (status: unknown) => {
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<Card id="dashboard-stats-inprogress" class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<CardHeader class="flex flex-row items-center justify-between space-y-0 pb-2">
|
||||
<CardTitle class="text-sm font-medium">{{ t('dashboard.inProgress') }}</CardTitle>
|
||||
<Activity class="size-4 text-muted-foreground" />
|
||||
@@ -100,7 +100,7 @@ const statusLabel = (status: unknown) => {
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<Card id="dashboard-stats-sessions" class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<CardHeader class="flex flex-row items-center justify-between space-y-0 pb-2">
|
||||
<CardTitle class="text-sm font-medium">{{ t('dashboard.sessions') }}</CardTitle>
|
||||
<Clock class="size-4 text-muted-foreground" />
|
||||
@@ -113,7 +113,7 @@ const statusLabel = (status: unknown) => {
|
||||
</div>
|
||||
|
||||
<!-- Description -->
|
||||
<Card>
|
||||
<Card id="dashboard-description">
|
||||
<CardHeader class="pb-2">
|
||||
<CardTitle class="text-sm font-medium">{{ t('dashboard.description') }}</CardTitle>
|
||||
</CardHeader>
|
||||
@@ -140,7 +140,7 @@ const statusLabel = (status: unknown) => {
|
||||
<!-- Epics -->
|
||||
<template v-else-if="workItems.epics.length > 0">
|
||||
<div>
|
||||
<h3 class="text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-3">
|
||||
<h3 id="dashboard-epics-heading" class="text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-3">
|
||||
{{ t('dashboard.epicsCount', { count: workItems.totalEpics }) }}
|
||||
</h3>
|
||||
<div class="space-y-2">
|
||||
@@ -173,7 +173,7 @@ const statusLabel = (status: unknown) => {
|
||||
</template>
|
||||
|
||||
<!-- HUs Table -->
|
||||
<Card>
|
||||
<Card id="dashboard-hus-table">
|
||||
<CardHeader class="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle class="text-sm font-medium">{{ t('dashboard.userStoriesTitle') }}</CardTitle>
|
||||
<Badge variant="outline" class="text-xs">{{ t('dashboard.husCount', { count: workItems.userStories.length }) }}</Badge>
|
||||
|
||||
@@ -41,7 +41,7 @@ async function handleLogin() {
|
||||
<div class="flex min-h-svh flex-col items-center justify-center gap-6 bg-background p-6">
|
||||
<img src="/Alpha.svg" alt="Alpha" class="h-10 w-auto dark:invert" />
|
||||
|
||||
<Card class="w-full max-w-sm bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<Card id="login-card" class="w-full max-w-sm bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<CardHeader>
|
||||
<CardTitle class="text-2xl">{{ t('login.title') }}</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
@@ -80,7 +80,7 @@ function getStatusVariant(status?: string) {
|
||||
</div>
|
||||
|
||||
<!-- Project Grid -->
|
||||
<div v-else class="grid grid-cols-1 gap-4 @lg:grid-cols-2 @3xl:grid-cols-3">
|
||||
<div id="projects-grid" v-else class="grid grid-cols-1 gap-4 @lg:grid-cols-2 @3xl:grid-cols-3">
|
||||
<Card
|
||||
v-for="p in projects.projects"
|
||||
:key="p.id"
|
||||
|
||||
@@ -175,7 +175,7 @@ onMounted(() => {
|
||||
<!-- Content -->
|
||||
<template v-else>
|
||||
<!-- Stats -->
|
||||
<div class="grid grid-cols-2 gap-3 @xl:grid-cols-3 @3xl:grid-cols-6">
|
||||
<div id="users-stats" class="grid grid-cols-2 gap-3 @xl:grid-cols-3 @3xl:grid-cols-6">
|
||||
<Card v-for="role in teamRoles" :key="role" class="bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<CardHeader class="p-4 pb-2">
|
||||
<CardTitle class="flex items-center gap-2 text-sm font-medium">
|
||||
@@ -198,7 +198,7 @@ onMounted(() => {
|
||||
<h3 class="text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-3">
|
||||
{{ t('users.teamMembers', { count: teamMembers.length }) }}
|
||||
</h3>
|
||||
<div class="grid grid-cols-1 gap-3 @xl:grid-cols-2 @3xl:grid-cols-3">
|
||||
<div id="users-team-cards" class="grid grid-cols-1 gap-3 @xl:grid-cols-2 @3xl:grid-cols-3">
|
||||
<Card
|
||||
v-for="user in teamMembers"
|
||||
:key="user.id"
|
||||
@@ -259,6 +259,7 @@ onMounted(() => {
|
||||
{{ t('users.allUsers') }}
|
||||
</h3>
|
||||
<div
|
||||
id="users-table"
|
||||
class="ag-theme-alpha-shadcn w-full rounded-lg border overflow-hidden"
|
||||
:style="{ height: Math.max(300, Math.min(600, store.users.length * 45 + 45)) + 'px' }"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user