Files
classroomio/apps/dashboard/src/lib/features/ui/analytics/activity-card.svelte
T

49 lines
1.1 KiB
Svelte
Raw Normal View History

<script lang="ts">
import type { Component } from 'svelte';
2026-03-09 11:18:22 +01:00
import { cn } from '@cio/ui/tools';
interface Activity {
icon: Component;
title: string;
percentage: number | string;
description: string;
hidePercentage?: boolean;
2026-03-09 11:18:22 +01:00
className?: string;
}
2025-11-01 15:49:29 +01:00
interface Props {
activity: Activity;
2026-03-09 11:18:22 +01:00
className?: string;
2025-11-01 15:49:29 +01:00
}
2026-03-09 11:18:22 +01:00
let { activity, className = '' }: Props = $props();
</script>
<div
2026-03-09 11:18:22 +01:00
class={cn(
'flex w-full flex-col items-center justify-evenly gap-2 rounded-xl border p-3 md:flex-row md:p-5',
className
)}
>
<div class="bg-primary-200 w-fit rounded-full p-4 text-black">
2025-11-01 15:49:29 +01:00
<activity.icon />
</div>
<div>
2025-11-01 15:49:29 +01:00
<p class="text-center text-sm font-medium text-gray-600 md:text-left dark:text-gray-200">
{activity.title}
</p>
<p class="text-center text-2xl md:text-left">
{activity.percentage}
{#if !activity.hidePercentage}
%
{/if}
</p>
2026-03-09 11:18:22 +01:00
{#if activity.description}
<p class="text-center text-xs text-gray-500 md:text-left md:text-sm dark:text-gray-300">
{activity.description}
</p>
{/if}
</div>
</div>