{"version":3,"file":"AnimatedStatsPro.BCdV5DM4.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/oKs7zgpoNJUpDthVt5yA/LwZbzrphPj94MefbzGaQ/AnimatedStatsPro.js"],"sourcesContent":["/**\n * ========================================\n * COMPONENT FINGERPRINT\n * ========================================\n * @component-fingerprint\n * ID: DRM-STATG-001\n * Component: AnimatedStatsPro (animated stat grid)\n * Author: Ramanuja Mangla / Raizen  (optimised from Anand's original)\n * Project: Dr. Ramneek Mahajan website (website-build)\n * Created: 2026-07-15\n * Version: 2.0.0\n *\n * Origin: Anand built v1 (AnimatedStatsPro, codeFile UK5mdhh) for the\n *   Research & Teaching hero. v2 is the DRM-standard optimise:\n *     - Zero raw hex scattered inline -> TOKENS_LIGHT / TOKENS_DARK + getColor\n *       router (DRM zero-raw-hex rule). Numbers now DRM plum (#4A2E4D) in\n *       Newsreader serif 600; labels Inter, ink-3, sentence case (matches the\n *       verified R&T preview / DRM design system).\n *     - Card treatment: white surface + Border/Subtle + radius + soft shadow.\n *     - Reveal aligned to the DRM blur signature: blur(8px)+translateY, once\n *       on 50% view, per-item stagger; prefers-reduced-motion honoured.\n *     - a11y: each cell is a listitem with a full aria-label; the dial-up\n *       number span is aria-hidden so SRs read the final value, not \"0..8\".\n *     - Removed the ~260-line in-component demo panel (dev scaffolding).\n *     - Fixed the malformed light-bg literal (\"F5F5EF\" -> tokenised #FFFFFF).\n *   Default config = 2x2 / 4 stats (papers, active projects, intl faculty,\n *   SMART editions). displayName kept \"AnimatedStatsPro\" so the existing\n *   canvas instance in codeFile UK5mdhh keeps binding after paste.\n *\n * PROPRIETARY AND CONFIDENTIAL. (c) 2026 Raizen. All Rights Reserved.\n * ========================================\n *\n * Animated Stats (DRM)\n *\n * @framerIntrinsicWidth 720\n * @framerIntrinsicHeight 320\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// ============================================================\n// DRM TOKENS (light + dark paired) — single source; no scattered hex\n// ============================================================\nconst TOKENS_LIGHT={card:\"#FFFFFF\",ink:\"#1A1A1E\",ink3:\"#6E7268\",brand:\"#4A2E4D\",accent:\"#7C4F87\",border:\"#E4E8DE\"};const TOKENS_DARK={card:\"#1F1F24\",ink:\"#F5F6F2\",ink3:\"#A9AEA2\",brand:\"#D3B7D8\",accent:\"#C79FCE\",border:\"rgba(255,255,255,0.10)\"};function tokens(theme){return theme===\"dark\"?TOKENS_DARK:TOKENS_LIGHT;}/** Route every colour through here: custom override wins, else the token. */function getColor(theme,useCustom,custom,key){if(useCustom&&custom)return custom;return tokens(theme)[key];}// ============================================================\n// MOTION\n// ============================================================\nfunction usePrefersReducedMotion(){const[reduced,setReduced]=useState(false);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const mq=window.matchMedia(\"(prefers-reduced-motion: reduce)\");setReduced(mq.matches);const onChange=()=>setReduced(mq.matches);mq.addEventListener?.(\"change\",onChange);return()=>mq.removeEventListener?.(\"change\",onChange);},[]);return reduced;}function getAnimInit(type){switch(type){case\"slide\":return{opacity:0,transform:\"translateY(24px)\",filter:\"none\"};case\"fade\":return{opacity:0,transform:\"none\",filter:\"none\"};case\"scale\":return{opacity:0,transform:\"scale(0.9)\",filter:\"none\"};default:return{opacity:0,transform:\"translateY(16px)\",filter:\"blur(8px)\"};}}function buildTransition(duration,type){const base=`${duration}s cubic-bezier(0.16,1,0.3,1)`;switch(type){case\"fade\":return`opacity ${base}`;case\"slide\":case\"scale\":return`opacity ${base}, transform ${base}`;default:return`opacity ${base}, transform ${base}, filter ${base}`;}}function easeOutExpo(t){return t===1?1:1-Math.pow(2,-10*t);}// ============================================================\n// COMPONENT\n// ============================================================\nexport default function AnimatedStats(props){const{stats=[{number:\"8\",suffix:\"\",label:\"Peer-reviewed papers\"},{number:\"23\",suffix:\"\",label:\"Active research projects\"},{number:\"5\",suffix:\"\",label:\"International faculty appointments\"},{number:\"5\",suffix:\"\",label:\"SMART Conclave editions\"}],theme=\"light\",layout=\"2x2\",animationType=\"blur\",numberFont=\"Newsreader, Georgia, serif\",labelFont=\"Inter, system-ui, sans-serif\",numberSize=40,suffixSize=20,labelSize=13,itemGap=8,borderRadius=16,paddingX=24,paddingY=24,showCard=true,useCustomColors=false,cardColor,numberColor,suffixColor,labelColor,dividerColor,animationDuration=.6,countDuration=1600,staggerDelay=120,replayOnReenter=false,style}=props;const isStatic=useIsStaticRenderer();const reducedMotion=usePrefersReducedMotion();const shouldAnimate=!isStatic&&!reducedMotion;// Resolved colours (all via getColor — no inline hex)\nconst cCard=getColor(theme,useCustomColors,cardColor,\"card\");const cNumber=getColor(theme,useCustomColors,numberColor,\"brand\");const cSuffix=getColor(theme,useCustomColors,suffixColor,\"accent\");const cLabel=getColor(theme,useCustomColors,labelColor,\"ink3\");const cDivider=getColor(theme,useCustomColors,dividerColor,\"border\");// ── Refs / responsive ────────────────────────────────────────────────\nconst containerRef=useRef(null);const itemRefs=useRef([]);const numberRefs=useRef([]);const hasAnimated=useRef(false);const rafRefs=useRef([]);const timeoutRefs=useRef([]);const[containerWidth,setContainerWidth]=useState(720);useEffect(()=>{if(!containerRef.current)return;const obs=new ResizeObserver(([entry])=>setContainerWidth(entry.contentRect.width));obs.observe(containerRef.current);return()=>obs.disconnect();},[]);const isMobile=containerWidth<480;const isTablet=containerWidth<720;const gridConfig={\"1xN\":{cols:Math.max(1,stats.length),rows:1},\"2x2\":{cols:2,rows:Math.max(1,Math.ceil(stats.length/2))},Nx1:{cols:1,rows:Math.max(1,stats.length)}}[layout];function getDivider(i){const total=stats.length;if(layout===\"1xN\")return i<total-1?{borderRight:`1px solid ${cDivider}`}:{};if(layout===\"Nx1\")return i<total-1?{borderBottom:`1px solid ${cDivider}`}:{};// 2x2\nconst col=i%2;const row=Math.floor(i/2);const totalRows=Math.ceil(total/2);return{...col===0&&i+1<total?{borderRight:`1px solid ${cDivider}`}:{},...row<totalRows-1?{borderBottom:`1px solid ${cDivider}`}:{}};}// ── Count-up ─────────────────────────────────────────────────────────\nfunction formatValue(value,decimals){return decimals?value.toFixed(decimals):Math.round(value).toLocaleString(\"en-IN\");}function animateCount(el,target,duration,decimals){const start=performance.now();function tick(now){const progress=Math.min((now-start)/duration,1);el.textContent=formatValue(target*easeOutExpo(progress),decimals);if(progress<1)rafRefs.current.push(requestAnimationFrame(tick));}rafRefs.current.push(requestAnimationFrame(tick));}function applyInit(item){const init=getAnimInit(animationType);item.style.opacity=String(init.opacity??0);item.style.transform=String(init.transform??\"none\");item.style.filter=String(init.filter??\"none\");}function resetItems(){itemRefs.current.forEach((item,i)=>{if(!item)return;const numEl=numberRefs.current[i];if(numEl)numEl.textContent=stats[i]?.number.includes(\".\")?\"0.0\":\"0\";applyInit(item);});}function settleItem(item,i){item.style.opacity=\"1\";item.style.transform=\"none\";item.style.filter=\"none\";const numEl=numberRefs.current[i];if(numEl){const raw=stats[i]?.number??\"0\";const target=parseFloat(raw)||0;const decimals=raw.includes(\".\")?raw.split(\".\")[1].length:null;if(shouldAnimate)animateCount(numEl,target,countDuration,decimals);else numEl.textContent=formatValue(target,decimals);}}function runAnimation(){rafRefs.current.forEach(cancelAnimationFrame);rafRefs.current=[];timeoutRefs.current.forEach(clearTimeout);timeoutRefs.current=[];resetItems();itemRefs.current.forEach((item,i)=>{if(!item)return;const id=setTimeout(()=>settleItem(item,i),i*staggerDelay+120);timeoutRefs.current.push(id);});}useEffect(()=>{// Static export or reduced motion → render final values immediately.\nif(!shouldAnimate){itemRefs.current.forEach((item,i)=>{if(!item)return;item.style.opacity=\"1\";item.style.transform=\"none\";item.style.filter=\"none\";const numEl=numberRefs.current[i];if(numEl){const raw=stats[i]?.number??\"0\";const target=parseFloat(raw)||0;const decimals=raw.includes(\".\")?raw.split(\".\")[1].length:null;numEl.textContent=formatValue(target,decimals);}});return;}hasAnimated.current=false;resetItems();const observer=new IntersectionObserver(entries=>{const isIntersecting=entries[0].isIntersecting;if(isIntersecting&&!hasAnimated.current){hasAnimated.current=true;runAnimation();if(!replayOnReenter)observer.disconnect();}else if(!isIntersecting&&replayOnReenter){hasAnimated.current=false;resetItems();}},{threshold:.5});if(containerRef.current)observer.observe(containerRef.current);return()=>{observer.disconnect();rafRefs.current.forEach(cancelAnimationFrame);rafRefs.current=[];timeoutRefs.current.forEach(clearTimeout);timeoutRefs.current=[];};// eslint-disable-next-line react-hooks/exhaustive-deps\n},[stats,animationType,countDuration,staggerDelay,replayOnReenter,shouldAnimate]);// ── Responsive sizing ────────────────────────────────────────────────\nconst scale=isMobile?.72:isTablet?.86:1;const rNumberSize=Math.max(24,Math.round(numberSize*scale));const rSuffixSize=Math.max(14,Math.round(suffixSize*scale));const rLabelSize=Math.max(11,Math.round(labelSize*(isMobile?.9:1)));const initStyle=getAnimInit(animationType);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,role:\"list\",style:{width:\"100%\",height:\"100%\",boxSizing:\"border-box\",backgroundColor:showCard?cCard:\"transparent\",borderRadius:showCard?borderRadius:0,border:showCard?`1px solid ${cDivider}`:\"none\",boxShadow:showCard?\"0 1px 2px rgba(26,26,30,0.04)\":\"none\",overflow:\"hidden\",display:\"grid\",gridTemplateColumns:`repeat(${gridConfig.cols}, 1fr)`,gridTemplateRows:`repeat(${gridConfig.rows}, 1fr)`,...style},children:stats.map((stat,i)=>{const accessibleLabel=`${stat.number}${stat.suffix} ${stat.label}`.trim();return /*#__PURE__*/_jsxs(\"div\",{ref:el=>{itemRefs.current[i]=el;},role:\"listitem\",\"aria-label\":accessibleLabel,style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:itemGap,padding:`${paddingY}px ${paddingX}px`,opacity:shouldAnimate?0:1,transform:shouldAnimate?String(initStyle.transform??\"none\"):\"none\",filter:shouldAnimate?String(initStyle.filter??\"none\"):\"none\",transition:shouldAnimate?buildTransition(animationDuration,animationType):\"none\",boxSizing:\"border-box\",...getDivider(i)},children:[/*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",style:{display:\"flex\",alignItems:\"baseline\",gap:2},children:[/*#__PURE__*/_jsx(\"span\",{ref:el=>{numberRefs.current[i]=el;},style:{fontFamily:numberFont,fontSize:rNumberSize,fontWeight:600,color:cNumber,letterSpacing:\"-0.01em\",lineHeight:1,fontVariantNumeric:\"tabular-nums\"},children:shouldAnimate?stat.number.includes(\".\")?\"0.0\":\"0\":stat.number}),stat.suffix?/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:numberFont,fontSize:rSuffixSize,fontWeight:500,color:cSuffix,letterSpacing:\"-0.01em\"},children:stat.suffix}):null]}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{fontFamily:labelFont,fontSize:rLabelSize,fontWeight:500,color:cLabel,letterSpacing:\"0.01em\",lineHeight:1.35,textAlign:\"center\",maxWidth:\"22ch\"},children:stat.label})]},i);})});}AnimatedStats.displayName=\"AnimatedStatsPro\";// ============================================================\n// PROPERTY CONTROLS\n// ============================================================\naddPropertyControls(AnimatedStats,{stats:{type:ControlType.Array,title:\"Stats\",control:{type:ControlType.Object,controls:{number:{type:ControlType.String,title:\"Number\",defaultValue:\"8\",placeholder:\"e.g. 23\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\",placeholder:\"e.g. +, %\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"Peer-reviewed papers\",placeholder:\"Subtitle\"}}},defaultValue:[{number:\"8\",suffix:\"\",label:\"Peer-reviewed papers\"},{number:\"23\",suffix:\"\",label:\"Active research projects\"},{number:\"5\",suffix:\"\",label:\"International faculty appointments\"},{number:\"5\",suffix:\"\",label:\"SMART Conclave editions\"}],maxCount:6},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"light\",\"dark\"],optionTitles:[\"Light\",\"Dark\"],defaultValue:\"light\",displaySegmentedControl:true},layout:{type:ControlType.Enum,title:\"Layout\",options:[\"2x2\",\"1xN\",\"Nx1\"],optionTitles:[\"2 x 2\",\"1 row\",\"1 column\"],defaultValue:\"2x2\",displaySegmentedControl:true},animationType:{type:ControlType.Enum,title:\"Animation\",options:[\"blur\",\"slide\",\"fade\",\"scale\"],optionTitles:[\"Blur\",\"Slide\",\"Fade\",\"Scale\"],defaultValue:\"blur\"},numberFont:{type:ControlType.String,title:\"Number Font\",defaultValue:\"Newsreader, Georgia, serif\"},labelFont:{type:ControlType.String,title:\"Label Font\",defaultValue:\"Inter, system-ui, sans-serif\"},numberSize:{type:ControlType.Number,title:\"Number Size\",defaultValue:40,min:24,max:96,step:2,displayStepper:true},suffixSize:{type:ControlType.Number,title:\"Suffix Size\",defaultValue:20,min:12,max:60,step:2,displayStepper:true},labelSize:{type:ControlType.Number,title:\"Label Size\",defaultValue:13,min:10,max:24,step:1,displayStepper:true},itemGap:{type:ControlType.Number,title:\"Item Gap\",defaultValue:8,min:0,max:32,step:2,displayStepper:true},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:16,min:0,max:40,step:2,displayStepper:true},paddingX:{type:ControlType.Number,title:\"Padding X\",defaultValue:24,min:0,max:64,step:2,displayStepper:true},paddingY:{type:ControlType.Number,title:\"Padding Y\",defaultValue:24,min:0,max:64,step:2,displayStepper:true},showCard:{type:ControlType.Boolean,title:\"Card Surface\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},useCustomColors:{type:ControlType.Boolean,title:\"Custom Colors\",defaultValue:false},cardColor:{type:ControlType.Color,title:\"Card\",hidden:props=>!props.useCustomColors},numberColor:{type:ControlType.Color,title:\"Number\",hidden:props=>!props.useCustomColors},suffixColor:{type:ControlType.Color,title:\"Suffix\",hidden:props=>!props.useCustomColors},labelColor:{type:ControlType.Color,title:\"Label\",hidden:props=>!props.useCustomColors},dividerColor:{type:ControlType.Color,title:\"Divider / Border\",hidden:props=>!props.useCustomColors},animationDuration:{type:ControlType.Number,title:\"Transition\",defaultValue:.6,min:.2,max:3,step:.1,unit:\"s\"},countDuration:{type:ControlType.Number,title:\"Count Duration\",defaultValue:1600,min:400,max:5e3,step:100,unit:\"ms\"},staggerDelay:{type:ControlType.Number,title:\"Stagger\",defaultValue:120,min:0,max:500,step:20,unit:\"ms\"},replayOnReenter:{type:ControlType.Boolean,title:\"Replay on Re-enter\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AnimatedStats\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AnimatedStatsPro.map"],"mappings":"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"}