{"version":3,"file":"CountdownTimer.BmTf-cd2.mjs","names":["useState","useRef","useState","useRef","_Fragment"],"sources":["https:/framer.com/m/framer/default-utils.js","https:/framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/s801VqobGI0Gkh3K9b41/Embed.js","https:/framerusercontent.com/modules/pMqIA8IDwmFzXrLvGxgg/1b01jT4dQv8TnagDb3WH/CountdownTimer.js"],"sourcesContent":["/*\n * index (framer/default-utils@0.45.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useIsOnCanvas,emptyStateStyle,containerStyles}from\"https://framer.com/m/framer/default-utils.js\";/**\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n * @framerDisableUnlink\n */export default function Embed({type,url,html,zoom,radius,border,style={}}){if(type===\"url\"&&url){return /*#__PURE__*/_jsx(EmbedUrl,{url:url,zoom:zoom,radius:radius,border:border,style:style});}if(type===\"html\"&&html){return /*#__PURE__*/_jsx(EmbedHtml,{html:html,style:style});}return /*#__PURE__*/_jsx(Instructions,{style:style});}addPropertyControls(Embed,{type:{type:ControlType.Enum,defaultValue:\"url\",displaySegmentedControl:true,options:[\"url\",\"html\"],optionTitles:[\"URL\",\"HTML\"]},url:{title:\"URL\",type:ControlType.String,description:\"Some websites don’t support embedding.\",hidden(props){return props.type!==\"url\";}},html:{title:\"HTML\",type:ControlType.String,displayTextArea:true,hidden(props){return props.type!==\"html\";}},border:{title:\"Border\",type:ControlType.Border,optional:true,hidden(props){return props.type!==\"url\";}},radius:{type:ControlType.BorderRadius,title:\"Radius\",hidden(props){return props.type!==\"url\";}},zoom:{title:\"Zoom\",defaultValue:1,type:ControlType.Number,hidden(props){return props.type!==\"url\";},min:.1,max:1,step:.1,displayStepper:true}});function Instructions({style}){return /*#__PURE__*/_jsx(\"div\",{style:{minHeight:getMinHeight(style),...emptyStateStyle,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"To embed a website or widget, add it to the properties\\xa0panel.\"})});}function EmbedUrl({url,zoom,radius,border,style}){const hasAutoHeight=!style.height;// Add https:// if the URL does not have a protocol.\nif(!/[a-z]+:\\/\\//.test(url)){url=\"https://\"+url;}const onCanvas=useIsOnCanvas();// We need to check if the url is blocked inside an iframe by the X-Frame-Options\n// or Content-Security-Policy headers on the backend.\nconst[state,setState]=useState(onCanvas?undefined:false);useEffect(()=>{// We only want to check on the canvas.\n// On the website we want to avoid the additional delay.\nif(!onCanvas)return;// TODO: We could also use AbortController here.\nlet isLastEffect=true;setState(undefined);async function load(){const response=await fetch(\"https://api.framer.com/functions/check-iframe-url?url=\"+encodeURIComponent(url));if(response.status==200){const{isBlocked}=await response.json();if(isLastEffect){setState(isBlocked);}}else{const message=await response.text();console.error(message);const error=new Error(\"This site can’t be reached.\");setState(error);}}load().catch(error=>{console.error(error);setState(error);});return()=>{isLastEffect=false;};},[url]);if(onCanvas&&hasAutoHeight){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"URL embeds do not support auto height.\",style:style});}if(!url.startsWith(\"https://\")){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"Unsupported protocol.\",style:style});}if(state===undefined){return /*#__PURE__*/_jsx(LoadingIndicator,{});}if(state instanceof Error){return /*#__PURE__*/_jsx(ErrorMessage,{message:state.message,style:style});}if(state===true){const message=`Can’t embed ${url} due to its content security policy.`;return /*#__PURE__*/_jsx(ErrorMessage,{message:message,style:style});}return /*#__PURE__*/_jsx(\"iframe\",{src:url,style:{...iframeStyle,...style,...border,zoom:zoom,borderRadius:radius,transformOrigin:\"top center\"},loading:\"lazy\",// @ts-ignore\nfetchPriority:onCanvas?\"low\":\"auto\",referrerPolicy:\"no-referrer\",sandbox:getSandbox(onCanvas)});}const iframeStyle={width:\"100%\",height:\"100%\",border:\"none\"};function getSandbox(onCanvas){const result=[\"allow-same-origin\",\"allow-scripts\"];if(!onCanvas){result.push(\"allow-downloads\",\"allow-forms\",\"allow-modals\",\"allow-orientation-lock\",\"allow-pointer-lock\",\"allow-popups\",\"allow-popups-to-escape-sandbox\",\"allow-presentation\",\"allow-storage-access-by-user-activation\",\"allow-top-navigation-by-user-activation\");}return result.join(\" \");}function EmbedHtml({html,...props}){const hasScript=html.includes(\"</script>\");if(hasScript){const hasSplineViewer=html.includes(\"</spline-viewer>\");const hasComment=html.includes(\"<!-- framer-direct-embed -->\");if(hasSplineViewer||hasComment){return /*#__PURE__*/_jsx(EmbedHtmlWithScripts,{html:html,...props});}return /*#__PURE__*/_jsx(EmbedHtmlInsideIframe,{html:html,...props});}return /*#__PURE__*/_jsx(EmbedHtmlWithoutScripts,{html:html,...props});}function EmbedHtmlInsideIframe({html,style}){const ref=useRef();const[iframeHeight,setIframeHeight]=useState(0);// Handle auto sizing\nuseEffect(()=>{const iframeWindow=ref.current?.contentWindow;function handleMessage(event){if(event.source!==iframeWindow)return;const data=event.data;if(typeof data!==\"object\"||data===null)return;const height=data.embedHeight;if(typeof height!==\"number\")return;setIframeHeight(height);}window.addEventListener(\"message\",handleMessage);// After SSG the iframe loads before we attach the event handler,\n// therefore we need to request the latest height from the iframe.\niframeWindow?.postMessage(\"getEmbedHeight\",\"*\");return()=>{window.removeEventListener(\"message\",handleMessage);};},[]);// The CSS is mainly copied from:\n// FramerStudio/src/app/vekter/src/renderer/setDefaultFont.ts\n// FramerStudio/src/app/vekter/src/export/globalStylesForExport.ts\nconst srcDoc=`\n<html>\n    <head>\n        <style>\n            html, body {\n                margin: 0;\n                padding: 0;\n            }\n\n            body {\n                display: flex;\n                justify-content: center;\n                align-items: center;\n            }\n\n            :root {\n                -webkit-font-smoothing: antialiased;\n                -moz-osx-font-smoothing: grayscale;\n            }\n\n            * {\n                box-sizing: border-box;\n                -webkit-font-smoothing: inherit;\n            }\n\n            h1, h2, h3, h4, h5, h6, p, figure {\n                margin: 0;\n            }\n\n            body, input, textarea, select, button {\n                font-size: 12px;\n                font-family: sans-serif;\n            }\n        </style>\n    </head>\n    <body>\n        ${html}\n        <script type=\"module\">\n            let height = 0\n\n            function sendEmbedHeight() {\n                window.parent.postMessage({\n                    embedHeight: height\n                }, \"*\")\n            }\n\n            const observer = new ResizeObserver((entries) => {\n                if (entries.length !== 1) return\n                const entry = entries[0]\n                if (entry.target !== document.body) return\n\n                height = entry.contentRect.height\n                sendEmbedHeight()\n            })\n\n            observer.observe(document.body)\n\n            window.addEventListener(\"message\", (event) => {\n                if (event.source !== window.parent) return\n                if (event.data !== \"getEmbedHeight\") return\n                sendEmbedHeight()\n            })\n        </script>\n    <body>\n</html>\n`;const currentStyle={...iframeStyle,...style};const hasAutoHeight=!style.height;if(hasAutoHeight){currentStyle.height=iframeHeight+\"px\";}return /*#__PURE__*/_jsx(\"iframe\",{ref:ref,style:currentStyle,srcDoc:srcDoc});}function EmbedHtmlWithScripts({html,style}){const ref=useRef();useEffect(()=>{const div=ref.current;if(!div)return;div.innerHTML=html;executeScripts(div);return()=>{div.innerHTML=\"\";};},[html]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...htmlStyle,...style}});}function EmbedHtmlWithoutScripts({html,style}){return /*#__PURE__*/_jsx(\"div\",{style:{...htmlStyle,...style},dangerouslySetInnerHTML:{__html:html}});}const htmlStyle={width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\"};// This function replaces scripts with executable ones.\n// https://stackoverflow.com/questions/1197575/can-scripts-be-inserted-with-innerhtml\nfunction executeScripts(node){if(node instanceof Element&&node.tagName===\"SCRIPT\"){const script=document.createElement(\"script\");script.text=node.innerHTML;for(const{name,value}of node.attributes){script.setAttribute(name,value);}node.parentElement.replaceChild(script,node);}else{for(const child of node.childNodes){executeScripts(child);}}}// Generic components\nfunction LoadingIndicator(){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-componentPlaceholder\",style:{...containerStyles,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"Loading…\"})});}function ErrorMessage({message,style}){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-errorPlaceholder\",style:{minHeight:getMinHeight(style),...containerStyles,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:message})});}const centerTextStyle={textAlign:\"center\",minWidth:140};// Returns a min-height if the component is using auto-height.\nfunction getMinHeight(style){const hasAutoHeight=!style.height;if(hasAutoHeight)return 200;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Embed\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"400\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"600\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Embed.map","// Responsive countdown timer with 4 columns: days, hours, minutes, seconds. Each can be disabled. Columns have responsive width/height for desktop, tablet, and mobile breakpoints.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useState,startTransition,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useInView}from\"framer-motion\";/**\n * Responsive Countdown Timer with 4 columns (days, hours, minutes, seconds), each can be disabled. Columns have responsive width/height for desktop, tablet, and mobile breakpoints.\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 80\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function CountdownTimer(props){const{targetDate,columns,textColor,numberFont,labelFont,style,columnBackground,columnRadius,columnSpacing,columnShadow,columnWidth,columnHeight,showDivider,dividerWidth,dividerHeight,dividerColor,border,animationType,animationDuration}=props;const[breakpoint,setBreakpoint]=useState(\"desktop\");// Framer will handle responsive font props automatically\nconst numberFontCurrent=numberFont;const labelFontCurrent=labelFont;const[timeLeft,setTimeLeft]=useState(getTimeLeft(targetDate));const[isVisible,setIsVisible]=useState(false);const ref=useRef(null);const isInView=useInView(ref,{once:true,margin:\"-100px\"});useEffect(()=>{if(isInView){const timer=setTimeout(()=>{startTransition(()=>setIsVisible(true));},100);return()=>clearTimeout(timer);}},[isInView]);useEffect(()=>{const interval=setInterval(()=>{startTransition(()=>setTimeLeft(getTimeLeft(targetDate)));},1e3);return()=>clearInterval(interval);},[targetDate]);function getTimeLeft(dateString){const now=new Date;const target=new Date(dateString);let diff=Math.max(0,target.getTime()-now.getTime());const days=Math.floor(diff/(1e3*60*60*24));diff-=days*1e3*60*60*24;const hours=Math.floor(diff/(1e3*60*60));diff-=hours*1e3*60*60;const minutes=Math.floor(diff/(1e3*60));diff-=minutes*1e3*60;const seconds=Math.floor(diff/1e3);return{days,hours,minutes,seconds};}// Responsive breakpoint detection using ResizeObserver\nconst containerRef=useState(()=>({current:null}))[0];useEffect(()=>{if(typeof window===\"undefined\")return;let observer;function updateBreakpoint(width){if(width<600)setBreakpoint(\"mobile\");else if(width<1024)setBreakpoint(\"tablet\");else setBreakpoint(\"desktop\");}if(containerRef.current&&typeof ResizeObserver!==\"undefined\"){observer=new ResizeObserver(entries=>{for(const entry of entries){const width=entry.contentRect.width;startTransition(()=>updateBreakpoint(width));}});observer.observe(containerRef.current);// Initial set\nupdateBreakpoint(containerRef.current.offsetWidth);}return()=>{if(observer&&containerRef.current)observer.unobserve(containerRef.current);};},[containerRef]);const colW=columnWidth||48;const colH=columnHeight||48;const columnsArr=[];if(columns&&columns.showDays)columnsArr.push({label:\"Days\",value:timeLeft.days});if(columns&&columns.showHours)columnsArr.push({label:\"Hours\",value:timeLeft.hours});if(columns&&columns.showMinutes)columnsArr.push({label:\"Minutes\",value:timeLeft.minutes});if(columns&&columns.showSeconds)columnsArr.push({label:\"Seconds\",value:timeLeft.seconds});const backgroundStyle=columnBackground;const getAnimationStyle=()=>{const duration=animationDuration/1e3;if(!isVisible){switch(animationType){case\"fadeIn\":return{opacity:0,transition:`opacity ${duration}s ease-out`};case\"slideUp\":return{opacity:0,transform:\"translateY(20px)\",transition:`all ${duration}s ease-out`};case\"slideDown\":return{opacity:0,transform:\"translateY(-20px)\",transition:`all ${duration}s ease-out`};case\"slideLeft\":return{opacity:0,transform:\"translateX(20px)\",transition:`all ${duration}s ease-out`};case\"slideRight\":return{opacity:0,transform:\"translateX(-20px)\",transition:`all ${duration}s ease-out`};case\"scale\":return{opacity:0,transform:\"scale(0.8)\",transition:`all ${duration}s ease-out`};case\"bounce\":return{opacity:0,transform:\"scale(0.3)\",transition:`all ${duration}s cubic-bezier(0.68, -0.55, 0.265, 1.55)`};default:return{opacity:1};}}else{return{opacity:1,transform:\"translateY(0px) translateX(0px) scale(1)\",transition:`all ${duration}s ${animationType===\"bounce\"?\"cubic-bezier(0.68, -0.55, 0.265, 1.55)\":\"ease-out\"}`};}};return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...style,display:\"flex\",flexDirection:\"row\",alignItems:\"center\",justifyContent:\"center\",color:textColor,gap:columnSpacing,textAlign:\"center\",flexWrap:\"wrap\",width:\"100%\",boxSizing:\"border-box\",...getAnimationStyle()},children:columnsArr.map((col,i)=>/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",width:colW+\"px\",height:colH+\"px\",minWidth:24,minHeight:24,background:backgroundStyle,borderRadius:columnRadius,boxShadow:columnShadow,overflow:\"hidden\",textAlign:\"center\",flex:`0 0 auto`,boxSizing:\"border-box\",border:border&&border.borderWidth>0?border:\"none\",...border&&border.borderWidth>0?{borderWidth:border.borderWidth||1,borderStyle:border.borderStyle||\"solid\",borderColor:border.borderColor||\"#000000\",borderTopWidth:border.borderTopWidth,borderLeftWidth:border.borderLeftWidth,borderRightWidth:border.borderRightWidth,borderBottomWidth:border.borderBottomWidth}:{},transition:\"all 0.3s ease-in-out\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{position:\"relative\",zIndex:1,...numberFontCurrent,width:\"100%\",display:\"block\",textAlign:\"center\",color:textColor,transition:\"all 0.2s ease-in-out\"},children:String(col.value).padStart(2,\"0\")}),/*#__PURE__*/_jsx(\"span\",{style:{position:\"relative\",zIndex:1,...labelFontCurrent,textTransform:\"lowercase\",opacity:.7,marginTop:4,width:\"100%\",display:\"block\",textAlign:\"center\",color:textColor,transition:\"opacity 0.2s ease-in-out\"},children:col.label})]},col.label),showDivider&&i<columnsArr.length-1&&/*#__PURE__*/_jsx(\"div\",{style:{width:dividerWidth+\"px\",height:dividerHeight+\"px\",backgroundColor:dividerColor,flex:\"0 0 auto\"}})]}))});}addPropertyControls(CountdownTimer,{targetDate:{type:ControlType.Date,title:\"Target Date\",displayTime:true,defaultValue:new Date(Date.now()+864e5).toISOString(),group:\"General\"},animationType:{type:ControlType.Enum,title:\"Animation Type\",options:[\"none\",\"fadeIn\",\"slideUp\",\"slideDown\",\"slideLeft\",\"slideRight\",\"scale\",\"bounce\"],optionTitles:[\"None\",\"Fade In\",\"Slide Up\",\"Slide Down\",\"Slide Left\",\"Slide Right\",\"Scale\",\"Bounce\"],defaultValue:\"fadeIn\",group:\"Animation\"},animationDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:600,min:100,max:2e3,step:100,unit:\"ms\",group:\"Animation\",hidden:({animationType})=>animationType===\"none\"},columns:{type:ControlType.Object,title:\"Display\",group:\"Show\",getTitle:()=>\"Days, hours, minutes, seconds\",controls:{showDays:{type:ControlType.Boolean,title:\"Days\",defaultValue:true},showHours:{type:ControlType.Boolean,title:\"Hours\",defaultValue:true},showMinutes:{type:ControlType.Boolean,title:\"Minutes\",defaultValue:true},showSeconds:{type:ControlType.Boolean,title:\"Seconds\",defaultValue:true}}},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\",group:\"Typography\"},numberFont:{type:ControlType.Font,title:\"Number Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:32,variant:\"Bold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"},group:\"Typography\",enableBreakpoint:true},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:12,variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"},group:\"Typography\",enableBreakpoint:true},columnBackground:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F5F5F5\",group:\"Columns\"},columnWidth:{type:ControlType.Number,title:\"Width\",defaultValue:56,min:16,max:256,group:\"Columns\",enableBreakpoint:true},columnHeight:{type:ControlType.Number,title:\"Height\",defaultValue:56,min:16,max:256,group:\"Columns\",enableBreakpoint:true},columnShadow:{type:ControlType.BoxShadow,title:\"Shadow\",group:\"Columns\"},columnRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,max:128,group:\"Columns\"},columnSpacing:{type:ControlType.Number,title:\"Spacing\",defaultValue:24,min:0,max:64,group:\"Columns\"},showDivider:{type:ControlType.Boolean,title:\"Show Divider\",defaultValue:false,group:\"Divider\"},dividerWidth:{type:ControlType.Number,title:\"Width\",defaultValue:2,min:1,max:20,group:\"Divider\",hidden:({showDivider})=>!showDivider},dividerHeight:{type:ControlType.Number,title:\"Height\",defaultValue:40,min:10,max:200,group:\"Divider\",hidden:({showDivider})=>!showDivider},dividerColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#CCCCCC\",group:\"Divider\",hidden:({showDivider})=>!showDivider},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:0,borderStyle:\"solid\",borderColor:\"#000000\"},group:\"Border\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CountdownTimer\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\",\"framerIntrinsicHeight\":\"80\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CountdownTimer.map"],"mappings":"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"}