{"version":3,"file":"LessonGating.CVAtmTSP.mjs","names":["React.useState"],"sources":["https:/framerusercontent.com/modules/Cqd0pGiC4MhiKRzppZjt/8cOaQC9k0GAaof0YgUnP/LessonGating.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";const STORAGE_KEY=\"1percent_progress\";function extractNumber(value){if(value===null||value===undefined)return 99;if(typeof value===\"number\"&&!isNaN(value))return value;const str=String(value).replace(/\\D/g,\"\");const parsed=parseInt(str,10);return isNaN(parsed)?99:parsed;}function getProgress(){try{const raw=localStorage.getItem(STORAGE_KEY);const parsed=parseInt(raw??\"1\",10);return isNaN(parsed)?1:parsed;}catch{return 1;}}export function gatedCard(Component){return props=>{const[cardState,setCardState]=React.useState(\"Primary\");const evaluate=()=>{const lessonNum=extractNumber(props.lessonNumber??props[\"Lesson Number\"]??props.lessonNo??props.LessonNum??undefined);const progress=getProgress();console.log(`[GatedCard] lessonNum: ${lessonNum} | progress: ${progress}`);if(lessonNum===99){setCardState(\"ComingSoon\");return;}if(lessonNum<progress){setCardState(\"Completed\");}else if(lessonNum===progress){setCardState(\"Primary\");}else{setCardState(\"Locked\");}};React.useEffect(()=>{evaluate();const onFocus=()=>evaluate();const onProgress=()=>evaluate();const onStorage=e=>{if(e.key===STORAGE_KEY)evaluate();};window.addEventListener(\"focus\",onFocus);window.addEventListener(\"storage\",onStorage);window.addEventListener(\"lessonCompleted\",onProgress);return()=>{window.removeEventListener(\"focus\",onFocus);window.removeEventListener(\"storage\",onStorage);window.removeEventListener(\"lessonCompleted\",onProgress);};},[props.lessonNumber]);const isDisabled=cardState===\"Locked\"||cardState===\"ComingSoon\";return /*#__PURE__*/_jsx(Component,{...props,variant:cardState,style:{...props.style,pointerEvents:isDisabled?\"none\":\"auto\",cursor:isDisabled?\"not-allowed\":\"pointer\"}});};}export function completeLesson(Component){return props=>{const handleComplete=()=>{const lessonNum=extractNumber(props.lessonNumber??props[\"Lesson Number\"]??props.lessonNo??props.LessonNum??undefined);const currentProgress=getProgress();if(lessonNum>=currentProgress){const newProgress=lessonNum+1;localStorage.setItem(STORAGE_KEY,String(newProgress));window.dispatchEvent(new Event(\"lessonCompleted\"));console.log(`[CompleteLesson] lesson ${lessonNum} done → new progress: ${newProgress}`);}props.onTap?.();};return /*#__PURE__*/_jsx(Component,{...props,onTap:handleComplete});};}\nexport const __FramerMetadata__ = {\"exports\":{\"gatedCard\":{\"type\":\"reactHoc\",\"name\":\"gatedCard\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completeLesson\":{\"type\":\"reactHoc\",\"name\":\"completeLesson\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LessonGating.map"],"mappings":"kIAA6G,SAAS,EAAc,EAAM,CAAC,GAAG,GAAQ,KAAwB,MAAO,IAAG,GAAG,OAAO,GAAQ,UAAU,CAAC,MAAM,EAAM,CAAC,OAAO,EAAM,IAAM,EAAI,OAAO,EAAM,CAAC,QAAQ,MAAM,GAAG,CAAO,EAAO,SAAS,EAAI,GAAG,CAAC,OAAO,MAAM,EAAO,CAAC,GAAG,EAAQ,SAAS,GAAa,CAAC,GAAG,CAAC,IAAM,EAAI,aAAa,QAAQ,EAAY,CAAO,EAAO,SAAS,GAAK,IAAI,GAAG,CAAC,OAAO,MAAM,EAAO,CAAC,EAAE,OAAa,CAAC,MAAO,IAAI,SAAgB,EAAU,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,EAAU,GAAcA,EAAe,UAAU,CAAO,MAAa,CAAC,IAAM,EAAU,EAAc,EAAM,cAAc,EAAM,kBAAkB,EAAM,UAAU,EAAM,WAAW,IAAA,GAAU,CAAO,EAAS,GAAa,CAA4E,GAA3E,QAAQ,IAAI,0BAA0B,EAAU,eAAe,IAAW,CAAI,IAAY,GAAG,CAAC,EAAa,aAAa,CAAC,OAA+B,EAApB,EAAU,EAAuB,YAAsB,IAAY,EAAuB,UAA8B,SAAS,EAAI,MAAoB,CAAC,GAAU,CAAC,IAAM,MAAY,GAAU,CAAO,MAAe,GAAU,CAAO,EAAU,GAAG,CAAI,EAAE,MAAM,GAAY,GAAU,EAA+I,OAA5I,EAAO,iBAAiB,QAAQ,EAAQ,CAAC,EAAO,iBAAiB,UAAU,EAAU,CAAC,EAAO,iBAAiB,kBAAkB,EAAW,KAAW,CAAC,EAAO,oBAAoB,QAAQ,EAAQ,CAAC,EAAO,oBAAoB,UAAU,EAAU,CAAC,EAAO,oBAAoB,kBAAkB,EAAW,GAAK,CAAC,EAAM,aAAa,CAAC,CAAC,IAAM,EAAW,IAAY,UAAU,IAAY,aAAa,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,QAAQ,EAAU,MAAM,CAAC,GAAG,EAAM,MAAM,cAAc,EAAW,OAAO,OAAO,OAAO,EAAW,cAAc,UAAU,CAAC,CAAC,EAAI,SAAgB,EAAe,EAAU,CAAC,MAAO,IAAO,CAAC,IAAM,MAAmB,CAAC,IAAM,EAAU,EAAc,EAAM,cAAc,EAAM,kBAAkB,EAAM,UAAU,EAAM,WAAW,IAAA,GAAU,CAAqC,GAAG,GAAjB,GAAa,CAA+B,CAAC,IAAM,EAAY,EAAU,EAAE,aAAa,QAAQ,EAAY,OAAO,EAAY,CAAC,CAAC,EAAO,cAAc,IAAI,MAAM,kBAAkB,CAAC,CAAC,QAAQ,IAAI,2BAA2B,EAAU,wBAAwB,IAAc,CAAE,EAAM,SAAS,EAAG,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,MAAM,EAAe,CAAC,yBAA1uE,IAA4B,CAAM,EAAY"}