feat: implement comprehensive chat system with user presence management, notification handling, and avatar integration; enhance UI components for improved user experience

This commit is contained in:
2025-10-28 11:57:54 -03:00
parent 81e6eb4a42
commit ee2c9c3ae0
47 changed files with 8274 additions and 195 deletions

View File

@@ -0,0 +1,46 @@
<script lang="ts">
interface Props {
status?: "online" | "offline" | "ausente" | "externo" | "em_reuniao";
size?: "sm" | "md" | "lg";
}
let { status = "offline", size = "md" }: Props = $props();
const sizeClasses = {
sm: "w-2 h-2",
md: "w-3 h-3",
lg: "w-4 h-4",
};
const statusConfig = {
online: {
color: "bg-success",
label: "Online",
},
offline: {
color: "bg-base-300",
label: "Offline",
},
ausente: {
color: "bg-warning",
label: "Ausente",
},
externo: {
color: "bg-info",
label: "Externo",
},
em_reuniao: {
color: "bg-error",
label: "Em Reunião",
},
};
const config = $derived(statusConfig[status]);
</script>
<div
class={`${sizeClasses[size]} ${config.color} rounded-full`}
title={config.label}
aria-label={config.label}
></div>