import { Widget, WidgetBody } from '@/components/widget'; import { cn } from '@/utils/cn'; import { addMonths, eachDayOfInterval, endOfMonth, format, formatISO, isSameMonth, isToday, startOfMonth, subMonths, } from 'date-fns'; import { ActivityIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'; import { useState } from 'react'; import { WidgetAbsoluteButtons, WidgetHead, WidgetTitle, } from '../overview/overview-widget'; import { Button } from '../ui/button'; import { Tooltiper } from '../ui/tooltip'; type Props = { data: { count: number; date: string }[]; }; function getOpacityLevel(count: number, maxCount: number): number { if (count === 0 || maxCount === 0) return 0; const ratio = count / maxCount; if (ratio <= 0.25) return 0.25; if (ratio <= 0.5) return 0.5; if (ratio <= 0.75) return 0.75; return 1; } const MonthCalendar = ({ month, data, maxCount, }: { month: Date; data: Props['data']; maxCount: number }) => (