{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/SO2ZTVx8BnXiwWfUIKzY/s8bdH8ZAlphrzNxAMQ1s/LaunchTimer.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";export default function LaunchTimer({fontColor,maxDigitFontSize=81,targetDate=\"2025-06-07\",targetTime=\"22:00:00\",endMessage}){const[remainingTime,setRemainingTime]=useState(determineRemainingTime(targetDate,targetTime));const[hasEnded,setHasEnded]=useState(false);const containerRef=useRef(null);useEffect(()=>{if(!isValidDate(targetDate)||!isValidTime(targetTime)){console.error(\"Invalid date or time format\");return;}const countdownTimer=setInterval(()=>{const newRemainingTime=determineRemainingTime(targetDate,targetTime);setRemainingTime(newRemainingTime);if(Object.values(newRemainingTime).every(unit=>unit===0)){setHasEnded(true);clearInterval(countdownTimer);}},1e3);return()=>clearInterval(countdownTimer);},[targetDate,targetTime]);function determineRemainingTime(date,time){const timeDifference=+new Date(`${date}T${time}`)-+new Date;const timeUnits={d:0,h:0,m:0,s:0};if(timeDifference>0){timeUnits.d=Math.floor(timeDifference/(1e3*60*60*24));timeUnits.h=Math.floor(timeDifference/(1e3*60*60)%24);timeUnits.m=Math.floor(timeDifference/(1e3*60)%60);timeUnits.s=Math.floor(timeDifference/1e3%60);}return timeUnits;}function formatNumber(num){return num<10?`0${num}`:num;}function isValidDate(dateString){return/^\\d{4}-\\d{2}-\\d{2}$/.test(dateString);}function isValidTime(timeString){return/^\\d{2}:\\d{2}:\\d{2}$/.test(timeString);}const containerStyle={display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"100%\"};const timerStyle={display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontFamily:\"Helvetica Neue\",fontWeight:\"500\",color:fontColor,textAlign:\"center\"};const digitStyle={fontSize:`${maxDigitFontSize}px`,letterSpacing:\"-0.02em\",textAlign:\"center\",width:\"81px\",fontFamily:\"Helvetica Neue\",fontWeight:\"500\"};const labelStyle={fontSize:\"0.8em\",textAlign:\"center\",marginTop:\"5px\"};return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:containerStyle,children:/*#__PURE__*/_jsx(\"div\",{style:timerStyle,children:!hasEnded?/*#__PURE__*/_jsx(_Fragment,{children:Object.entries(remainingTime).map(([unit,value])=>/*#__PURE__*/_jsxs(\"div\",{style:{margin:\"0 10px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:digitStyle,children:formatNumber(value)}),/*#__PURE__*/_jsx(\"div\",{style:labelStyle,children:unit===\"d\"?\"Days\":unit===\"h\"?\"Hours\":unit===\"m\"?\"Minutes\":\"Seconds\"})]},unit))}):/*#__PURE__*/_jsx(\"span\",{style:digitStyle,children:endMessage})})});}addPropertyControls(LaunchTimer,{maxDigitFontSize:{type:ControlType.Number,title:\"Max Font Size\",defaultValue:40,min:10,max:200,unit:\"px\"},fontColor:{type:ControlType.Color,defaultValue:\"#FFFFFF\"},targetDate:{type:ControlType.String,defaultValue:\"2024-11-29\",description:\"YYYY-MM-DD\"},targetTime:{type:ControlType.String,defaultValue:\"21:00:00\",description:\"HH:MM:SS\"},endMessage:{type:ControlType.String,defaultValue:\"Event has started\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LaunchTimer\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LaunchTimer.map"],
  "mappings": "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",
  "names": ["LaunchTimer", "fontColor", "maxDigitFontSize", "targetDate", "targetTime", "endMessage", "remainingTime", "setRemainingTime", "ye", "determineRemainingTime", "hasEnded", "setHasEnded", "containerRef", "pe", "ue", "isValidDate", "isValidTime", "countdownTimer", "newRemainingTime", "unit", "date", "time", "timeDifference", "timeUnits", "formatNumber", "num", "dateString", "timeString", "containerStyle", "timerStyle", "digitStyle", "labelStyle", "p", "l", "value", "u", "addPropertyControls", "ControlType"]
}
