"use client";import"./chunk-CN42QYIK.mjs";import"./chunk-MSXDLSXH.mjs";import{a as l,c as a}from"./chunk-S7CSCIW4.mjs";import"./chunk-JZXLCA2E.mjs";import{useState as T,useEffect as y,useMemo as H}from"react";import{UniformSlot as h}from"@uniformdev/canvas-next-rsc/component";var S=({variant:e,backgroundColor:r,border:o,size:t})=>a("flex w-fit p-4 text-center gap-2 items-end leading-none",{"flex-col":e==="labelsUnder",[`bg-${r}`]:!!r,[l(o,"{value}")]:o,"items-center":o,[l(t,"text-{value}")]:!!t,[l(o,"{value}")]:!!o}),_=({textColor:e})=>a("flex gap-5 flex-wrap flex-col sm:flex-row",{[`text-${e}`]:e});import{jsx as u}from"react/jsx-runtime";var c=e=>{let r=new Date(e?.datetime??0).getTime(),o=new Date().getTime(),t=Math.max(Math.floor((r-o)/1e3),0),m=Math.floor(t%60),n=Math.floor(t/60%60),d=Math.floor(t/3600%24);return{days:Math.floor(t/86400),hours:d,minutes:n,seconds:m,timeDifference:t}},p=({maxUnitsCount:e,currentTime:r,unit:o,isAlignEnd:t})=>u("div",{className:"relative mx-auto h-[1.25em] w-[1.75em] overflow-hidden",children:u("div",{className:"absolute transition-transform duration-500 ease-in-out",style:{transform:`translateY(-${r*1.25}em)`},children:Array.from({length:e+1},(m,n)=>u("div",{className:a("flex h-[1.25em] w-[1.75em] justify-center",{"items-end":t,"items-center":!t}),children:n<10?`0${n}`:n},`${o}-${n}`))})});import{jsx as i,jsxs as R}from"react/jsx-runtime";var g=["days","hours","minutes","seconds"],Z=({targetDate:e,backgroundColor:r,textColor:o,border:t,size:m,component:n,context:d,slots:N})=>{let[{timeDifference:f,...C},I]=T(c(e)),v=H(()=>{let{days:s}=c(e);return{seconds:59,minutes:59,hours:23,days:s}},[e]);return y(()=>{if(f>0){let s=setInterval(()=>{I(c(e))},1e3);return()=>clearInterval(s)}},[e,f]),i("div",{children:f?i("div",{className:_({textColor:o}),children:g.map(s=>{if(C[s]===0&&s==="days")return null;let U=C[s];return R("div",{className:S({variant:n.variant,backgroundColor:r,border:t,size:m}),children:[i("div",{className:"mx-auto",children:p({maxUnitsCount:v[s],currentTime:U,unit:s,isAlignEnd:!t})}),i("div",{className:"mx-auto",style:{fontSize:"0.5em"},children:s})]},s)})}):i(h,{data:n,context:d,slot:N.countdownComplete})})};export{Z as Countdown};
