import { clsx, type ClassValue } from 'clsx' import { twMerge } from 'tailwind-merge' /** Fixed locale so SSR and browser output match (avoids hydration mismatch). */ const countFormatter = new Intl.NumberFormat('en-US') export function formatCount(value: number): string { return countFormatter.format(value) } export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } /** * Next occurrence of `hour`:`minute` (0–23, 0–59) in the local timezone. * If that time today is still in the future, returns today; otherwise tomorrow. */ export function getNextLocalWallClockDate(hour: number, minute = 0): Date { const d = new Date() d.setHours(hour, minute, 0, 0) if (d.getTime() <= Date.now()) { d.setDate(d.getDate() + 1) } return d }