{"release_id":"01a1c502-4ad1-0000-ec62-adc54d3c69aa","chunk_id":"01a1c502-4c0f-7931-8112-4d4ad8c5472f","file":"CoqYm7Z3.mjs","mappings":"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","names":["revealed","size","div","root_1","div_1","root_2","$.template_effect","$.set_class","$$render","consequent","alternate","variant","remaining","$.state","expired","update","target","$$props","$.set","diff","interval","onDestroy","hours","$.get","minutes","$.derived","seconds","urgent","pad","n","span","span_1","$0","$.set_text","text","t","span_2","root_3","svg","span_3","span_4","root_5","text_2","span_5","root_6","consequent_2","alternate_1","consequent_1","alternate_2"],"sources":["../../../../../../src/lib/components/duel/VSBadge.svelte","../../../../../../src/lib/components/duel/CountdownTimer.svelte"],"sourcesContent":["<script lang=\"ts\">\n\tinterface Props {\n\t\trevealed?: boolean;\n\t\tsize?: 'default' | 'hero';\n\t\tanimated?: boolean;\n\t}\n\n\tlet { revealed = false, size = 'default', animated = false }: Props = $props();\n</script>\n\n{#if size === 'hero'}\n\t<div class=\"relative flex items-center justify-center\">\n\t\t<div class=\"relative z-10 flex h-[120px] w-[120px] items-center justify-center rounded-full border-2 border-blue/25 bg-bg md:h-[160px] md:w-[160px]\">\n\t\t\t<div class=\"absolute inset-1 rounded-full bg-gradient-to-br from-blue/[.06] to-transparent\" aria-hidden=\"true\"></div>\n\t\t\t<span class=\"relative font-display text-4xl font-black tracking-tighter text-blue md:text-6xl\">VS</span>\n\t\t</div>\n\t</div>\n{:else}\n\t<div class=\"flex h-16 w-16 items-center justify-center rounded-full border-2 border-border bg-bg transition-transform duration-500 md:h-20 md:w-20 {revealed ? 'scale-110' : ''}\">\n\t\t<span class=\"font-display text-2xl font-black tracking-tighter text-text md:text-3xl\">VS</span>\n\t</div>\n{/if}\n","<script lang=\"ts\">\n\timport { t } from '$lib/i18n';\n\timport { onDestroy } from 'svelte';\n\n\tinterface Props {\n\t\t// Nullable: on a navigation/teardown tick the parent's derived source\n\t\t// (e.g. BeatTeamMatch's `closesIso`) can hand us null. `update()` runs on a\n\t\t// 1s interval that outlives that tick, so it must never throw on a bad value.\n\t\texpiresAt: string | null | undefined;\n\t\tvariant?: 'default' | 'prominent';\n\t}\n\n\tlet { expiresAt, variant = 'default' }: Props = $props();\n\n\tlet remaining = $state(0);\n\tlet expired = $state(false);\n\n\tfunction update() {\n\t\tconst target = expiresAt ? new Date(expiresAt).getTime() : NaN;\n\t\tif (Number.isNaN(target)) {\n\t\t\t// Missing / invalid date — treat as expired rather than rendering NaN.\n\t\t\tremaining = 0;\n\t\t\texpired = true;\n\t\t\treturn;\n\t\t}\n\t\tconst diff = target - Date.now();\n\t\tif (diff <= 0) {\n\t\t\tremaining = 0;\n\t\t\texpired = true;\n\t\t} else {\n\t\t\tremaining = diff;\n\t\t\texpired = false;\n\t\t}\n\t}\n\n\tupdate();\n\tconst interval = setInterval(update, 1000);\n\tonDestroy(() => clearInterval(interval));\n\n\tconst hours = $derived(Math.floor(remaining / 3600000));\n\tconst minutes = $derived(Math.floor((remaining % 3600000) / 60000));\n\tconst seconds = $derived(Math.floor((remaining % 60000) / 1000));\n\tconst urgent = $derived(remaining > 0 && remaining < 3600000);\n\tconst pad = (n: number) => String(n).padStart(2, '0');\n</script>\n\n{#if variant === 'prominent'}\n\t{#if expired}\n\t\t<span class=\"inline-flex items-center gap-1.5 rounded-full border border-coral/20 bg-coral/[.08] px-3.5 py-1.5\">\n\t\t\t<svg class=\"h-3.5 w-3.5 text-coral\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n\t\t\t\t<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n\t\t\t</svg>\n\t\t\t<span class=\"font-display text-xs font-bold tracking-wider text-coral\">{t('EXPIRED')}</span>\n\t\t</span>\n\t{:else}\n\t\t<span class=\"inline-flex items-center gap-1.5 rounded-full border px-3.5 py-1.5 {urgent ? 'border-coral/20 bg-coral/[.08]' : 'border-blue/20 bg-blue/[.08]'}\">\n\t\t\t<svg class=\"h-3.5 w-3.5 {urgent ? 'text-coral' : 'text-blue/70'}\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n\t\t\t\t<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n\t\t\t</svg>\n\t\t\t<span class=\"font-display text-xs font-bold tabular-nums tracking-wider {urgent ? 'text-coral' : 'text-blue'}\">\n\t\t\t\t{pad(hours)}:{pad(minutes)}:{pad(seconds)}\n\t\t\t</span>\n\t\t</span>\n\t{/if}\n{:else}\n\t{#if expired}\n\t\t<span class=\"font-display text-sm font-bold tracking-wider text-coral\">{t('EXPIRED')}</span>\n\t{:else}\n\t\t<span class=\"font-display text-sm font-bold tracking-wider tabular-nums {urgent ? 'text-coral' : 'text-muted'}\">\n\t\t\t{pad(hours)}:{pad(minutes)}:{pad(seconds)}\n\t\t</span>\n\t{/if}\n{/if}\n"],"version":3}