chore: merge executor worktree (worktree-agent-a29c13e1)

This commit is contained in:
2026-04-20 17:12:56 +02:00
6 changed files with 122 additions and 14 deletions

View File

@@ -153,7 +153,7 @@ export default function QuickAddPicker({ budgetId }: QuickAddPickerProps) {
type="button"
role="option"
aria-selected={false}
className="flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
className="flex w-full items-center gap-2 px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
onClick={() => handlePickItem(item)}
>
{item.icon && (
@@ -198,7 +198,7 @@ export default function QuickAddPicker({ budgetId }: QuickAddPickerProps) {
<SelectGroup key={type}>
<SelectLabel className="flex items-center gap-1.5">
<div
className="size-2 rounded-full"
className="size-2"
style={{ backgroundColor: categoryColors[type] }}
/>
{t(`categories.types.${type}`)}

View File

@@ -70,7 +70,7 @@ export function CategorySection({
<Collapsible open={open} onOpenChange={onOpenChange}>
<CollapsibleTrigger asChild>
<button
className="group flex w-full items-center gap-3 rounded-md border-l-4 bg-card px-4 py-3 text-left hover:bg-muted/40 transition-colors"
className="group flex w-full items-center gap-3 border-l-4 bg-card px-4 py-3 text-left hover:bg-muted/40 transition-colors"
style={{ borderLeftColor: categoryColors[type] }}
>
<ChevronRight

View File

@@ -17,22 +17,22 @@ function SkeletonStatCard() {
export function DashboardSkeleton() {
return (
<div className="flex flex-col gap-6">
<div className="flex flex-col gap-8">
{/* Summary cards skeleton */}
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
<div className="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
<SkeletonStatCard />
<SkeletonStatCard />
<SkeletonStatCard />
</div>
{/* 3-column chart area skeleton */}
<div className="grid gap-6 md:grid-cols-2 lg:grid-cols-3">
<div className="grid gap-8 md:grid-cols-2 lg:grid-cols-3">
<Card>
<CardHeader>
<Skeleton className="h-5 w-40" />
</CardHeader>
<CardContent>
<Skeleton className="h-[250px] w-full rounded-md" />
<Skeleton className="h-[250px] w-full" />
</CardContent>
</Card>
<Card>
@@ -40,7 +40,7 @@ export function DashboardSkeleton() {
<Skeleton className="h-5 w-40" />
</CardHeader>
<CardContent>
<Skeleton className="h-[250px] w-full rounded-md" />
<Skeleton className="h-[250px] w-full" />
</CardContent>
</Card>
<Card>
@@ -48,7 +48,7 @@ export function DashboardSkeleton() {
<Skeleton className="h-5 w-40" />
</CardHeader>
<CardContent>
<Skeleton className="h-[250px] w-full rounded-md" />
<Skeleton className="h-[250px] w-full" />
</CardContent>
</Card>
</div>
@@ -56,12 +56,12 @@ export function DashboardSkeleton() {
{/* Collapsible sections skeleton */}
<div className="space-y-3">
{[1, 2, 3].map((i) => (
<div key={i} className="flex items-center gap-3 rounded-md border-l-4 border-muted bg-card px-4 py-3">
<div key={i} className="flex items-center gap-3 border-l-4 border-muted bg-card px-4 py-3">
<Skeleton className="size-4" />
<Skeleton className="h-4 w-32" />
<div className="ml-auto flex items-center gap-2">
<Skeleton className="h-5 w-24 rounded-full" />
<Skeleton className="h-5 w-24 rounded-full" />
<Skeleton className="h-5 w-24" />
<Skeleton className="h-5 w-24" />
<Skeleton className="h-4 w-16" />
</div>
</div>

View File

@@ -9,7 +9,7 @@ export function ChartEmptyState({ message, className }: ChartEmptyStateProps) {
return (
<div
className={cn(
"flex min-h-[250px] w-full items-center justify-center rounded-lg border border-dashed border-muted-foreground/20 bg-muted/30",
"flex min-h-[250px] w-full items-center justify-center border border-dashed border-muted-foreground/20 bg-muted/30",
className
)}
>

View File

@@ -12,7 +12,7 @@ export function PageShell({
children,
}: PageShellProps) {
return (
<div className="flex flex-col gap-6">
<div className="flex flex-col gap-8">
<div className="flex items-start justify-between gap-4">
<div>
<h1 className="text-2xl font-semibold tracking-tight">{title}</h1>