{"version":3,"file":"TimeSinceTracker.DGyrChjj.mjs","names":["React.useContext","React.useMemo","React.Fragment","React.forwardRef","React.useRef","React.useId","SVG","RichText","UtilsComponentMessage","useRef","useState"],"sources":["https:/framerusercontent.com/modules/fMDE7Cqb2uOvQFAHEP2m/cRfVFRl0izzBulKFjOAe/W7oLCU4_B.js","https:/framer.com/m/Utils-Component-Message-ZVoG.js@cRfVFRl0izzBulKFjOAe","https:/framerusercontent.com/modules/aej5zpwxBpkMdzOteBwy/DWeAZ5wauvGM5oFwVdgS/Utils.js","https:/framer.com/m/Utils-FINc.js","https:/framerusercontent.com/modules/fWrPkQmi5yYl70FuRZwX/snGTBrPIqB0yD2CXZdrZ/PixelImageReveal_Prod.js","https:/framerusercontent.com/modules/IbgF4NSP8yibzuhDpoBs/rFnd05DSRms896pWXfcW/TimeSinceTracker.js"],"sourcesContent":["// Generated by Framer (0b8b5e5)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,RichText,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const serializationHash=\"framer-q8Ttd\";const variantClassNames={XvqTw0Be9:\"framer-v-jjcw9a\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const getProps=({height,id,subtitle,title,width,...props})=>{var _ref,_ref1;return{...props,WuF2iG84P:(_ref=subtitle!==null&&subtitle!==void 0?subtitle:props.WuF2iG84P)!==null&&_ref!==void 0?_ref:\"Set up the component by adding background and bouncer elements to the component properties.\",yeAnKbEUZ:(_ref1=title!==null&&title!==void 0?title:props.yeAnKbEUZ)!==null&&_ref1!==void 0?_ref1:\"Screen Saver\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,yeAnKbEUZ,WuF2iG84P,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"XvqTw0Be9\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(serializationHash,...sharedStyleClassNames,\"framer-jjcw9a\",className,classNames),\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"XvqTw0Be9\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{backgroundColor:\"rgba(136, 85, 255, 0.1)\",...style},children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-uh2i08\",layoutDependency:layoutDependency,layoutId:\"aM7oiNoFL\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-flw0dh\",\"data-framer-name\":\"Logo\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"GthLmGmBt\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 28 28\"><g id=\"ss11036020200_1\"><path d=\"M 0 0 L 28 0 L 28 28 L 0 28 Z\" fill=\"transparent\"></path><path d=\"M 21 7.113 C 21 7.041 21.029 6.971 21.079 6.921 L 27.534 0.465 C 27.613 0.388 27.73 0.365 27.831 0.407 C 27.933 0.449 28 0.548 28 0.658 L 28 13.888 C 28 13.96 27.971 14.028 27.921 14.079 L 21 21 Z M 7 21 L 7 7.658 C 7 7.548 6.933 7.449 6.831 7.407 C 6.73 7.365 6.613 7.388 6.534 7.465 L 0.079 13.921 C 0.028 13.972 0 14.041 0 14.113 L 0 27.728 C 0 27.877 0.122 28 0.273 28 L 13.888 28 C 13.96 28 14.028 27.971 14.079 27.921 L 21 21 Z\" fill=\"rgb(153, 102, 255)\"></path></g></svg>',svgContentId:11036020200,withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-k3ullq\",layoutDependency:layoutDependency,layoutId:\"E3DQBYSAf\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItQm9sZA==\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(153, 102, 255))\"},children:\"Screen Saver\"})}),className:\"framer-q0gs4u\",\"data-framer-name\":\"Title\",fonts:[\"Inter-Bold\"],layoutDependency:layoutDependency,layoutId:\"UqJwZqJjg\",style:{\"--extracted-r6o4lv\":\"rgb(153, 102, 255)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:yeAnKbEUZ,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--framer-font-size\":\"11px\",\"--framer-letter-spacing\":\"-0.03em\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(153, 102, 255, 0.7))\"},children:\"Set up the component by adding background and bouncer elements to the component properties.\"})}),className:\"framer-g5dqhc\",\"data-framer-name\":\"Subtitle\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"RJ7UF99m8\",style:{\"--extracted-r6o4lv\":\"rgba(153, 102, 255, 0.7)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:WuF2iG84P,verticalAlignment:\"top\",withExternalLayout:true})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-q8Ttd.framer-qanqo2, .framer-q8Ttd .framer-qanqo2 { display: block; }\",\".framer-q8Ttd.framer-jjcw9a { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 200px; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 400px; }\",\".framer-q8Ttd .framer-uh2i08 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: hidden; padding: 0px 20px 0px 20px; position: relative; width: 1px; }\",\".framer-q8Ttd .framer-flw0dh { flex: none; height: 28px; position: relative; width: 28px; }\",\".framer-q8Ttd .framer-k3ullq { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: center; max-width: 200px; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-q8Ttd .framer-q0gs4u, .framer-q8Ttd .framer-g5dqhc { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-q8Ttd.framer-jjcw9a, .framer-q8Ttd .framer-uh2i08, .framer-q8Ttd .framer-k3ullq { gap: 0px; } .framer-q8Ttd.framer-jjcw9a > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-q8Ttd.framer-jjcw9a > :first-child { margin-left: 0px; } .framer-q8Ttd.framer-jjcw9a > :last-child { margin-right: 0px; } .framer-q8Ttd .framer-uh2i08 > * { margin: 0px; margin-bottom: calc(16px / 2); margin-top: calc(16px / 2); } .framer-q8Ttd .framer-uh2i08 > :first-child, .framer-q8Ttd .framer-k3ullq > :first-child { margin-top: 0px; } .framer-q8Ttd .framer-uh2i08 > :last-child, .framer-q8Ttd .framer-k3ullq > :last-child { margin-bottom: 0px; } .framer-q8Ttd .framer-k3ullq > * { margin: 0px; margin-bottom: calc(12px / 2); margin-top: calc(12px / 2); } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 200\n * @framerIntrinsicWidth 400\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"yeAnKbEUZ\":\"title\",\"WuF2iG84P\":\"subtitle\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerW7oLCU4_B=withCSS(Component,css,\"framer-q8Ttd\");export default FramerW7oLCU4_B;FramerW7oLCU4_B.displayName=\"Utils/Component Message\";FramerW7oLCU4_B.defaultProps={height:200,width:400};addPropertyControls(FramerW7oLCU4_B,{yeAnKbEUZ:{defaultValue:\"Screen Saver\",displayTextArea:false,title:\"Title\",type:ControlType.String},WuF2iG84P:{defaultValue:\"Set up the component by adding background and bouncer elements to the component properties.\",displayTextArea:false,title:\"Subtitle\",type:ControlType.String}});addFonts(FramerW7oLCU4_B,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerW7oLCU4_B\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerVariables\":\"{\\\"yeAnKbEUZ\\\":\\\"title\\\",\\\"WuF2iG84P\\\":\\\"subtitle\\\"}\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerDisplayContentsDiv\":\"false\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./W7oLCU4_B.map","/*\n * Utils/Component Message\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/fMDE7Cqb2uOvQFAHEP2m/cRfVFRl0izzBulKFjOAe/W7oLCU4_B.js\"\nexport { default } from \"https://framerusercontent.com/modules/fMDE7Cqb2uOvQFAHEP2m/cRfVFRl0izzBulKFjOAe/W7oLCU4_B.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{cloneElement}from\"react\";import UtilsComponentMessage from\"https://framer.com/m/Utils-Component-Message-ZVoG.js@cRfVFRl0izzBulKFjOAe\";export const ComponentMessage=({title,subtitle,style})=>{return /*#__PURE__*/_jsx(UtilsComponentMessage,{yeAnKbEUZ:title,WuF2iG84P:subtitle,style:{width:\"100%\",height:\"100%\",...style}});};/* \n    This function is also used many times to make sure components work even if we set a color style like \"Accent\" on their color properties. We can make this into a utility function.\n*/export const extractRGBColorFromString=str=>{const rgbRegex=/(rgba|rgb)\\(.*?\\)/g;const match=str.match(rgbRegex);return match?match[0]:str;};/*\n    This function makes a connected layer use the sizing of the component it is inside,\n    preventing it from being larger or smaller than the component's size.\n    Use this on layers connected with ControlType.ComponentInstance.\n*/export function styleLayer(layer,style={}){layer=Array.isArray(layer)?layer[0]:layer;let newLayer=layer;const{width,height,...otherStyle}=style;if(layer&&layer.props&&style&&(width||height)){if(typeof layer.type===\"function\"&&typeof layer.props.children===\"object\"){newLayer=/*#__PURE__*/cloneElement(layer,{children:{...layer.props.children,props:{...layer.props.children.props,style:{...layer.props.children.props.style,...width&&{width},...height&&{height},...otherStyle}}}});}else{newLayer=/*#__PURE__*/cloneElement(layer,{style:{...layer.props.style,...width&&{width},...height&&{height},...otherStyle}});}}return newLayer;}\nexport const __FramerMetadata__ = {\"exports\":{\"ComponentMessage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"extractRGBColorFromString\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"styleLayer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Utils.map","/*\n * Utils\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/aej5zpwxBpkMdzOteBwy/DWeAZ5wauvGM5oFwVdgS/Utils.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{ControlType,addPropertyControls,RenderTarget}from\"framer\";import{useInView}from\"framer-motion\";import{ComponentMessage}from\"https://framer.com/m/Utils-FINc.js\";var AnimationTrigger;// import { ComponentMessage } from \"../../utils/ComponentMessage\";\n// ------------------------------------------------------------ //\n// INTERFACES\n// ------------------------------------------------------------ //\n(function(AnimationTrigger){AnimationTrigger[\"LayerInView\"]=\"layerInView\";})(AnimationTrigger||(AnimationTrigger={}));// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(PixelImageReveal,{image:{type:ControlType.ResponsiveImage},borderRadius:{// @ts-expect-error - BorderRadius is not a valid control type\ntype:ControlType.BorderRadius,title:\"Border\",defaultValue:\"0px\"},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:2,unit:\"s\"},steps:{type:ControlType.Number,title:\"Steps\",defaultValue:5,min:1,max:100,step:1},pixelation:{type:ControlType.Object,title:\"Pixelation\",controls:{start:{type:ControlType.Number,title:\"Start\",defaultValue:200,min:1,max:300,step:1},end:{type:ControlType.Number,title:\"End\",defaultValue:1,min:1,max:300,step:1}}},animation:{type:ControlType.Object,icon:\"effect\",controls:{trigger:{type:ControlType.Enum,defaultValue:\"layerInView\",options:[\"layerInView\"],optionTitles:[\"Layer in View\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},replay:{type:ControlType.Boolean,defaultValue:false,hidden:props=>props.trigger!==\"layerInView\"},delay:{type:ControlType.Number,defaultValue:0,min:0,max:5,step:.1}},description:\"More components at [Framer University](https://frameruni.link/cc).\"}});// ------------------------------------------------------------ //\n// DEFAULT PROPS\n// ------------------------------------------------------------ //\nPixelImageReveal.defaultProps={borderRadius:\"0px\",duration:2,steps:5,pixelation:{start:200,end:1},animation:{trigger:\"layerInView\",replay:false,delay:0}};// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\n/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n * @framerDisableUnlink\n */export default function PixelImageReveal(props){const isOnFramerCanvas=RenderTarget.hasRestrictions();const canvasRef=useRef(null);const isInView=useInView(canvasRef,{once:!props.animation.replay,amount:\"some\"});useEffect(()=>{const canvas=canvasRef.current;if(!canvas||isOnFramerCanvas||!(\"image\"in props)||!props.image)return;// Add willReadFrequently hint for performance\nconst ctx=canvas.getContext(\"2d\",{willReadFrequently:true});if(!ctx)return;const img=new Image;img.crossOrigin=\"anonymous\"// Keep this for potential CORS issues\n;img.src=props.image.src;// Helper function to draw pixelated image\nconst drawPixelatedImage=pixelSize=>{if(!ctx||!img.complete||img.naturalWidth===0||!isInView)return;// Ensure img is loaded\n// Use naturalWidth/Height for original dimensions\ncanvas.width=img.naturalWidth;canvas.height=img.naturalHeight;// --- Optimization: If pixelSize is 1 (or less), draw original image directly ---\nif(pixelSize<=1){ctx.drawImage(img,0,0,canvas.width,canvas.height);return;// Skip pixelation logic\n}// --- End Optimization ---\n// Clear canvas before drawing pixelated version\nctx.clearRect(0,0,canvas.width,canvas.height);// Draw image temporarily to get data (necessary for pixelation > 1)\nctx.drawImage(img,0,0,canvas.width,canvas.height);let imageData;try{imageData=ctx.getImageData(0,0,canvas.width,canvas.height);}catch(e){console.error(\"Could not get image data:\",e);// Draw a placeholder or clear if failed (e.g., due to CORS)\nctx.clearRect(0,0,canvas.width,canvas.height);ctx.fillStyle=\"lightgray\";ctx.fillRect(0,0,canvas.width,canvas.height);ctx.fillStyle=\"black\";ctx.fillText(\"Error loading image data\",10,20);return;// Stop further processing\n}const data=imageData.data;// Clear again before drawing pixelated version\nctx.clearRect(0,0,canvas.width,canvas.height);const clampedPixelSize=Math.max(1,Math.round(pixelSize))// Ensure integer >= 1\n;for(let y=0;y<canvas.height;y+=clampedPixelSize){for(let x=0;x<canvas.width;x+=clampedPixelSize){// Get the color of the top-left pixel in the block\n// Adjust index calculation to avoid going out of bounds\nconst offsetY=Math.min(y,canvas.height-1);const offsetX=Math.min(x,canvas.width-1);const pixelIndex=(offsetY*canvas.width+offsetX)*4;const red=data[pixelIndex];const green=data[pixelIndex+1];const blue=data[pixelIndex+2];const alpha=data[pixelIndex+3];// Fill the entire block with this color\nctx.fillStyle=`rgba(${red}, ${green}, ${blue}, ${alpha/255})`;// Ensure drawn rect doesn't exceed canvas bounds\nctx.fillRect(x,y,Math.min(clampedPixelSize,canvas.width-x),Math.min(clampedPixelSize,canvas.height-y));}}};// Keep track of timeout IDs for cleanup IN THIS EFFECT RUN\nconst timeoutIds=[];img.onload=()=>{// Animation logic\nconst{delay}=props.animation;const{steps,duration,pixelation}=props;if(steps<=0||pixelation.start<=pixelation.end||duration<=0){// If no steps/animation needed, draw final state immediately\ndrawPixelatedImage(pixelation.end)// Use end pixelation instead of 1\n;return;// No animation needed\n}// Duration per step/interval\nconst stepDuration=duration*1e3/steps;// Decrement needed to go from startPixelSize to endPixelSize in exactly `steps` intervals\nconst pixelSizeDecrement=steps>0?(pixelation.start-pixelation.end)/steps:0;// --- Draw initial state immediately ---\ndrawPixelatedImage(pixelation.start);// --- End Initial Draw ---\n// Function to perform a single animation step\nconst animateStep=stepIndex=>{// Calculate pixel size for the current step (start to end)\nconst currentPixelSize=Math.max(pixelation.end,pixelation.start-stepIndex*pixelSizeDecrement);drawPixelatedImage(currentPixelSize);};// Schedule all steps using setTimeout, adding the initial delay\nfor(let i=1;i<=steps;i++){const stepDelay=delay*1e3+i*stepDuration;const id=window.setTimeout(()=>animateStep(i),stepDelay);timeoutIds.push(id)// Add to the array specific to this effect run\n;}};img.onerror=()=>{console.error(\"Failed to load image:\",props.image.src);if(ctx){ctx.clearRect(0,0,canvas.width,canvas.height)// Clear canvas\n;}};// Cleanup function to clear all scheduled timeouts FOR THIS EFFECT RUN\nreturn()=>{timeoutIds.forEach(id=>{clearTimeout(id);});};},[props.steps,props.duration,props.pixelation,isInView]);if(!(\"image\"in props)||!props.image){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"},children:/*#__PURE__*/_jsx(ComponentMessage,{title:\"Pixel Image Reveal\",subtitle:\"Set up the component by adding image to the component properties.\"})});}return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",borderRadius:props.borderRadius,overflow:\"hidden\"},children:isOnFramerCanvas?/*#__PURE__*/_jsx(\"img\",{src:props.image.src,alt:props.image.alt,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}):/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",imageRendering:\"pixelated\"}})});}PixelImageReveal.displayName=\"Pixel Image Reveal\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PixelImageReveal\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"PixelImageRevealProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PixelImageReveal_Prod.map","// Time Since Tracker Component\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * Time Since Tracker\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */function pad(n){return n<10?`0${n}`:`${n}`;}export default function TimeSinceTracker(props){const{completedDate,dateFont,valueFont,labelFont,background,textColor,borderRadius,showLabels,style,textAlign=\"center\",valuesAlign=\"center\",valuesGap,animation=\"fade\"}=props;const isStatic=RenderTarget.current()!==RenderTarget.preview;// Parse the date at render time for accuracy\nconst dateValue=new Date(completedDate);const[now,setNow]=useState(Date.now());useEffect(()=>{if(isStatic)return;const interval=setInterval(()=>{startTransition(()=>setNow(Date.now()));},1e3);return()=>clearInterval(interval);},[isStatic]);// Calculate time since\nconst delta=Math.max(0,Math.floor((now-dateValue.getTime())/1e3));const days=Math.floor(delta/86400);const hours=Math.floor(delta%86400/3600);const minutes=Math.floor(delta%3600/60);const seconds=delta%60;// Date string for the completed date\nconst dateStr=dateValue.toLocaleString();// Styles\nconst outerStyle={...style,background,color:textColor,borderRadius,display:\"flex\",flexDirection:\"column\",alignItems:textAlign===\"left\"?\"flex-start\":textAlign===\"right\"?\"flex-end\":\"center\",justifyContent:\"center\",padding:12,minWidth:120,minHeight:60,boxSizing:\"border-box\"};const dateStyle={...dateFont,marginBottom:8,color:textColor,width:\"100%\",textAlign:textAlign,display:\"block\"};const valuesRowStyle={display:\"flex\",flexDirection:\"row\",gap:props.valuesGap??14,alignItems:\"baseline\",width:\"100%\",justifyContent:valuesAlign===\"left\"?\"flex-start\":valuesAlign===\"right\"?\"flex-end\":\"center\"};const valueStyle={...valueFont,color:textColor,minWidth:0,padding:0,margin:0,textAlign:textAlign};const labelStyle={...labelFont,color:textColor,fontSize:12,marginTop:2,letterSpacing:.5};return /*#__PURE__*/_jsxs(\"div\",{style:outerStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:dateStyle,children:\"Time since completion\"}),/*#__PURE__*/_jsxs(\"div\",{style:valuesRowStyle,children:[/*#__PURE__*/_jsxs(\"div\",{style:valueStyle,children:[pad(days),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:16,marginLeft:3},children:\"d\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:valueStyle,children:[pad(hours),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:16,marginLeft:3},children:\"h\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:valueStyle,children:[pad(minutes),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:16,marginLeft:3},children:\"m\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:valueStyle,children:[pad(seconds),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:16,marginLeft:3},children:\"s\"})]})]})]});}addPropertyControls(TimeSinceTracker,{completedDate:{type:ControlType.Date,displayTime:true,title:\"Completed Date\",defaultValue:new Date().toJSON()},showLabels:{type:ControlType.Boolean,title:\"Show Labels\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:true},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#222222\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:12,min:0,max:40},dateFont:{type:ControlType.Font,title:\"Date Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:16,variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},valueFont:{type:ControlType.Font,title:\"Value Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:32,variant:\"Bold\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:12,variant:\"Regular\",letterSpacing:\"0.01em\",lineHeight:\"1em\"}},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\"},valuesAlign:{type:ControlType.Enum,title:\"Values Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\"},valuesGap:{type:ControlType.Number,title:\"Gap Between Values\",defaultValue:14,min:0,max:40,step:1,unit:\"px\"},animation:{type:ControlType.Enum,title:\"Animation\",options:[\"fade\",\"slide\",\"scale\",\"none\"],optionTitles:[\"Fade\",\"Slide Up\",\"Scale\",\"None\"],defaultValue:\"fade\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TimeSinceTracker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TimeSinceTracker.map"],"mappings":"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"}