{"release_id":"01a1c502-4ad1-0000-ec62-adc54d3c69aa","chunk_id":"01a1c502-4bd2-7e62-bf15-a2a0e50e8856","file":"BStf8-D6.mjs","mappings":"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","names":["closesAt","pot","settled","votesA","votesB","winnerSide","$.prop","$$props","closesIso","aWon","$.derived","bWon","total","pctA","$.get","div","root","div_1","img","root_1","div_2","root_2","div_3","root_3","$$render","consequent_1","alternate","span","root_4","span_1","root_5","$.template_effect","$0","$.set_text","text_1","t","consequent_2","alternate_1","span_2","$.sibling","$.first_child","fragment","text_2","consequent_3","div_4","img_1","root_7","div_5","root_8","div_6","root_9","span_3","text_3","consequent_5","alternate_2","span_4","root_10","span_5","root_11","text_5","consequent_6","consequent_7","span_6","fragment_1","text_6","consequent_8","div_7","root_13","VSBadge","node_7","div_8","node_6","span_7","root_14","CountdownTimer","node_9","span_8","root_15","text_7","span_9","root_16","consequent_10","consequent_11","alternate_3","span_10","root_17","text_8","consequent_12","div_9","root_18","span_11","span_12","$.set_style","div_10","root_19","consequent_13","consequent_14","$.set_class"],"sources":["../../../../../../src/lib/components/beat/BetVsCard.svelte"],"sourcesContent":["<script lang=\"ts\">\n\timport { t } from '$lib/i18n';\n\timport VSBadge from '$lib/components/duel/VSBadge.svelte';\n\timport CountdownTimer from '$lib/components/duel/CountdownTimer.svelte';\n\n\t// RAT-386: bet match VS display. Photos always show; vote counts stay blind\n\t// (🔒) until settled, then the winner side is ringed + tallies reveal.\n\tinterface Props {\n\t\turlA: string | null;\n\t\turlB: string | null;\n\t\tmediaTypeA: string | null;\n\t\tmediaTypeB: string | null;\n\t\tclosesAt?: Date | string | null;\n\t\tpot?: number;\n\t\tsettled?: boolean;\n\t\tvotesA?: number | null;\n\t\tvotesB?: number | null;\n\t\twinnerSide?: string | null;\n\t}\n\n\tlet {\n\t\turlA,\n\t\turlB,\n\t\tmediaTypeA,\n\t\tmediaTypeB,\n\t\tclosesAt = null,\n\t\tpot = 0,\n\t\tsettled = false,\n\t\tvotesA = null,\n\t\tvotesB = null,\n\t\twinnerSide = null\n\t}: Props = $props();\n\n\tconst closesIso = $derived(\n\t\tclosesAt ? (typeof closesAt === 'string' ? closesAt : closesAt.toISOString()) : null\n\t);\n\tconst aWon = $derived(settled && winnerSide === 'a');\n\tconst bWon = $derived(settled && winnerSide === 'b');\n\tconst total = $derived((votesA ?? 0) + (votesB ?? 0));\n\tconst pctA = $derived(settled && total > 0 ? ((votesA ?? 0) / total) * 100 : 50);\n</script>\n\n<div class=\"relative grid aspect-[4/3] grid-cols-2 overflow-hidden rounded-xl bg-bg ring-1 ring-border ring-inset\">\n\t<!-- side A -->\n\t<div class=\"relative overflow-hidden {bWon ? 'opacity-45' : ''}\">\n\t\t{#if mediaTypeA === 'image' && urlA}\n\t\t\t<img src={urlA} alt=\"\" loading=\"lazy\" class=\"h-full w-full object-cover\" />\n\t\t{:else if mediaTypeA === 'video'}\n\t\t\t<div class=\"flex h-full w-full items-center justify-center bg-gradient-to-br from-coral/30 via-coral/10 to-bg\">\n\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"ml-0.5 text-text\"><path d=\"M8 5v14l11-7z\" /></svg>\n\t\t\t</div>\n\t\t{:else}\n\t\t\t<div class=\"h-full w-full bg-gradient-to-br from-coral/15 to-bg\"></div>\n\t\t{/if}\n\t\t<div class=\"pointer-events-none absolute inset-x-0 bottom-0 h-20 bg-gradient-to-t from-black/70 via-black/15 to-transparent\"></div>\n\t\t{#if settled}\n\t\t\t<span class=\"absolute bottom-3 left-3 font-display text-xl font-bold text-text tabular-nums drop-shadow-[0_2px_8px_rgba(0,0,0,0.6)]\">{votesA}</span>\n\t\t{:else}\n\t\t\t<span class=\"absolute bottom-3 left-3 inline-flex items-center gap-1 rounded-md bg-black/60 px-2 py-1 text-[11px] font-semibold text-text/90 backdrop-blur\">{t('🔒 votes')}</span>\n\t\t{/if}\n\t\t{#if aWon}\n\t\t\t<div class=\"pointer-events-none absolute inset-0 ring-2 ring-green ring-inset\"></div>\n\t\t\t<span class=\"absolute top-2 left-2 rounded bg-green px-1.5 py-0.5 text-[9px] font-bold tracking-[0.16em] text-[#04210f] uppercase\">{t('wins')}</span>\n\t\t{/if}\n\t</div>\n\n\t<!-- side B -->\n\t<div class=\"relative overflow-hidden {aWon ? 'opacity-45' : ''}\">\n\t\t{#if mediaTypeB === 'image' && urlB}\n\t\t\t<img src={urlB} alt=\"\" loading=\"lazy\" class=\"h-full w-full object-cover\" />\n\t\t{:else if mediaTypeB === 'video'}\n\t\t\t<div class=\"flex h-full w-full items-center justify-center bg-gradient-to-br from-blue/30 via-blue/10 to-bg\">\n\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"ml-0.5 text-text\"><path d=\"M8 5v14l11-7z\" /></svg>\n\t\t\t</div>\n\t\t{:else}\n\t\t\t<div class=\"flex h-full w-full items-center justify-center bg-gradient-to-br from-blue/15 to-bg\">\n\t\t\t\t<span class=\"font-mono text-[10px] tracking-[0.2em] text-muted uppercase\">{t('waiting')}</span>\n\t\t\t</div>\n\t\t{/if}\n\t\t<div class=\"pointer-events-none absolute inset-x-0 bottom-0 h-20 bg-gradient-to-t from-black/70 via-black/15 to-transparent\"></div>\n\t\t{#if settled}\n\t\t\t<span class=\"absolute right-3 bottom-3 font-display text-xl font-bold text-text tabular-nums drop-shadow-[0_2px_8px_rgba(0,0,0,0.6)]\">{votesB}</span>\n\t\t{:else if mediaTypeB}\n\t\t\t<span class=\"absolute right-3 bottom-3 inline-flex items-center gap-1 rounded-md bg-black/60 px-2 py-1 text-[11px] font-semibold text-text/90 backdrop-blur\">{t('🔒 votes')}</span>\n\t\t{/if}\n\t\t{#if bWon}\n\t\t\t<div class=\"pointer-events-none absolute inset-0 ring-2 ring-green ring-inset\"></div>\n\t\t\t<span class=\"absolute top-2 right-2 rounded bg-green px-1.5 py-0.5 text-[9px] font-bold tracking-[0.16em] text-[#04210f] uppercase\">{t('wins')}</span>\n\t\t{/if}\n\t</div>\n\n\t{#if mediaTypeB}\n\t\t<div class=\"pointer-events-none absolute inset-0 flex items-center justify-center\"><VSBadge /></div>\n\t{/if}\n\n\t<!-- top overlay: countdown / pot -->\n\t<div class=\"pointer-events-none absolute inset-x-0 top-0 flex items-start justify-between p-3\">\n\t\t{#if closesIso && !settled}\n\t\t\t<span class=\"inline-flex items-center rounded-md bg-black/65 px-2.5 py-1 backdrop-blur\"><CountdownTimer expiresAt={closesIso} /></span>\n\t\t{:else if settled}\n\t\t\t<span class=\"rounded-md bg-black/60 px-2.5 py-1 font-mono text-[10px] tracking-[0.18em] text-muted uppercase backdrop-blur\">{t('closed')}</span>\n\t\t{:else}\n\t\t\t<span></span>\n\t\t{/if}\n\t\t{#if pot > 0}\n\t\t\t<span class=\"inline-flex items-center gap-1.5 rounded-md bg-black/70 px-2.5 py-1 font-display text-[13px] font-bold text-text backdrop-blur\">\n\t\t\t\t<span class=\"bet-coin\" aria-hidden=\"true\"></span>{t('{n} pot', { n: pot })}\n\t\t\t</span>\n\t\t{/if}\n\t</div>\n\n\t<!-- bottom edge: blind hatch (live) or revealed ratio (settled) -->\n\t{#if settled && total > 0}\n\t\t<div class=\"absolute inset-x-0 bottom-0 flex h-1\">\n\t\t\t<span class=\"bg-coral\" style=\"width: {pctA}%\"></span>\n\t\t\t<span class=\"bg-blue\" style=\"width: {100 - pctA}%\"></span>\n\t\t</div>\n\t{:else if mediaTypeB}\n\t\t<div class=\"absolute inset-x-0 bottom-0 h-1 bg-[repeating-linear-gradient(45deg,#2a2a2a,#2a2a2a_6px,#1a1a1a_6px,#1a1a1a_12px)]\"></div>\n\t{/if}\n</div>\n\n<style>\n\t.bet-coin {\n\t\twidth: 13px;\n\t\theight: 13px;\n\t\tborder-radius: 50%;\n\t\tflex: none;\n\t\tbackground: radial-gradient(circle at 34% 30%, #ffe27a, #f4b71f 70%);\n\t\tbox-shadow:\n\t\t\tinset 0 0 0 2px rgba(0, 0, 0, 0.28),\n\t\t\tinset 0 0 0 2.5px rgba(255, 255, 255, 0.16);\n\t}\n</style>\n"],"version":3}