export function maskDateBR(input: string) { const digits = input.replace(/\D/g, '').slice(0, 8); const parts: string[] = []; if (digits.length > 0) parts.push(digits.slice(0, 2)); if (digits.length > 2) parts.push(digits.slice(2, 4)); if (digits.length > 4) parts.push(digits.slice(4, 8)); return parts.join('/'); } export function isValidDateBR(value: string) { const m = value.match(/^(\d{2})\/(\d{2})\/(\d{4})$/); if (!m) return false; const [, dd, mm, yyyy] = m.map(Number) as unknown as [string, number, number, number]; const d = new Date(yyyy, mm - 1, dd); return d.getFullYear() === yyyy && d.getMonth() === mm - 1 && d.getDate() === dd; } export function brToISO(value: string): string | null { if (!isValidDateBR(value)) return null; const [dd, mm, yyyy] = value.split('/'); return `${yyyy}-${mm}-${dd}`; }