{"version":3,"file":"Examples.BtKP46ky.mjs","names":["useState","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/50dY0DpstPLKuHuQFvvC/XQ3h12zAz8CAi9SV7SGy/Examples.js"],"sourcesContent":["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","/**\n * SideMenu.overrides.tsx\n *\n * 참고:\n * - sessionStorage: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage\n * - Web Storage API: https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API\n * - Framer Overrides: https://www.framer.com/developers/overrides-introduction/\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{forwardRef}from\"react\";/* =========================\n   0) 공통: 저장/복원\n   ========================= */const KEY=\"sidemenu_state_v2\";function safeLoad(){if(typeof window===\"undefined\")return{menuOpen:false,acc:{}};try{const raw=window.sessionStorage.getItem(KEY);if(!raw)return{menuOpen:false,acc:{}};const parsed=JSON.parse(raw);return{menuOpen:!!parsed.menuOpen,acc:parsed.acc&&typeof parsed.acc===\"object\"?parsed.acc:{}};}catch{return{menuOpen:false,acc:{}};}}function safeSave(next){if(typeof window===\"undefined\")return;window.sessionStorage.setItem(KEY,JSON.stringify(next));}const useMenu=createStore(safeLoad());function commit(setState,next){safeSave(next);setState(next);}/* =========================\n   1) 링크 태그 (기존 코드 그대로)\n   ========================= */export function withSideNavTag(Component){return /*#__PURE__*/forwardRef((props,ref)=>{return /*#__PURE__*/_jsx(Component,{ref:ref,...props,\"data-sidenav\":\"item\"});});}/* =========================\n   2) 전체 사이드 메뉴 Open/Closed 유지\n   ========================= */export function GNB_OpenMenu(){const[s,setS]=useMenu();return{onTap(){commit(setS,{...s,menuOpen:true});}};}export function Side_CloseMenu(){const[s,setS]=useMenu();return{onTap(){commit(setS,{...s,menuOpen:false});}};}export function TopNaviVariantSync(){const[s]=useMenu();return{variant:s.menuOpen?\"Open\":\"Closed\",transition:{duration:0}};}export function SideMenuVariantSync(){const[s]=useMenu();return{variant:s.menuOpen?\"Open\":\"Closed\",transition:{duration:0}};}/* =========================\n   3) 아코디언(UX/BX/MGMT) — Variant 동기화\n   ✅ \"Variants(Open/Closed)\"가 걸려있는 아코디언 '컴포넌트 인스턴스'에 붙이기\n   ========================= */export function AccVariant_UX(){const[s]=useMenu();return{variant:s.acc.ux?\"Open\":\"Closed\",transition:{duration:0}};}export function AccVariant_BX(){const[s]=useMenu();return{variant:s.acc.bx?\"Open\":\"Closed\",transition:{duration:0}};}export function AccVariant_MGMT(){const[s]=useMenu();return{variant:s.acc.mgmt?\"Open\":\"Closed\",transition:{duration:0}};}/* =========================\n   4) 아코디언 헤더 — 기존 Interactions 유지하면서 상태 저장 (체이닝)\n   ✅ 지금 네 상황: side_item_subcate_fold 레이어에 Interactions로 토글이 이미 걸려있음\n   ✅ 그래서 override가 onTap을 덮어쓰면 망가짐 → props.onTap을 먼저 호출해야 함\n   ========================= */function makeAccHeaderHOC(key){return function(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[s,setS]=useMenu();// 🔥 Framer Interactions에서 걸어둔 기존 onTap (토글)을 살려야 함\nconst originalOnTap=props.onTap;return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onTap:e=>{// 1) 기존 인터랙션(Variant 토글) 먼저 실행\noriginalOnTap?.(e);// 2) 우리 스토어/세션에도 같은 토글을 기록\nconst nextOpen=!s.acc[key];commit(setS,{...s,acc:{...s.acc,[key]:nextOpen}});}});});};}/**\n * ✅ 중요: Framer Override 목록에 뜨게 하려면 export const 말고 export function 형태가 안정적\n * 아래 3개가 네 드롭다운 목록에 보여야 정상.\n */export function withAccHeader_UX(Component){return makeAccHeaderHOC(\"ux\")(Component);}export function withAccHeader_BX(Component){return makeAccHeaderHOC(\"bx\")(Component);}export function withAccHeader_MGMT(Component){return makeAccHeaderHOC(\"mgmt\")(Component);}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withGNB_OpenMenu(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...GNB_OpenMenu(props)});};}withGNB_OpenMenu.displayName=\"GNB_OpenMenu\";export function withSide_CloseMenu(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...Side_CloseMenu(props)});};}withSide_CloseMenu.displayName=\"Side_CloseMenu\";export function withTopNaviVariantSync(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...TopNaviVariantSync(props)});};}withTopNaviVariantSync.displayName=\"TopNaviVariantSync\";export function withSideMenuVariantSync(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...SideMenuVariantSync(props)});};}withSideMenuVariantSync.displayName=\"SideMenuVariantSync\";export function withAccVariant_UX(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...AccVariant_UX(props)});};}withAccVariant_UX.displayName=\"AccVariant_UX\";export function withAccVariant_BX(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...AccVariant_BX(props)});};}withAccVariant_BX.displayName=\"AccVariant_BX\";export function withAccVariant_MGMT(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...AccVariant_MGMT(props)});};}withAccVariant_MGMT.displayName=\"AccVariant_MGMT\";\nexport const __FramerMetadata__ = {\"exports\":{\"withGNB_OpenMenu\":{\"type\":\"reactHoc\",\"name\":\"withGNB_OpenMenu\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSideMenuVariantSync\":{\"type\":\"reactHoc\",\"name\":\"withSideMenuVariantSync\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSide_CloseMenu\":{\"type\":\"reactHoc\",\"name\":\"withSide_CloseMenu\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTopNaviVariantSync\":{\"type\":\"reactHoc\",\"name\":\"withTopNaviVariantSync\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SideMenuVariantSync\":{\"type\":\"override\",\"name\":\"SideMenuVariantSync\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAccVariant_MGMT\":{\"type\":\"reactHoc\",\"name\":\"withAccVariant_MGMT\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAccHeader_UX\":{\"type\":\"reactHoc\",\"name\":\"withAccHeader_UX\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAccHeader_BX\":{\"type\":\"reactHoc\",\"name\":\"withAccHeader_BX\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSideNavTag\":{\"type\":\"reactHoc\",\"name\":\"withSideNavTag\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAccVariant_UX\":{\"type\":\"reactHoc\",\"name\":\"withAccVariant_UX\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TopNaviVariantSync\":{\"type\":\"override\",\"name\":\"TopNaviVariantSync\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AccVariant_MGMT\":{\"type\":\"override\",\"name\":\"AccVariant_MGMT\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAccHeader_MGMT\":{\"type\":\"reactHoc\",\"name\":\"withAccHeader_MGMT\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AccVariant_BX\":{\"type\":\"override\",\"name\":\"AccVariant_BX\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GNB_OpenMenu\":{\"type\":\"override\",\"name\":\"GNB_OpenMenu\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AccVariant_UX\":{\"type\":\"override\",\"name\":\"AccVariant_UX\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Side_CloseMenu\":{\"type\":\"override\",\"name\":\"Side_CloseMenu\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAccVariant_BX\":{\"type\":\"reactHoc\",\"name\":\"withAccVariant_BX\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}