{"version":3,"file":"CountdownTimer.BK0a8Cvp.mjs","names":["useRef","useCallback","useMemo","useState"],"sources":["https:/framerusercontent.com/modules/hySapXxnzpraQVQofppA/1qtPq6Q2QHQSgEn04YKm/CountdownTimer.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{startTransition,useCallback,useEffect,useMemo,useRef,useState}from\"react\";/**\n * User wants: \"make a countdown timer that reads time at the end of the url 'Expiry=X' and count towards it.\"\n *//**\n * @framerIntrinsicWidth 280\n * @framerIntrinsicHeight 90\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function CountdownTimer(props){const isStatic=useIsStaticRenderer();const didFireExpireRef=useRef(false);const{mode=\"url\",expiryManual=\"\",urlParamName=\"Expiry\",display=\"blocks\",showDays=true,showLabels=true,expiredText=\"Expired\",labelDays=\"Days\",labelHours=\"Hours\",labelMinutes=\"Min\",labelSeconds=\"Sec\",backgroundColor=\"#FFFFFF\",borderColor=\"#EEEEEE\",textColor=\"#000000\",labelColor=\"#CCCCCC\",separatorColor=\"#CCCCCC\",radius=\"16px\",padding=\"12px\",gap=10,timeFont,labelFont,onExpire}=props;const getExpiryStringFromURL=useCallback(()=>{if(typeof window===\"undefined\")return null;try{const url=new URL(window.location.href);// 1) Query param: ?Expiry=X (case-insensitive)\nconst direct=url.searchParams.get(urlParamName);if(direct&&direct.trim().length>0)return direct.trim();const keyLower=urlParamName.toLowerCase();for(const[k,v]of url.searchParams.entries()){if(k.toLowerCase()===keyLower&&v.trim().length>0)return v.trim();}// 2) End of path: /.../Expiry=X\nconst match=url.pathname.match(new RegExp(`${escapeRegExp(urlParamName)}=([^/]+)$`,\"i\"));if(match?.[1])return match[1];// 3) Last segment as a fallback (lets users put just a timestamp/date at end)\nconst segments=url.pathname.split(\"/\").filter(Boolean);const last=segments[segments.length-1];if(last&&last.trim().length>0)return last.trim();}catch{// ignore\n}return null;},[urlParamName]);const parseExpiry=useCallback((raw,nowMs)=>{if(!raw)return null;const cleaned=safeDecode(raw).trim();if(!cleaned)return null;// Relative formats: 10s, 15m, 2h, 3d\nconst rel=cleaned.match(/^(\\d+(?:\\.\\d+)?)\\s*([smhd])$/i);if(rel){const value=Number(rel[1]);const unit=rel[2].toLowerCase();const mult=unit===\"s\"?1e3:unit===\"m\"?6e4:unit===\"h\"?36e5:864e5;if(Number.isFinite(value))return nowMs+value*mult;}// Pure number:\n// - If it's small (e.g. 3600), treat as seconds-from-now (relative)\n// - Else treat as epoch seconds (10 digits) or ms (13 digits)\nif(/^\\d+$/.test(cleaned)){const n=Number(cleaned);if(!Number.isFinite(n))return null;if(n<1e7)return nowMs+n*1e3;// Heuristic: if >= 1e12 treat as ms, else seconds\nreturn n>=1e12?n:n*1e3;}// ISO / Date.parse formats\n// Some WebViews/Safari variants are picky about spaces and timezone offsets like +00:00\nconst candidates=Array.from(new Set([cleaned,cleaned.replace(/\\s+/g,\"T\"),cleaned.replace(/([+-]\\d{2}):(\\d{2})$/,\"$1$2\"),cleaned.replace(/\\s+/g,\"T\").replace(/([+-]\\d{2}):(\\d{2})$/,\"$1$2\")]));for(const c of candidates){const parsed=Date.parse(c);if(Number.isFinite(parsed))return parsed;}return null;},[]);const resolvedExpiryMs=useMemo(()=>{if(mode===\"manual\"){if(typeof window===\"undefined\")return parseExpiry(expiryManual,Date.now());return parseExpiry(expiryManual,Date.now());}const fromUrl=getExpiryStringFromURL();if(!fromUrl)return null;if(typeof window===\"undefined\")return parseExpiry(fromUrl,Date.now());return parseExpiry(fromUrl,Date.now());},[mode,expiryManual,getExpiryStringFromURL,parseExpiry]);const[nowMs,setNowMs]=useState(()=>typeof window!==\"undefined\"?Date.now():0);useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\")return;let rafId=0;let intervalId=null;// Keep accurate seconds tick aligned\nconst tick=()=>{startTransition(()=>setNowMs(Date.now()));};// Initial\ntick();// Align next interval close to second boundary\nconst msToNextSecond=1e3-Date.now()%1e3;rafId=window.setTimeout(()=>{tick();intervalId=window.setInterval(tick,1e3);},msToNextSecond);return()=>{if(typeof window!==\"undefined\"){window.clearTimeout(rafId);if(intervalId!=null)window.clearInterval(intervalId);}};},[isStatic]);const remainingMs=useMemo(()=>{if(!resolvedExpiryMs||!Number.isFinite(resolvedExpiryMs))return null;const baseNow=typeof window!==\"undefined\"?nowMs:0;return Math.max(0,resolvedExpiryMs-baseNow);},[resolvedExpiryMs,nowMs]);const isExpired=useMemo(()=>{if(resolvedExpiryMs==null)return false;if(typeof window===\"undefined\")return false;return nowMs>=resolvedExpiryMs;},[resolvedExpiryMs,nowMs]);useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\")return;if(!onExpire)return;if(resolvedExpiryMs==null)return;if(isExpired&&!didFireExpireRef.current){didFireExpireRef.current=true;onExpire();}},[isExpired,onExpire,resolvedExpiryMs,isStatic]);const parts=useMemo(()=>{if(remainingMs==null){return{hasValue:false,days:0,hours:0,minutes:0,seconds:0};}const totalSeconds=Math.floor(remainingMs/1e3);const days=Math.floor(totalSeconds/86400);const hours=Math.floor(totalSeconds%86400/3600);const minutes=Math.floor(totalSeconds%3600/60);const seconds=totalSeconds%60;return{hasValue:true,days,hours,minutes,seconds};},[remainingMs]);const showDaysFinal=showDays&&parts.days>0;const timeItems=useMemo(()=>{const items=[];if(showDaysFinal)items.push({key:\"d\",value:pad2(parts.days),label:labelDays});items.push({key:\"h\",value:pad2(parts.hours),label:labelHours});items.push({key:\"m\",value:pad2(parts.minutes),label:labelMinutes});items.push({key:\"s\",value:pad2(parts.seconds),label:labelSeconds});return items;},[parts.days,parts.hours,parts.minutes,parts.seconds,showDaysFinal,labelDays,labelHours,labelMinutes,labelSeconds]);const isInline=display===\"inline\";const containerStyle=useMemo(()=>({position:\"relative\",width:\"100%\",height:\"100%\",boxSizing:\"border-box\",display:\"flex\",alignItems:\"center\",justifyContent:isInline?\"flex-start\":\"center\",padding,borderRadius:radius,background:backgroundColor,border:`1px solid ${borderColor}`,overflow:\"hidden\"}),[padding,radius,backgroundColor,borderColor,isInline]);const rowStyle=useMemo(()=>({width:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:isInline?\"flex-start\":\"center\",gap}),[gap,isInline]);const blockStyle=useMemo(()=>({display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",minWidth:isInline?\"auto\":56}),[isInline]);const timeStyle=useMemo(()=>({color:textColor,...timeFont||{},width:\"max-content\"}),[textColor,timeFont]);const labelStyle=useMemo(()=>({marginTop:4,color:labelColor,...labelFont||{},width:\"max-content\"}),[labelColor,labelFont]);const separatorStyle=useMemo(()=>({color:separatorColor,opacity:.9,...timeFont||{},width:\"max-content\",transform:\"translateY(-1px)\"}),[separatorColor,timeFont]);const content=useMemo(()=>{if(resolvedExpiryMs==null){return /*#__PURE__*/_jsx(\"span\",{style:timeStyle,\"aria-label\":\"Countdown unavailable\",children:expiredText});}if(isExpired){return /*#__PURE__*/_jsx(\"span\",{style:timeStyle,\"aria-label\":\"Expired\",children:expiredText});}return /*#__PURE__*/_jsx(\"div\",{style:rowStyle,\"aria-label\":\"Countdown timer\",children:timeItems.map((item,idx)=>{const isLast=idx===timeItems.length-1;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:isInline?\"center\":\"flex-start\",gap:isInline?6:10},children:[/*#__PURE__*/_jsxs(\"div\",{style:blockStyle,children:[/*#__PURE__*/_jsx(\"span\",{style:timeStyle,children:item.value}),showLabels&&!isInline&&/*#__PURE__*/_jsx(\"span\",{style:labelStyle,children:item.label}),showLabels&&isInline&&/*#__PURE__*/_jsx(\"span\",{style:{...labelStyle,marginTop:0,marginLeft:6},children:item.label})]}),!isLast&&/*#__PURE__*/_jsx(\"span\",{style:separatorStyle,children:\":\"})]},item.key);})});},[resolvedExpiryMs,isExpired,expiredText,rowStyle,timeItems,blockStyle,timeStyle,labelStyle,separatorStyle,showLabels,isInline]);if(RenderTarget.current()===RenderTarget.thumbnail){return /*#__PURE__*/_jsx(\"div\",{style:containerStyle,children:content});}return /*#__PURE__*/_jsx(\"div\",{style:{...containerStyle,...props.style},children:content});}function pad2(n){if(!Number.isFinite(n))return\"00\";const s=String(Math.max(0,Math.floor(n)));return s.length>=2?s:`0${s}`;}function safeDecode(v){try{return decodeURIComponent(v);}catch{return v;}}function escapeRegExp(str){return str.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");}addPropertyControls(CountdownTimer,{mode:{type:ControlType.Enum,title:\"Mode\",options:[\"url\",\"manual\"],optionTitles:[\"Read URL\",\"Manual\"],defaultValue:\"url\",displaySegmentedControl:true},urlParamName:{type:ControlType.String,title:\"URL Param\",defaultValue:\"Expiry\",hidden:p=>p.mode!==\"url\"},expiryManual:{type:ControlType.String,title:\"Manual Expiry\",defaultValue:\"1h\",hidden:p=>p.mode!==\"manual\"},display:{type:ControlType.Enum,title:\"Display\",options:[\"blocks\",\"inline\"],optionTitles:[\"Blocks\",\"Inline\"],defaultValue:\"blocks\",displaySegmentedControl:true},showDays:{type:ControlType.Boolean,title:\"Days\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showLabels:{type:ControlType.Boolean,title:\"Labels\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},expiredText:{type:ControlType.String,title:\"Expired Text\",defaultValue:\"Expired\"},labelDays:{type:ControlType.String,title:\"Days Label\",defaultValue:\"Days\",hidden:p=>!p.showLabels},labelHours:{type:ControlType.String,title:\"Hours Label\",defaultValue:\"Hours\",hidden:p=>!p.showLabels},labelMinutes:{type:ControlType.String,title:\"Min Label\",defaultValue:\"Min\",hidden:p=>!p.showLabels},labelSeconds:{type:ControlType.String,title:\"Sec Label\",defaultValue:\"Sec\",hidden:p=>!p.showLabels},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#EEEEEE\"},textColor:{type:ControlType.Color,title:\"Time\",defaultValue:\"#000000\"},labelColor:{type:ControlType.Color,title:\"Labels Color\",defaultValue:\"#CCCCCC\"},separatorColor:{type:ControlType.Color,title:\"Separators\",defaultValue:\"#CCCCCC\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"16px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"12px\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:10,min:0,max:40,step:1},timeFont:{type:ControlType.Font,title:\"Time Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"32px\",variant:\"Semibold\",letterSpacing:\"-0.03em\",lineHeight:\"1em\"}},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"12px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}},onExpire:{type:ControlType.EventHandler,title:\"On Expire\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CountdownTimer\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"280\",\"framerIntrinsicHeight\":\"90\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CountdownTimer.map"],"mappings":"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"}