{"version":3,"file":"WorkMenu.CwXPmvpe.mjs","names":["serializationHash","variantClassNames","transition1","query1","WorkCategories","QueryData","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","_Fragment","WorkCategories","React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","_Fragment","React.useState","nav","React.useContext","React.useSyncExternalStore","_Fragment","React.useCallback","React.useRef","p","c","React.useLayoutEffect","React.useEffect","React.useId","React.useMemo","__esmMin","window","le","x","pe","me","init_ssg_sandbox_shims","init_npm_react_18_3_1","_e","init_npm_react_dom_18_3_1","de","l","Ha","oe","ne","p","c","J","init_jsx_runtime","B","ie","ce","navigator","motion","useMotionValue","LayoutGroup","animate","AnimatePresence","MotionConfigContext","useTransform","init_framer_motion_DhsWWWsN","addPropertyControls","getFonts","SmartComponentScopedContainer","useQueryData","cx","withCSS","RichText","RenderTarget","init_framer_B1b760uK","ComponentViewportProvider","PathVariablesContext","useVariantState","addFonts","useComponentViewport","ChildrenCanSuspend","runTasksWithYield","queryCache","ControlType","useLocaleInfo","selectWorkGrid","selectWorkCategory","init_WorkCategories","getWorkCategories","CMSCategoryData","subscribeWorkCategories","init_GkGmQIT2V","y","serializationHash$1","variantClassNames$1","transition1$1","textEffect","query1$1","QueryData$1","Transition$1","Variants$1","getProps$1","createLayoutDependency$1","FramerhA1GWwCbt","init_hA1GWwCbt","AjLjYX9uS","children","query","config","transition","value","contextValue","props","category","categoryTitleOnly","variants","fallbackRef","refBinding","ref","defaultLayoutId","restProps","layoutDependency","scopingClassNames","layoutId","DPQmTJMik","gestureHandlers","className","classNames","style","collection","idPHSokIniw","lykrVhzTCPHSokIniw","VKSy_aGIQPHSokIniw","CMSCategoryDataFonts","serializationHash","variantClassNames","transition1","query1","QueryData","Transition","Variants","getProps","createLayoutDependency","FramerskDZKIhlr","init_skDZKIhlr","idHZw4U19Yp","lykrVhzTCHZw4U19Yp","VKSy_aGIQHZw4U19Yp","repeater_item_indexHZw4U19Yp","index","locale","context","priority","queryCacheEntry","pad4","fallback","v","deviceFor","width","num","r","useDevice","setWidth","isBrowser","canvas","useIsoLayoutEffect","frame","on","gridOnDevice","device","useCanHover","can","setCan","mq","isTouchDevice","useLive","ShownContext","t","readPage","data","hidden","o","records","row","a","b","cats","section","shown","columns","usePage","options","snap","live","engine","noSubscribe","EMPTY","parseColumns","list","m","n","iconList","g","gridOptions","nativeGridColumns","gridActive","createCategorySwitch","label","stopSectionEntrance","selectCategoryOnPage","categorySwitch","motionProps","selectGridOnPage","commit","request","haptic","now","feel","nav","isApple","strength","input","focused","sound","W","AC","ctx","vol","volume","out","buffer","i","src","band","env","partials","decay","f","osc","giveFeedback","soft","surfacePad","s","isSavee","preset","surfaceVisual","kind","radius","tint","TOKEN_BG","border","TOKEN_LINE","bw","shadowAmount","shadow","glossOf","highlightOf","shadows","base","blur","sat","sbw","gloss","glossLayer","highlight","mix","frosted","filter","squirclePath","w","inset","H","h","budget","rad","d","corner","r0","smoothing","arcMeasure","arc","alpha","p3p4","beta","cc","tl","tr","br","bl","q","Surface","geometry","DropdownGeometry","fallbackHeight","negativeHeight","ss","c4","corners","cornersCss","extC","extend","pathC","smooth","squircle","canPathClip","bc","bm","sq","useLiveSquircle","anim","fade","isCanvasNow","sa","outer","side","main","fontStyle","font","SITE_FONT","features","active","palette","it","TOKEN_TEXT","TOKEN_MUTED","TOKEN_SOFT","scopedCss","light","SAVEE_LIGHT","dark","SAVEE_DARK","css","id","useMarker","box","setBox","measure","container","el","items","cr","er","k","r2","next","key","ro","fonts","hlOf","auto","hlRoom","pill","last","cfg","apply","node","host","L","moved","fromResize","useHlClip","capH","enabled","Marker","target","padX","color","AutoWidth","inner","setW","fill","iconsOf","ArrowGlyph","dir","line","ic","kids","turn","IconBox","flexAlign","TextSlot","p$1","sizer","widths","setWidths","labels","prev","max","fixed","current","align","enter","Label","SiteGlyph","c$1","cols","dense","S","size","cell","colsN","gap1","g4","w4","gg","GridGlyph","c$2","gap","rows","cells","GridIcons","button","bp","gp","wrap","refs","padCss","pal","onSelect","fromSimple","po","sp","co","lk","gr","op","mo","ix","cv","cs","hl","two","pad","gridPad","gridGap","itemPadding","glass","custom","oldR","isDef","menuC","gridC","cornersMax","shape","clamp","gridSmooth","surface","sameC","hlPick","def","old","hlShow","oldA","hlStyle","noHl","labelGap","ip4","colours","ta","al3","DEFAULT_TRANSITION","applyDevice","phone","mode","fixedW","maxW","margin","steady","pl","useScrollVisibility","hideOn","showAfter","down","up","reveal","topZone","endZone","visible","setVisible","inGrid","setInGrid","travel","switching","start","end","onScroll","set","update","dy","grid","bounds","CATEGORY_SCROLL_START","CATEGORY_SCROLL_END","itemPad","itemStyle","lineBox","lh","opticalShift","st","fam","wAxis","weight","cached","opticalCache","A","D","cap","baseline","shift","textShift","clip","text","BarLayout","p$2","track","content","edges","setEdges","touchDrag","mouseDrag","wheelScroll","drag","suppress","left","right","onWheel","e","onNatural","scrolledOnce","item","where","onPointerDown","onPointerMove","dx","endDrag","ip","mask","scrollable","pv","DropdownLayout","p$3","closeTimer","openState","setOpen","changeOpen","open","integrated","fillBtn","dt","setUp","edge","room","setRoom","contentH","setContentH","root","offset","want","closeDelay","upRef","panelW","setPanelW","place","navRef","above","below","enough","goUp","keepDir","raf","outside","onResize","maxH","panelH","setExtend","surfaceR","panelR","sc4","pc","panelC","panelPad","itemR","dots","dotStart","center","endA","widthMode","originX","choose","listStyle","WheelLayout","p$4","wp","textRow","rowH","rowsN","sizing","frameH","setFrameH","pt","navPad","pb","fixedH","viewH","fullH","centerY","sens","speed","momentum","bounce","snapping","depth","dim","view","activeRef","paint","nearest","dist","pick","run","damp","goal","kick","go","factor","dragOn","type","pos","onPointerEnd","pts","mt","mp","num1","den","glide","landing","onKeyDown","intensity","fs","fe","topH","botH","px","edgeA","whRef","whHl","stretch","colWidth","arrows","vertical","clickable","startSide","arrowBtn","step","off","look","glyph","arrowGroup","StepperLayout","p$5","setDir","stRef","stHl","arrow","ok","ExpandLayout","p$6","expand","canvasNow","ex","dotSize","dotGap","pillBg","hlRef","widthT","EXPAND_EASE","EXPAND_OPEN","EXPAND_CLOSE","barProps","ot","fillOpen","leave","hover","useMounted","mounted","setMounted","barPosition","ua","iPad","small","iPhone","portrait","useTouch","state","setState","Shell","p$7","scrollVisible","setSize","inGridRef","bodyElement","bodyRef","mm","barAt","bar","touch","sideGap","justify","hs","vw","toEdge","autoV","autoH","dirY","hideT","showT","settle","body","animWidth","expandOpen","durationOf","easeOf","WorkMenu","cmsSource","setFontTick","autoDevice","p$8","feedback","keepOpen","outsideClose","barNatural","setBarNatural","screenW","setScreenW","sample","SAMPLE","previewActive","setPreviewActive","lastCats","lastGrid","gsnap","pageActive","pending","setPending","cancelled","event","CATEGORY_CANCEL","canvasActive","expanded","setExpanded","pvState","expandedShown","stay","onTick","swipe","swiped","swipeOn","setExtendState","dropdownHeight","dropdownTiming","animation","navH","setNavH","navObserver","menuFrame","setMenuFrame","setNav","list2","gridOpts","previewGrid","setPreviewGrid","pendingGrid","setPendingGrid","pageGrid","gridIndex","onGrid","setSide","sideObserver","sideRef","fr","showGrid","separate","menuPad","baseRadius","sc","capC","it0","pp","hoverIndex","layoutProps","dd","gridNode","spacing","dividerOn","half","divider","categories","full","wm","shellWidth","screen","frameGap","roomPx","fixedPx","allPx","maxPx","avail","sideNode","extendProp","rawAlign","categoriesWrap","sw","hlOn","delay","navEvents","pressNearest","best","bd","openOnHover","gridR","gStyle","gS","gPreset","WorkGridSwitch","rootRef","preview","setPreview","pageIndex","gridLearnCancel","saveeOn","saveeColoursOn","styleOf","presetControl","surfaceControls","gridControlSet","showHide","responsiveControls","deviceModes","sizeControls","menuResponsiveControls","interactionControls","feedbackControls","sourceControls","workMenuControls","modesOf","uses","showIf","sectionIf","layoutOf","isLayout","pxCtl","seg","bool","simpleControls","gridSwitchControls","init_WorkMenu","min","cat","schedule","observer","stopCategories","gridStart","gridEnd","listener","percent","defaults","widthOf","effective","modes","test","fixedPos","IX","IC","WH","wheelArrowsOn","iconsControls","wheelControls","IT","PL","G","MC","scrollControls","GL","sepOn","FRC","IT2","G2","gridShown","numCtl","extra","SP","sepV","EXC","PL2","position","order","ordered","titles","styleOrdered","glassIs","colour","C","BR","never","twoFrames","hlOff","hide","folder","pct","pillOn","colourCtl","HC","hNext","spNext","all","rest"],"sources":["https:/framerusercontent.com/modules/n4sAM6YuddtdOKvoKIdd/cfpDsDi83YLl92idHDPu/hA1GWwCbt.js","https:/framerusercontent.com/modules/fFe6Puc86N5lZHL68YBH/25N1u3Tb1TH0jCvVTQQm/skDZKIhlr.js","https:/framerusercontent.com/modules/mhikQMOv1O4KLKWB4s9z/PolyCg80Ce9pW3kuc8Cj/WorkMenu.js"],"sourcesContent":["// Generated by Framer (13ebf9e)\nimport{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ChildrenCanSuspend,ControlType,cx,PathVariablesContext,RichText,useComponentViewport,useLocaleInfo,useQueryData,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import WorkCategories from\"https://framerusercontent.com/modules/A1QYAhKdgkfHcJic9PhE/5gm29fAMxyHykBpiOX0f/GkGmQIT2V.js\";const serializationHash=\"framer-uenAH\";const variantClassNames={YJQ2hu0e7:\"framer-v-1s93nzb\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const DPQmTJMik=undefined;const AjLjYX9uS=undefined;const VKSy_aGIQPHSokIniw=undefined;const lykrVhzTCPHSokIniw=undefined;const idPHSokIniw=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const animation={opacity:.001,rotate:0,scale:1,skewX:0,skewY:0,x:0,y:39};const transition2={delay:.1,duration:.95,ease:[.22,1,.36,1],type:\"tween\"};const textEffect={effect:animation,repeat:true,startDelay:0,tokenization:\"word\",transition:transition2,trigger:\"onMount\",type:\"appear\"};const query=(prequery,{AjLjYX9uS})=>prequery({from:{alias:\"PHSokIniw\",data:WorkCategories,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{collection:\"PHSokIniw\",name:\"VKSy_aGIQ\",type:\"Identifier\"},{collection:\"PHSokIniw\",name:\"lykrVhzTC\",type:\"Identifier\"},{collection:\"PHSokIniw\",name:\"id\",type:\"Identifier\"}],where:{left:{collection:\"PHSokIniw\",name:\"id\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:AjLjYX9uS},type:\"BinaryOperation\"}});const query1=AjLjYX9uS=>({from:{alias:\"PHSokIniw\",data:WorkCategories,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{collection:\"PHSokIniw\",name:\"VKSy_aGIQ\",type:\"Identifier\"},{collection:\"PHSokIniw\",name:\"lykrVhzTC\",type:\"Identifier\"},{collection:\"PHSokIniw\",name:\"id\",type:\"Identifier\"}],where:{left:{collection:\"PHSokIniw\",name:\"id\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:AjLjYX9uS},type:\"BinaryOperation\"}});const QueryData=({query,pageSize,children})=>{const data=useQueryData(query);return children(data);};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({category,categoryTitleOnly,height,id,width,...props})=>{return{...props,AjLjYX9uS:category??props.AjLjYX9uS??\"N09aIe6zy\",DPQmTJMik:categoryTitleOnly??props.DPQmTJMik??true};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,AjLjYX9uS,DPQmTJMik,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"YJQ2hu0e7\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:DPQmTJMik!==false&&/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1s93nzb\",className,classNames),\"data-framer-name\":\"Category Heading\",layoutDependency:layoutDependency,layoutId:\"YJQ2hu0e7\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-zg8eso\",\"data-framer-name\":\"Selected CMS Category\",layoutDependency:layoutDependency,layoutId:\"PHSokIniw\",children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query1(AjLjYX9uS),children:(collection,paginationInfo,loadMore)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection?.map(({id:idPHSokIniw,lykrVhzTC:lykrVhzTCPHSokIniw,VKSy_aGIQ:VKSy_aGIQPHSokIniw},index)=>{VKSy_aGIQPHSokIniw??=\"\";lykrVhzTCPHSokIniw??=\"\";return /*#__PURE__*/_jsx(LayoutGroup,{id:`PHSokIniw-${idPHSokIniw}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{lykrVhzTC:lykrVhzTCPHSokIniw},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-kht9d3\",\"data-framer-name\":\"Category\",layoutDependency:layoutDependency,layoutId:\"pMP7jUgWp\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7U0YgUHJvIFZhcmlhYmxlIFJlZ3VsYXJWRj1JbmRuYUhRaUlEUTBOQ3dnSW1sMFlXd2lJREFzSUNKTlQwNVBJaUF3TENBaWQyUjBhQ0lnTVRBd0xDQWliM0J6ZWlJZ01qZz0=\",\"--framer-font-family\":'\"SF Pro Variable Regular\", \"SF Pro Variable Regular Placeholder\", sans-serif',\"--framer-font-open-type-features\":\"'ss02' on\",\"--framer-font-size\":\"25px\",\"--framer-font-variation-axes\":'var(--extracted-2gg91v, \"wght\" 444, \"ital\" 0, \"MONO\" 0, \"wdth\" 100, \"opsz\" 28)',\"--framer-line-height\":\"1.1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6201581d-7a53-44c6-ac73-0a511669aaee, rgb(5, 5, 5)))\"},children:/*#__PURE__*/_jsx(motion.mark,{style:{\"--framer-text-background-corner-shape\":\"superellipse(1)\"},children:\"All\"})})}),className:\"framer-1golql9\",\"data-framer-name\":\"CMS Category Title\",effect:textEffect,fonts:[\"CUSTOMV2;SF Pro Variable Regular\"],layoutDependency:layoutDependency,layoutId:\"PMZSnyzuO\",style:{\"--extracted-2gg91v\":'\"wght\" 444, \"ital\" 0, \"MONO\" 0, \"wdth\" 100, \"opsz\" 28',\"--extracted-r6o4lv\":\"var(--token-6201581d-7a53-44c6-ac73-0a511669aaee, rgb(5, 5, 5))\"},text:VKSy_aGIQPHSokIniw,verticalAlignment:\"top\",withExternalLayout:true})})})},idPHSokIniw);})});}})})})})})})});});const css=[\".framer-uenAH.framer-xen0s6, .framer-uenAH .framer-xen0s6 { display: block; }\",\".framer-uenAH.framer-1s93nzb { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 127px; justify-content: flex-end; overflow: visible; padding: 0px 10px 0px 10px; position: relative; width: 350px; }\",\".framer-uenAH .framer-zg8eso, .framer-uenAH .framer-kht9d3 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-uenAH .framer-1golql9 { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 127\n * @framerIntrinsicWidth 350\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"AjLjYX9uS\":\"category\",\"DPQmTJMik\":\"categoryTitleOnly\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerhA1GWwCbt=withCSS(Component,css,\"framer-uenAH\");export default FramerhA1GWwCbt;FramerhA1GWwCbt.displayName=\"Work Category Heading — CMS\";FramerhA1GWwCbt.defaultProps={height:127,width:350};addPropertyControls(FramerhA1GWwCbt,{AjLjYX9uS:{dataIdentifier:\"local-module:collection/GkGmQIT2V:default\",defaultValue:\"N09aIe6zy\",title:\"Category\",type:ControlType.CollectionReference},onAjLjYX9uSChange:{changes:\"AjLjYX9uS\",type:ControlType.ChangeHandler},DPQmTJMik:{defaultValue:true,title:\"Category Title Only\",type:ControlType.Boolean},onDPQmTJMikChange:{changes:\"DPQmTJMik\",type:ControlType.ChangeHandler}});const variationAxes=[{defaultValue:100,maxValue:150,minValue:30,name:\"Width\",tag:\"wdth\"},{defaultValue:28,maxValue:28,minValue:17,name:\"Optical Size\",tag:\"opsz\"},{defaultValue:400,maxValue:1e3,minValue:1,name:\"Weight\",tag:\"wght\"}];addFonts(FramerhA1GWwCbt,[{explicitInter:true,fonts:[{cssFamilyName:\"SF Pro Variable Regular\",openType:true,source:\"custom\",style:\"normal\",uiFamilyName:\"SF Pro\",url:\"https://framerusercontent.com/assets/uUUjJw8mvrS0gmS6SQMAOOfIng.ttf\",variationAxes,weight:\"400\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerhA1GWwCbt\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"AjLjYX9uS\\\":\\\"category\\\",\\\"DPQmTJMik\\\":\\\"categoryTitleOnly\\\"}\",\"framerIntrinsicHeight\":\"127\",\"framerIntrinsicWidth\":\"350\",\"framerDisplayContentsDiv\":\"false\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./hA1GWwCbt.map","// Generated by Framer (b7e356e)\nimport{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{addFonts,ChildrenCanSuspend,ComponentViewportProvider,cx,getFonts,PathVariablesContext,queryCache,runTasksWithYield,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useQueryData,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{CMSCategoryData}from\"https://framerusercontent.com/modules/tmlfK6ZW8aXbPttrahZ4/ZkLF6PaKp3iO3zlXuDL6/WorkCategories.js\";import WorkCategories from\"https://framerusercontent.com/modules/A1QYAhKdgkfHcJic9PhE/5gm29fAMxyHykBpiOX0f/GkGmQIT2V.js\";const CMSCategoryDataFonts=getFonts(CMSCategoryData);const serializationHash=\"framer-VBe0F\";const variantClassNames={ZVI80lNiT:\"framer-v-1jbq9y1\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const idHZw4U19Yp=undefined;const VKSy_aGIQHZw4U19Yp=undefined;const lykrVhzTCHZw4U19Yp=undefined;const repeater_item_indexHZw4U19Yp=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const query=prequery=>prequery({from:{alias:\"HZw4U19Yp\",data:WorkCategories,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},select:[{collection:\"HZw4U19Yp\",name:\"id\",type:\"Identifier\"},{collection:\"HZw4U19Yp\",name:\"VKSy_aGIQ\",type:\"Identifier\"},{collection:\"HZw4U19Yp\",name:\"lykrVhzTC\",type:\"Identifier\"}]});const query1=()=>({from:{alias:\"HZw4U19Yp\",data:WorkCategories,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},select:[{collection:\"HZw4U19Yp\",name:\"id\",type:\"Identifier\"},{collection:\"HZw4U19Yp\",name:\"VKSy_aGIQ\",type:\"Identifier\"},{collection:\"HZw4U19Yp\",name:\"lykrVhzTC\",type:\"Identifier\"}]});const QueryData=({query,pageSize,children})=>{const data=useQueryData(query);return children(data);};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"ZVI80lNiT\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id: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(scopingClassNames,\"framer-1jbq9y1\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"ZVI80lNiT\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-1367buo\",\"data-framer-name\":\"Work Categories — All Records\",layoutDependency:layoutDependency,layoutId:\"HZw4U19Yp\",style:{opacity:0},children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query1(),children:(collection,paginationInfo,loadMore)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection?.map(({id:idHZw4U19Yp,lykrVhzTC:lykrVhzTCHZw4U19Yp,VKSy_aGIQ:VKSy_aGIQHZw4U19Yp},index)=>{VKSy_aGIQHZw4U19Yp??=\"\";lykrVhzTCHZw4U19Yp??=\"\";const repeater_item_indexHZw4U19Yp=index+1;return /*#__PURE__*/_jsx(LayoutGroup,{id:`HZw4U19Yp-${idHZw4U19Yp}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{lykrVhzTC:lykrVhzTCHZw4U19Yp},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-murh6d\",\"data-framer-name\":\"CMS Category Record\",layoutDependency:layoutDependency,layoutId:\"CphnbbWG_\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1jmiwn9-container\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"VgivVMccm-container\",nodeId:\"VgivVMccm\",rendersWithMotion:true,scopeId:\"skDZKIhlr\",children:/*#__PURE__*/_jsx(CMSCategoryData,{height:\"100%\",id:\"VgivVMccm\",label:VKSy_aGIQHZw4U19Yp,layoutId:\"VgivVMccm\",order:repeater_item_indexHZw4U19Yp,recordId:idHZw4U19Yp,slug:lykrVhzTCHZw4U19Yp,width:\"100%\"})})})})})},idHZw4U19Yp);})});}})})})})})})});});const css=[\".framer-VBe0F.framer-1pf4cl2, .framer-VBe0F .framer-1pf4cl2 { display: block; }\",\".framer-VBe0F.framer-1jbq9y1 { -webkit-user-select: none; align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: wrap; gap: 0px; height: 1px; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; user-select: none; width: 1px; }\",\".framer-VBe0F .framer-1367buo { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 1px; }\",\".framer-VBe0F .framer-murh6d { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 1px; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1px; }\",\".framer-VBe0F .framer-1jmiwn9-container { flex: none; height: auto; position: relative; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1\n * @framerIntrinsicWidth 1\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerskDZKIhlr=withCSS(Component,css,\"framer-VBe0F\");export default FramerskDZKIhlr;FramerskDZKIhlr.displayName=\"Work Menu — CMS Categories\";FramerskDZKIhlr.defaultProps={height:1,width:1};addFonts(FramerskDZKIhlr,[{explicitInter:true,fonts:[]},...CMSCategoryDataFonts],{supportsExplicitInterCodegen:true});FramerskDZKIhlr.loader={load:(props,context)=>{const locale=context.locale;const priority=context.priority;const queryCacheEntry=queryCache.get(query1(),locale,priority);return runTasksWithYield([()=>queryCacheEntry.preload()],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerskDZKIhlr\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// WORK MENU\n// A sticky, floating category menu + grid switch for the Work page.\n//\n// It is a NEW control layer. It never edits your existing category list or\n// grid buttons: it reads them (so the labels always come from your CMS) and\n// presses them for you behind the scenes. Framer variants, the CMS filter and\n// CategoryMotion keep working exactly as they do today.\n// (Keep your original list on the page — hide it with Opacity 0, not\n// Visible: No, so the menu can still read it.)\n//\n// Two components live in this file:\n//   - Work Menu          the floating menu (5 layouts, grid icons optional)\n//   - Work Grid Switch   grid icons only, to place anywhere on the page\n//\n// Every setting is in the right panel, grouped by section.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";// @ts-ignore Framer resolves this project-local module at runtime.\nimport{getWorkCategories,subscribeWorkCategories,selectWorkCategory,selectWorkGrid}from\"https://framerusercontent.com/modules/tmlfK6ZW8aXbPttrahZ4/ZkLF6PaKp3iO3zlXuDL6/WorkCategories.js\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion,AnimatePresence,animate,useMotionValue,useTransform}from\"framer-motion\";// ---------------------------------------------------------------------------\n// Site defaults (your colour styles, so light/dark mode is automatic)\n// ---------------------------------------------------------------------------\nconst TOKEN_TEXT=\"var(--token-6201581d-7a53-44c6-ac73-0a511669aaee, rgb(23, 23, 23))\";const TOKEN_MUTED=\"var(--token-d47bba34-339e-4038-8c6c-631863cff0b3, rgb(153, 153, 153))\";const TOKEN_BG=\"var(--token-9811e40b-3ed8-4237-98e5-61535bb22d2f, rgb(255, 255, 255))\";const TOKEN_SOFT=\"var(--token-c1188454-3dc5-40d5-9872-8b3ed98e5b13, rgb(237, 237, 237))\";const TOKEN_LINE=\"var(--token-3b7c77e2-88a1-4291-9d16-f21575d1aa28, rgb(219, 219, 219))\";const SITE_FONT='\"ABC Diatype Variable Unlicensed Trial Variable Regular\", \"ABC Diatype Variable\", \"Inter\", sans-serif';const SAMPLE=[\"All\",\"Branding\",\"Photography\",\"Ai Visual\",\"Strategy\",\"Motion\"];// Savee glass (measured from savee.com), light and dark. Light mode mirrors\n// dark mode: a crisp near-black active label, soft grey for the rest.\nconst SAVEE_LIGHT=\"--wm-sv-bg:rgba(228,228,228,0.6);--wm-sv-fg:rgb(17,17,17);--wm-sv-muted:rgba(17,17,17,0.3);--wm-sv-grid:rgba(17,17,17,0.28);--wm-sv-ind:rgba(10,10,10,0.07);--wm-sv-line:rgba(17,17,17,0.08);\";const SAVEE_DARK=\"--wm-sv-bg:rgba(30,30,30,0.6);--wm-sv-fg:rgb(253,253,253);--wm-sv-muted:rgba(253,253,253,0.4);--wm-sv-grid:rgba(253,253,253,0.38);--wm-sv-ind:rgba(255,255,255,0.09);--wm-sv-line:rgba(255,255,255,0.1);\";const isBrowser=typeof window!==\"undefined\"&&typeof document!==\"undefined\";const useIsoLayoutEffect=isBrowser?React.useLayoutEffect:React.useEffect;function pad4(value,fallback){if(typeof value===\"number\"&&Number.isFinite(value))return[value,value,value,value];if(typeof value!==\"string\"||!value.trim())return fallback;const n=value.trim().split(/\\s+/).map(v=>parseFloat(v));if(!n.length||n.some(v=>!Number.isFinite(v)))return fallback;if(n.length===1)return[n[0],n[0],n[0],n[0]];if(n.length===2)return[n[0],n[1],n[0],n[1]];if(n.length===3)return[n[0],n[1],n[2],n[1]];return[n[0],n[1],n[2],n[3]];}const padCss=p=>p.map(v=>v+\"px\").join(\" \");const num=(v,fallback)=>typeof v===\"number\"&&Number.isFinite(v)?v:fallback;function deviceFor(width,r={}){if(width<=num(r.phoneMax,809))return\"phone\";if(width<=num(r.tabletMax,1439))return\"tablet\";return\"desktop\";}function useDevice(ref,canvas,r={}){const[width,setWidth]=React.useState(()=>isBrowser&&!canvas?window.innerWidth:1440);// Canvas: the width of the breakpoint frame the component sits in.\nuseIsoLayoutEffect(()=>{if(!canvas||!isBrowser)return;let frame=null;for(let n=ref.current;n&&n!==document.body;n=n.parentElement)if(n.hasAttribute(\"data-framer-name\")&&n.offsetWidth>0)frame=n;if(frame)setWidth(frame.offsetWidth);});// Live site: the window, kept in sync on resize and rotation.\nReact.useEffect(()=>{if(canvas||!isBrowser)return;const on=()=>setWidth(window.innerWidth);on();window.addEventListener(\"resize\",on);window.addEventListener(\"orientationchange\",on);return()=>{window.removeEventListener(\"resize\",on);window.removeEventListener(\"orientationchange\",on);};},[canvas]);return deviceFor(width,r);}function gridOnDevice(r={},device){if(device===\"phone\")return r.phoneGrid!==false;if(device===\"tablet\")return r.tabletGrid!==false;return true;}// True on a real mouse / trackpad (not touch screens).\nfunction useCanHover(){const[can,setCan]=React.useState(false);React.useEffect(()=>{if(!isBrowser||!window.matchMedia)return;const mq=window.matchMedia(\"(hover: hover) and (pointer: fine)\");const on=()=>setCan(!!mq.matches);on();if(mq.addEventListener)mq.addEventListener(\"change\",on);else if(mq.addListener)mq.addListener(on);return()=>{if(mq.removeEventListener)mq.removeEventListener(\"change\",on);else if(mq.removeListener)mq.removeListener(on);};},[]);return can;}// True on phones and tablets — iPad included, even with a trackpad or\n// keyboard attached (iPadOS reports itself as a Mac).\nfunction isTouchDevice(){if(!isBrowser)return false;const nav=navigator;if((nav.maxTouchPoints||0)>0)return true;return!!window.matchMedia&&window.matchMedia(\"(any-pointer: coarse)\").matches;}// Readiness follows hydration; category data is supplied by the shared CMS store.\nfunction useReady(enabled){return enabled&&isBrowser;}const clamp=(v,min,max)=>Math.min(max,Math.max(min,v));// True once the menu is on screen. Before that every size and position is\n// applied instantly, so nothing (arrows included) slides on first appear.\nconst ShownContext=/*#__PURE__*/React.createContext(true);function useLive(t){return React.useContext(ShownContext)?t:{duration:0};}const EMPTY={cats:[],grids:[],columns:0,section:null,key:\"\"};const shown=el=>el.getClientRects().length>0;const attr=value=>value.replace(/[\"\\\\]/g,\"\\\\$&\");function readPage(o){const data=getWorkCategories();const hidden=(o.hide||\"\").split(\",\").map(v=>v.trim().toLowerCase()).filter(Boolean);const records=data.records.filter(row=>!hidden.includes(row.slug.toLowerCase())&&!hidden.includes(row.label.toLowerCase()));if(o.sort===\"title\")records.sort((a,b)=>a.label.localeCompare(b.label));const cats=records.map(row=>({label:row.label,active:row.id===data.selected?.id,el:null}));const section=Array.from(document.querySelectorAll('[data-grid-scroll-root=\"true\"]')).find(shown)||null;const columns=section?getComputedStyle(section).gridTemplateColumns.split(\" \").filter(Boolean).length:0;const key=JSON.stringify([cats.map(c=>c.label+(c.active?\"*\":\"\")),columns,data.view]);return{cats,grids:[],columns,section,key};}const engine={options:{anchor:\"Center Buttons\",activeName:\"Active\"},snapshot:EMPTY,listeners:new Set,stop:null,refresh(){const next=readPage(engine.options);const prev=engine.snapshot;const changed=next.key!==prev.key||next.section!==prev.section||next.cats.some((cat,i)=>cat.el!==prev.cats[i]?.el)||next.grids.some((grid,i)=>grid!==prev.grids[i]);// useSyncExternalStore requires a stable snapshot until it changes.\nif(!changed)return;engine.snapshot=next;if(next.section!==prev.section){stopSectionEntrance?.();stopSectionEntrance=null;}engine.listeners.forEach(l=>l());},start(){if(engine.stop||!isBrowser)return;let frame=0;const schedule=()=>{if(frame)return;frame=requestAnimationFrame(()=>{frame=0;engine.refresh();});};const observer=new MutationObserver(schedule);observer.observe(document.body,{subtree:true,childList:true});const stopCategories=subscribeWorkCategories(schedule);const gridStart=()=>{columnFlowActive=true;stopSectionEntrance?.();stopSectionEntrance=null;};const gridEnd=()=>{columnFlowActive=false;};window.addEventListener(\"wm-grid-switch-start\",gridStart);window.addEventListener(\"wm-grid-switch-end\",gridEnd);// The project grid re-places cards without adding/removing DOM nodes,\n// so it announces column changes instead of relying on mutations.\nwindow.addEventListener(\"wm-grid-layout\",schedule);window.addEventListener(\"resize\",schedule);engine.refresh();engine.stop=()=>{observer.disconnect();stopCategories();stopSectionEntrance?.();stopSectionEntrance=null;columnFlowActive=false;window.removeEventListener(\"wm-grid-switch-start\",gridStart);window.removeEventListener(\"wm-grid-switch-end\",gridEnd);window.removeEventListener(\"wm-grid-layout\",schedule);window.removeEventListener(\"resize\",schedule);cancelAnimationFrame(frame);categorySwitch?.cancel();gridLearnCancel?.();engine.stop=null;};},subscribe(listener){engine.listeners.add(listener);engine.start();return()=>{engine.listeners.delete(listener);if(!engine.listeners.size)engine.stop?.();};}};const noSubscribe=()=>()=>{};function usePage(options,live){engine.options=options;const snap=React.useSyncExternalStore(live?engine.subscribe:noSubscribe,()=>live?engine.snapshot:EMPTY,()=>EMPTY);React.useEffect(()=>{if(live)engine.refresh();},[live,options.anchor,options.activeName,options.sort,options.hide]);return snap;}// Grid icons: which icon belongs to which button.\n// Values are columns; \"2x3\" style entries are stored as 2.3 (columns.rows).\nconst learned=new Map;function parseColumns(value,fallback){const list=(value||\"\").split(/[,\\s]+/).map(v=>{const m=v.match(/^(\\d+)(?:x(\\d))?$/i);return m?+m[1]+(m[2]?+m[2]/10:0):NaN;}).filter(n=>n>0&&n<13);return list.length?list:fallback;}function iconList(g,device=\"desktop\"){if(device===\"phone\")return parseColumns(g.iconsPhone||\"\",[1,2,2.3]);if(device===\"tablet\"&&(g.iconsTablet||\"\").trim())return parseColumns(g.iconsTablet||\"\",[2,4,6]);return parseColumns(g.icons3||\"\",[2,4,6]);}function gridOptions(_snap,list,_list2){return list.slice(0,3);}function nativeGridColumns(){const width=typeof window===\"undefined\"?1440:window.innerWidth;return width<=809?[1,2,3]:width<=1439?[2,4,6]:[3,4,6];}function gridActive(snap,options){const index=nativeGridColumns().indexOf(snap.columns);return index>=0?index:options.length-1;}// Filtering and the return animation start in the same interaction.\nconst CATEGORY_SCROLL_START=\"wm-category-scroll-start\";const CATEGORY_CANCEL=\"wm-category-cancel\";// Sent when the category glide / fade is over, so other components know\n// the page is theirs again.\nconst CATEGORY_SCROLL_END=\"wm-category-scroll-end\";// Once the viewport is more than 2px below the grid start, lift and fade:\n// the content moves up while it fades out, the category changes unseen, and\n// the new cards fade in while it keeps moving up. Grid size switches never\n// fade. At the top of the grid nothing changes.\nconst LIFT_TOP_TOLERANCE=.5;// One continuous upward movement. The fade out ends at the same speed the\n// fade in starts with (12px / 260ms = 24px / 520ms on matching curves), so\n// the two halves read as a single motion.\nconst LIFT_OUT_MS=260;const LIFT_IN_MS=520;const LIFT_OUT_PX=12;const LIFT_IN_PX=24;const LIFT_OUT_EASE=\"cubic-bezier(0.32, 0, 0.67, 0)\";const LIFT_IN_EASE=\"cubic-bezier(0.33, 1, 0.68, 1)\";function gridTarget(section,offset){const document1=section.ownerDocument;const window1=document1.defaultView;const scrolling=document1.scrollingElement||document1.documentElement;const limit=Math.max(0,scrolling.scrollHeight-document1.documentElement.clientHeight);return clamp(section.getBoundingClientRect().top+window1.scrollY-offset,0,limit);}// The projects grid that holds this section (or the visible one).\nfunction gridRootOf(section){const own=section.closest('[data-grid-scroll-root=\"true\"]');if(own instanceof HTMLElement)return own;const all=Array.from(document.querySelectorAll('[data-grid-scroll-root=\"true\"]')).filter(el=>el.offsetWidth>0&&el.offsetHeight>0);return all[all.length-1]||null;}// The project cards in the grid, including native masonry columns.\nfunction liftCards(grid){const direct=Array.from(grid.children);const masonry=direct.length>0&&direct.every(el=>el instanceof HTMLElement&&!el.hasAttribute(\"data-framer-name\")&&el.style.display===\"flex\"&&el.style.flexDirection===\"column\");const items=masonry?direct.flatMap(column=>Array.from(column.children)):direct;return items.filter(el=>el instanceof HTMLElement&&el.offsetWidth>0&&el.offsetHeight>0&&!el.hasAttribute(\"data-ko-list\")&&!el.hasAttribute(\"data-ko-ghost\")&&!!el.querySelector(\"img, video, canvas\"));}// One row of the grid: a card plus the gap below it.\nfunction rowHeight(section){const grid=gridRootOf(section);const first=grid?liftCards(grid)[0]:null;if(!grid||!first)return window.innerHeight*.5;const gap=parseFloat(getComputedStyle(grid).rowGap)||0;return first.offsetHeight+gap;}function isFar(section,offset){return section.getBoundingClientRect().top<offset-LIFT_TOP_TOLERANCE;}// One instant jump, with smooth scrolling (CSS or Lenis) kept out of it.\nfunction jumpTo(top,section){const document1=section.ownerDocument;const window1=document1.defaultView;const els=[document1.documentElement,document1.body];const before=els.map(el=>[el.style.getPropertyValue(\"scroll-behavior\"),el.style.getPropertyPriority(\"scroll-behavior\")]);els.forEach(el=>el.style.setProperty(\"scroll-behavior\",\"auto\",\"important\"));const lenis=window1.lenis;try{if(lenis&&typeof lenis.scrollTo===\"function\"){// The grid just changed height: Lenis must know the new range\n// before it is asked to go there.\nlenis.resize?.();lenis.scrollTo(top,{immediate:true,force:true,lock:false});}}catch{}window1.scrollTo({left:window1.scrollX,top,behavior:\"instant\"});els.forEach((el,i)=>{if(before[i][0])el.style.setProperty(\"scroll-behavior\",before[i][0],before[i][1]);else el.style.removeProperty(\"scroll-behavior\");});}// Calls back once the new cards are laid out (calm frames) and the pictures\n// on screen are ready — or after a short cap, so there is never a pause.\nfunction whenSettled(section,next){let frames=0;let last=0;const started=performance.now();const picturesReady=()=>{const vh=window.innerHeight;const imgs=section.getElementsByTagName(\"img\");for(let i=0;i<imgs.length;i++){const img=imgs[i];if(img.complete)continue;const r=img.getBoundingClientRect();if(r.width&&r.bottom>0&&r.top<vh)return false;}return true;};const step=now=>{frames++;const calm=last>0&&now-last<34;last=now;if(frames>=2&&calm&&picturesReady()||now-started>200)return next();requestAnimationFrame(step);};requestAnimationFrame(step);}// Category entrance motion belongs exclusively to the native CMS card appear effect.\nconst categoryEase=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;// Keep a shortening grid from clamping scrollY before its animation can run.\n// Only the document's scroll range is protected; card layout stays untouched.\nfunction protectScrollRange(){const body=document.body;const root=document.scrollingElement||document.documentElement;const path=window.location.pathname;const previous=window.__wmScrollRange;const initialHeight=root.scrollHeight;const value=previous?.value??body.style.getPropertyValue(\"min-height\");const priority=previous?.priority??body.style.getPropertyPriority(\"min-height\");previous?.dispose(false);const restore=()=>{if(value)body.style.setProperty(\"min-height\",value,priority);else body.style.removeProperty(\"min-height\");};let released=false;const clean=(restoreStyle=true)=>{window.removeEventListener(\"scroll\",drain);window.removeEventListener(\"pagehide\",onLeave);window.removeEventListener(\"popstate\",onLeave);if(restoreStyle)restore();if(window.__wmScrollRange===owner)delete window.__wmScrollRange;};const onLeave=()=>clean();const owner={value,priority,dispose:clean};window.__wmScrollRange=owner;const drain=()=>{const y=window.scrollY;restore();const naturalLimit=Math.max(0,root.scrollHeight-document.documentElement.clientHeight);if(window.location.pathname!==path||y<=naturalLimit+1){clean();}else{body.style.setProperty(\"min-height\",Math.ceil(y+document.documentElement.clientHeight)+\"px\",\"important\");if(Math.abs(window.scrollY-y)>.5)window.scrollTo({top:y,behavior:\"instant\"});}};body.style.setProperty(\"min-height\",initialHeight+\"px\",\"important\");return()=>{if(released||window.__wmScrollRange!==owner)return;released=true;// If a gesture interrupts far down a shorter category, drain the extra\n// range as the user scrolls rather than forcing a second scroll jump.\nwindow.addEventListener(\"scroll\",drain,{passive:true});window.addEventListener(\"pagehide\",onLeave);window.addEventListener(\"popstate\",onLeave);drain();};}// In-flow category transitions keep viewport navigation independent.\nfunction categoryFlowTargets(grid){let block=grid;const title=document.querySelector(\"[data-work-category-title]\")||grid.closest('[data-framer-name=\"Work — Title + Projects\"]')?.firstElementChild;while(block.parentElement&&block!==document.body&&title&&!block.contains(title))block=block.parentElement;if(block===document.body)block=grid.parentElement||grid;const following=[];const collect=node=>{if(!(node instanceof HTMLElement)||!node.offsetWidth)return;const css=getComputedStyle(node);if([\"fixed\",\"sticky\",\"absolute\"].includes(css.position))return;if(css.display===\"contents\"||node.querySelector(\"[data-viewport-header], [data-wm]\")){Array.from(node.children).forEach(collect);return;}if(!following.some(parent=>parent.contains(node)))following.push(node);};for(let node=block;node.parentElement&&node.parentElement!==document.body;node=node.parentElement){for(let sibling=node.nextElementSibling;sibling;sibling=sibling.nextElementSibling)collect(sibling);}return{block,following};}let stopSectionEntrance=null;let columnFlowActive=false;let categoryTransitionActive=false;function categoryCardBoxes(grid){return liftCards(grid).map(card=>({card,key:card.querySelector('[data-framer-name=\"Title\"]')?.textContent?.trim()||card.querySelector(\"p\")?.textContent?.trim()||\"\",rect:card.getBoundingClientRect()}));}// Category-only movement: native masonry changes parent columns, so React\n// cannot retain every card. Match projects and animate the real incoming nodes.\n// Read old boxes once, new boxes once; no per-frame measurements or scroll writes.\nfunction prepareCategoryExits(grid,previous,enabled=true){const snapshots=new Map(enabled?previous.filter(item=>item.rect.bottom>0&&item.rect.top<window.innerHeight).map(item=>[item.key,{clone:item.card.cloneNode(true),opacity:Number(getComputedStyle(item.card).opacity)}]):[]);const ghosts=new Map;const motions=[];const reduced=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;let layer=null;let played=false;let closed=false;let resolve;const finished=new Promise(done=>{resolve=done;});const stage=()=>{if(played||closed||!enabled||reduced)return;const keys=new Set(categoryCardBoxes(grid).map(item=>item.key));for(const item of previous){if(keys.has(item.key)||ghosts.has(item.key)||item.rect.bottom<=0||item.rect.top>=window.innerHeight)continue;if(!layer){layer=document.createElement(\"div\");layer.setAttribute(\"aria-hidden\",\"true\");layer.inert=true;Object.assign(layer.style,{position:\"fixed\",inset:\"0\",pointerEvents:\"none\",overflow:\"clip\",zIndex:\"1\"});document.body.appendChild(layer);}const snapshot=snapshots.get(item.key);const clone=snapshot.clone;clone.removeAttribute(\"id\");clone.querySelectorAll(\"[id]\").forEach(node=>node.removeAttribute(\"id\"));clone.setAttribute(\"data-ko-ghost\",\"\");Object.assign(clone.style,{position:\"absolute\",margin:\"0\",left:item.rect.left+\"px\",top:item.rect.top+\"px\",width:item.rect.width+\"px\",height:item.rect.height+\"px\",transform:\"none\",translate:\"none\",opacity:String(snapshot.opacity)});layer.appendChild(clone);ghosts.set(item.key,clone);}for(const[key,clone]of ghosts)if(keys.has(key)){clone.remove();ghosts.delete(key);}};const clean=()=>{closed=true;observer.disconnect();motions.forEach(animation=>animation.cancel());layer?.remove();layer=null;snapshots.clear();ghosts.clear();resolve(true);};const play=()=>{if(played||closed)return;stage();played=true;observer.disconnect();for(const clone of ghosts.values())motions.push(clone.animate([{opacity:Number(clone.style.opacity)},{opacity:0}],{duration:400,easing:\"cubic-bezier(0.4, 0, 0.2, 1)\",fill:\"both\"}));const startTime=document.timeline.currentTime;if(startTime!==null)motions.forEach(animation=>{animation.startTime=startTime;});Promise.all(motions.map(animation=>animation.finished.catch(()=>{}))).then(clean);};const observer=new MutationObserver(stage);observer.observe(grid,{childList:true,subtree:true});return{play,finished,cancel:clean};}// Category selection is a native Framer state update. No page/footer fade,\n// exit clones, forced scroll, height lock, or delayed animation transaction.\nfunction createCategorySwitch(){return{cancel(){},request(label,_motion){if(getWorkCategories().selected?.label===label)return;stopSectionEntrance?.();stopSectionEntrance=null;categoryTransitionActive=false;window.dispatchEvent(new Event(\"wm-category-commit\"));selectWorkCategory(label);engine.refresh();}};}let gridLearnTimer=0;let gridLearnCancel=null;let categorySwitch=null;function selectCategoryOnPage(label,motionProps){if(!isBrowser)return;const controller=categorySwitch||(categorySwitch=createCategorySwitch());controller.request(label,motionProps);}// Category picks from outside the Work menu (mobile menu, footer links) run\n// through the same transaction, so they get the exact same transition.\nif(isBrowser&&!window.__wmCategoryRequest){window.__wmCategoryRequest=true;window.addEventListener(\"wm-category-request\",event=>{const label=typeof event.detail===\"string\"?event.detail:\"\";if(!label||!engine.snapshot.section)return;event.preventDefault();selectCategoryOnPage(label,undefined);});}function selectGridOnPage(index){categorySwitch?.cancel();const commit=()=>{selectWorkGrid(index);engine.refresh();};const request=new CustomEvent(\"wm-grid-switch-request\",{cancelable:true,detail:{commit}});if(window.dispatchEvent(request))commit();}const feel={ctx:null,noise:null,sw:null,lastHaptic:0,lastSound:0};const isApple=()=>isBrowser&&/iP(hone|ad|od)/.test(navigator.userAgent);function haptic(strength=\"light\"){if(!isBrowser)return;const now=performance.now();if(now-feel.lastHaptic<40)return;feel.lastHaptic=now;const nav=navigator;// Android & other browsers with the Vibration API.\nif(!isApple()&&typeof nav.vibrate===\"function\"){try{nav.vibrate(strength===\"strong\"?18:strength===\"medium\"?11:6);}catch{}return;}// iPhone (iOS 18+ Safari): toggling a native switch plays the system\n// haptic tick. It has to happen inside the tap, which it does here.\ntry{if(!feel.sw||!feel.sw.isConnected){const label=document.createElement(\"label\");label.setAttribute(\"aria-hidden\",\"true\");label.style.cssText=\"position:fixed;left:-200px;top:0;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none\";const input=document.createElement(\"input\");input.type=\"checkbox\";input.setAttribute(\"switch\",\"\");input.tabIndex=-1;label.appendChild(input);document.body.appendChild(label);feel.sw=label;}const focused=document.activeElement;feel.sw.click();if(focused&&focused!==document.body)focused.focus({preventScroll:true});}catch{}}function sound(style=\"tick\",volume=.18){if(!isBrowser)return;const now=performance.now();if(now-feel.lastSound<30)return;feel.lastSound=now;const W=window;const AC=W.AudioContext||W.webkitAudioContext;if(!AC)return;try{const nav=navigator;// Mix politely with music and respect the silent switch.\nif(nav.audioSession&&nav.audioSession.type!==\"ambient\")nav.audioSession.type=\"ambient\";}catch{}try{if(!feel.ctx)feel.ctx=new AC;const ctx=feel.ctx;if(ctx.state===\"suspended\")ctx.resume();const t=ctx.currentTime+.005;const vol=Math.max(0,Math.min(1,volume));const out=ctx.createGain();out.gain.value=vol;out.connect(ctx.destination);if(style===\"tick\"){if(!feel.noise){const buffer=ctx.createBuffer(1,Math.floor(ctx.sampleRate*.03),ctx.sampleRate);const data=buffer.getChannelData(0);for(let i=0;i<data.length;i++)data[i]=(Math.random()*2-1)*Math.pow(1-i/data.length,3);feel.noise=buffer;}const src=ctx.createBufferSource();src.buffer=feel.noise;const band=ctx.createBiquadFilter();band.type=\"bandpass\";band.frequency.value=3400;band.Q.value=1.1;const env=ctx.createGain();env.gain.setValueAtTime(1e-4,t);env.gain.exponentialRampToValueAtTime(.9,t+.001);env.gain.exponentialRampToValueAtTime(1e-4,t+.028);src.connect(band).connect(env).connect(out);src.start(t);src.stop(t+.04);}else{const partials=style===\"glass\"?[[2350,1],[3520,.35],[5860,.12]]:[[920,1],[1840,.18]];const decay=style===\"glass\"?.16:.07;partials.forEach(([f,g])=>{const osc=ctx.createOscillator();osc.type=\"sine\";osc.frequency.setValueAtTime(f,t);if(style===\"soft\")osc.frequency.exponentialRampToValueAtTime(f*.72,t+decay);const env=ctx.createGain();env.gain.setValueAtTime(1e-4,t);env.gain.exponentialRampToValueAtTime(.5*g,t+.003);env.gain.exponentialRampToValueAtTime(1e-4,t+decay);osc.connect(env).connect(out);osc.start(t);osc.stop(t+decay+.02);});}}catch{}}function giveFeedback(f,soft=false){if(!f)return;if(f.haptics)haptic(soft?\"light\":f.strength);if(f.sound)sound(f.soundStyle,(f.volume??.18)*(soft?.6:1));}const isSavee=(s={},preset)=>preset===\"savee\"||s.style===\"savee\";// Surface padding (Framer-style linked / individual).\nfunction surfacePad(s={},preset,fallback=5){if(s.style===\"none\"&&!isSavee(s,preset))return[0,0,0,0];const n=num(s.padding,fallback);return pad4(s.inset,[n,n,n,n]);}const mix=(color,percent)=>\"color-mix(in srgb, \"+color+\" \"+Math.max(0,Math.min(100,percent))+\"%, transparent)\";// The visual layer of the surface. It is drawn as a separate layer BEHIND the\n// content, so popovers inside the menu (dropdown) keep their own glass.\nfunction surfaceVisual(s={},preset){const kind=isSavee(s,preset)?\"savee\":s.style||\"glass\";const radius=s.radius??999;const tint=s.tint||TOKEN_BG;const border=s.border||TOKEN_LINE;const bw=s.borderWidth??1;const shadowAmount=Math.max(0,s.shadow??.12);const shadow=shadowAmount>0?\"0 10px 30px rgba(0,0,0,\"+shadowAmount+\"), 0 1px 2px rgba(0,0,0,\"+shadowAmount/2+\")\":\"\";const glossOf=g=>\"linear-gradient(180deg, rgba(255,255,255,\"+g*.45+\") 0%, rgba(255,255,255,0) 60%)\";const highlightOf=g=>g>0?\"inset 0 1px 0 rgba(255,255,255,\"+g*.6+\")\":\"\";const shadows=(...list)=>list.filter(Boolean).join(\", \")||\"none\";const base={position:\"absolute\",inset:0,borderRadius:radius,boxSizing:\"border-box\",pointerEvents:\"none\",// Its own stable GPU layer: no speckles, white dots or flicker\n// from the blur while the page scrolls or the menu animates.\nopacity:1,transition:\"none\"};if(kind===\"savee\"){// Savee's material (light & dark tint, blur, clear edge). Every part\n// of it can be tuned in Surface, just like Custom.\nconst blur=Math.max(0,s.saveeBlur??50);const sat=s.saveeSaturation??100;const g=Math.max(0,Math.min(1,s.saveeGloss??0));const sbw=Math.max(0,s.saveeBorderWidth??1.5);const f=\"blur(\"+blur+\"px)\"+(sat!==100?\" saturate(\"+sat+\"%)\":\"\");return{...base,background:(g>0?glossOf(g)+\", \":\"\")+\"var(--wm-sv-bg)\",backdropFilter:f,WebkitBackdropFilter:f,border:sbw&&s.saveeBorder&&!/rgba\\([^)]*,\\s*0\\)$/.test(String(s.saveeBorder))&&s.saveeBorder!==\"transparent\"?sbw+\"px solid \"+s.saveeBorder:\"none\",boxShadow:shadows(shadow,highlightOf(g))};}const gloss=Math.max(0,Math.min(1,s.gloss??.35));const glossLayer=glossOf(gloss);const highlight=highlightOf(gloss);if(kind===\"none\")return{...base,display:\"none\"};if(kind===\"outline\")return{...base,border:bw+\"px solid \"+border};if(kind===\"solid\")return{...base,background:mix(tint,s.opacity??100),border:bw?bw+\"px solid \"+border:\"none\",boxShadow:shadows(shadow)};if(kind===\"gradient\")return{...base,background:(gloss>0?glossLayer+\", \":\"\")+\"linear-gradient(\"+(s.gradientAngle??135)+\"deg, \"+(s.gradientFrom||\"rgb(236, 236, 255)\")+\", \"+(s.gradientTo||\"rgb(255, 236, 246)\")+\")\",border:bw?bw+\"px solid \"+mix(border,60):\"none\",boxShadow:shadows(shadow,highlight)};const frosted=kind===\"frosted\";const blur=s.blur??(frosted?36:24);const sat=s.saturation??180;const filter=\"blur(\"+blur+\"px) saturate(\"+sat+\"%)\";return{...base,background:(gloss>0?glossLayer+\", \":\"\")+mix(tint,s.opacity??(frosted?82:72)),backdropFilter:filter,WebkitBackdropFilter:filter,border:bw?bw+\"px solid \"+mix(border,frosted?90:70):\"none\",boxShadow:shadows(shadow,highlight)};}const cornersCss=c=>c[0]===c[1]&&c[1]===c[2]&&c[2]===c[3]?c[0]+\"px\":c.map(v=>v+\"px\").join(\" \");const cornersMax=c=>Math.max(c[0],c[1],c[2],c[3]);// Squircle: continuous corners (like iOS / Figma corner smoothing).\n// Smoothing 0 = a normal round corner, 1 = the smoothest squircle.\nfunction squirclePath(w,h,c,smoothing,inset=0){const W=w-inset*2;const H=h-inset*2;if(W<=0||H<=0)return\"\";const budget=Math.min(W,H)/2;const rad=d=>d*Math.PI/180;const corner=r0=>{const r=Math.max(0,Math.min(r0-inset,budget));let s=Math.max(0,Math.min(1,smoothing));let p=(1+s)*r;if(p>budget){s=Math.max(0,Math.min(s,budget/Math.max(r,.001)-1));p=Math.min(p,budget);}const arcMeasure=90*(1-s);const arc=Math.sin(rad(arcMeasure/2))*r*Math.SQRT2;const alpha=(90-arcMeasure)/2;const p3p4=r*Math.tan(rad(alpha/2));const beta=45*s;const cc=p3p4*Math.cos(rad(beta));const d=cc*Math.tan(rad(beta));const b=(p-arc-cc-d)/3;const a=2*b;return{r,p,a,b,c:cc,d,arc};};const f=v=>Math.round(v*1e3)/1e3;const tl=corner(c[0]);const tr=corner(c[1]);const br=corner(c[2]);const bl=corner(c[3]);const o=inset;const q=[];q.push(\"M \"+f(o+W-tr.p)+\" \"+f(o));if(tr.r>.01)q.push(\"c \"+f(tr.a)+\" 0 \"+f(tr.a+tr.b)+\" 0 \"+f(tr.a+tr.b+tr.c)+\" \"+f(tr.d),\"a \"+f(tr.r)+\" \"+f(tr.r)+\" 0 0 1 \"+f(tr.arc)+\" \"+f(tr.arc),\"c \"+f(tr.d)+\" \"+f(tr.c)+\" \"+f(tr.d)+\" \"+f(tr.b+tr.c)+\" \"+f(tr.d)+\" \"+f(tr.a+tr.b+tr.c));q.push(\"L \"+f(o+W)+\" \"+f(o+H-br.p));if(br.r>.01)q.push(\"c 0 \"+f(br.a)+\" 0 \"+f(br.a+br.b)+\" \"+f(-br.d)+\" \"+f(br.a+br.b+br.c),\"a \"+f(br.r)+\" \"+f(br.r)+\" 0 0 1 \"+f(-br.arc)+\" \"+f(br.arc),\"c \"+f(-br.c)+\" \"+f(br.d)+\" \"+f(-(br.b+br.c))+\" \"+f(br.d)+\" \"+f(-(br.a+br.b+br.c))+\" \"+f(br.d));q.push(\"L \"+f(o+bl.p)+\" \"+f(o+H));if(bl.r>.01)q.push(\"c \"+f(-bl.a)+\" 0 \"+f(-(bl.a+bl.b))+\" 0 \"+f(-(bl.a+bl.b+bl.c))+\" \"+f(-bl.d),\"a \"+f(bl.r)+\" \"+f(bl.r)+\" 0 0 1 \"+f(-bl.arc)+\" \"+f(-bl.arc),\"c \"+f(-bl.d)+\" \"+f(-bl.c)+\" \"+f(-bl.d)+\" \"+f(-(bl.b+bl.c))+\" \"+f(-bl.d)+\" \"+f(-(bl.a+bl.b+bl.c)));q.push(\"L \"+f(o)+\" \"+f(o+tl.p));if(tl.r>.01)q.push(\"c 0 \"+f(-tl.a)+\" 0 \"+f(-(tl.a+tl.b))+\" \"+f(tl.d)+\" \"+f(-(tl.a+tl.b+tl.c)),\"a \"+f(tl.r)+\" \"+f(tl.r)+\" 0 0 1 \"+f(tl.arc)+\" \"+f(-tl.arc),\"c \"+f(tl.c)+\" \"+f(-tl.d)+\" \"+f(tl.b+tl.c)+\" \"+f(-tl.d)+\" \"+f(tl.a+tl.b+tl.c)+\" \"+f(-tl.d));q.push(\"Z\");return q.join(\" \");}function useBoxSize(on){const[size,setSize]=React.useState({w:0,h:0});const ro=React.useRef(null);const ref=React.useCallback(el=>{ro.current?.disconnect();ro.current=null;if(!el||!on)return;const m=()=>{const w=el.offsetWidth;const h=el.offsetHeight;setSize(s=>s.w===w&&s.h===h?s:{w,h});};m();if(typeof ResizeObserver!==\"undefined\"){ro.current=new ResizeObserver(m);ro.current.observe(el);}},[on]);return[ref,size];}const canPathClip=()=>isBrowser&&typeof CSS!==\"undefined\"&&!!CSS.supports&&CSS.supports(\"clip-path\",'path(\"M0 0 L1 0 L1 1 Z\")');// One geometry clock for the integrated list clip and its glass. In production,\n// independently animated boxes can expose a row beyond the rounded glass edge.\nconst DropdownGeometry=/*#__PURE__*/React.createContext(null);function Surface({s,preset,radius,corners,fade,extend,transition}){const geometry=React.useContext(DropdownGeometry);const fallbackHeight=useMotionValue(0);const negativeHeight=useTransform(geometry?.height||fallbackHeight,value=>-Math.max(0,value));const ss=s||{};const style=surfaceVisual(s,preset);const c4=corners?corners:radius!==undefined?[radius,radius,radius,radius]:null;if(c4)style.borderRadius=cornersCss(c4);const toC=v=>Array.isArray(v)?v:[v,v,v,v];const extC=extend?toC(extend.size>0?extend.radius:extend.base):[0,0,0,0];const pathC=extend?extC:c4||[999,999,999,999];const smooth=Math.max(0,Math.min(1,num(ss.smooth,.6)));const squircle=ss.shape===\"squircle\"&&style.display!==\"none\"&&canPathClip();// Border of the squircle (drawn as a line that follows the shape).\nlet bw=0;let bc=\"\";const bm=/^([\\d.]+)px solid (.+)$/.exec(String(style.border||\"\"));if(squircle&&bm){bw=parseFloat(bm[1])||0;bc=bm[2];}const sq=useLiveSquircle(squircle,pathC,smooth,bw,!!extend);let anim={};if(fade){anim={variants:{closed:{opacity:0},open:{opacity:1}},transition:fade};// Framer Motion fades the panel glass: no CSS transition fighting\n// it (that was the flicker).\nstyle.transition=\"none\";}else if(extend){// Dropdown \"Expand Menu\": the same glass grows from its edge.\ndelete style.inset;style.left=0;style.right=0;delete style.borderRadius;anim={initial:false,animate:{...geometry&&!isCanvasNow()?{}:{top:extend.up?-extend.size:0,bottom:extend.up?0:-extend.size},borderTopLeftRadius:extC[0],borderTopRightRadius:extC[1],borderBottomRightRadius:extC[2],borderBottomLeftRadius:extC[3]},transition};if(geometry&&!isCanvasNow()){style.top=extend.up?negativeHeight:0;style.bottom=extend.up?0:negativeHeight;}if(isCanvasNow()){Object.assign(style,anim.animate);anim={};}}// Context fade only: inherit one alpha for the glass, border and shadow.\n// The fallback stays opaque on load; geometry transitions are unchanged.\nstyle.opacity=\"var(--wm-context-opacity, 1)\";style.transition=[style.transition&&style.transition!==\"none\"?style.transition:\"\",\"opacity var(--wm-fd,.3s) var(--wm-fe,ease)\"].filter(Boolean).join(\", \");// The glass is never faded in on load: drawn complete from frame one.\nif(!squircle)return /*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":\"true\",className:\"wm-surface\",...anim,style:style});// Squircle: the glass is cut to the smooth shape (updated in the same\n// frame as any size change); shadow and border follow the same corners.\nconst sa=Math.max(0,ss.shadow??.12);const outer=sa>0&&style.boxShadow&&style.boxShadow!==\"none\"?\"0 10px 30px rgba(0,0,0,\"+sa+\"), 0 1px 2px rgba(0,0,0,\"+sa/2+\")\":\"\";const side={position:\"absolute\",left:0,right:0,top:extend?style.top:0,bottom:extend?style.bottom:0,pointerEvents:\"none\",opacity:style.opacity,transition:style.transition};const main={...style,border:\"none\"};return /*#__PURE__*/_jsxs(_Fragment,{children:[outer?/*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":\"true\",className:\"wm-surface\",...anim,style:{...side,borderRadius:extend?undefined:cornersCss(pathC),boxShadow:outer}}):null,/*#__PURE__*/_jsx(motion.span,{ref:sq.ref,\"aria-hidden\":\"true\",className:\"wm-surface\",...anim,style:main}),bw>0?/*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":\"true\",className:\"wm-surface\",...anim,style:side,children:/*#__PURE__*/_jsx(\"svg\",{width:\"100%\",height:\"100%\",style:{position:\"absolute\",left:0,top:0,overflow:\"visible\"},children:/*#__PURE__*/_jsx(\"path\",{ref:sq.border,fill:\"none\",stroke:bc,strokeWidth:bw})})}):null]});}function fontStyle(t={},active=false){const font=t.font||{};const style={fontFamily:SITE_FONT,fontSize:15,lineHeight:\"1.2em\",letterSpacing:\"-0.01em\",...font};if(!font.fontFamily)style.fontFamily=SITE_FONT;const features=(t.features??\"blwf, cv03, cv04, cv09, ss07\").split(/[,\\s]+/).map(f=>f.replace(/[\"']/g,\"\").trim()).filter(f=>/^[a-z0-9]{4}$/i.test(f));if(features.length)style.fontFeatureSettings=features.map(f=>'\"'+f+'\" 1').join(\", \");const axes=(t.axes&&t.axes.length?t.axes:[{tag:\"slnt\",value:0},{tag:\"wght\",value:430}]).filter(a=>/^[A-Za-z0-9]{4}$/.test(a.tag)&&Number.isFinite(a.value));let list=axes.slice();if(active&&t.activeWeight)list=list.filter(a=>a.tag!==\"wght\").concat([{tag:\"wght\",value:t.activeWeight}]);if(list.length)style.fontVariationSettings=list.map(a=>'\"'+a.tag+'\" '+a.value).join(\", \");if(t.transform&&t.transform!==\"none\")style.textTransform=t.transform;style.fontOpticalSizing=\"auto\";return style;}function palette(p){const it=p.items||{};const g=p.grid||{};const s=p.surface||{};// Savee Glass uses Savee's own light/dark text colours unless you turn\n// \"Savee Colours\" off — then your Items / Grid colours are used.\nif(isSavee(s,p.preset)&&s.saveeColors!==false)return{active:\"var(--wm-sv-fg)\",inactive:\"var(--wm-sv-muted)\",hover:\"var(--wm-sv-fg)\",indicator:\"var(--wm-sv-ind)\",line:\"var(--wm-sv-line)\",gridActive:\"var(--wm-sv-fg)\",gridInactive:\"var(--wm-sv-grid, var(--wm-sv-muted))\",gridIndicator:\"var(--wm-sv-ind)\"};return{active:it.activeColor||TOKEN_TEXT,inactive:it.inactiveColor||TOKEN_MUTED,hover:it.hoverColor||TOKEN_TEXT,indicator:it.indicatorColor||TOKEN_SOFT,line:it.lineColor?it.lineColor:isSavee(s,p.preset)?\"var(--wm-sv-line)\":s.border||TOKEN_LINE,gridActive:g.activeColor||TOKEN_TEXT,gridInactive:g.inactiveColor||TOKEN_LINE,gridIndicator:g.indicatorColor||TOKEN_SOFT};}// Scoped CSS: hover, focus, scrollbars and the Savee light/dark values.\n// The glass (.wm-surface) is never animated on load: only the content fades\n// in. Hide-on-scroll fades the glass and the content side by side (never a\n// parent of the glass), so the blur is always complete.\nconst SCOPED_RULES=\"\\xa7[data-hlhover]{--wm-hl:transparent}\\xa7[data-hlhover][data-hlon]{--wm-hl:initial}\"+\"\\xa7 .wm-track::-webkit-scrollbar{display:none}\"+\"\\xa7 .wm-fade{transition:opacity var(--wm-fd,.3s) var(--wm-fe,ease)}\"+\"\\xa7 .wm-surface{opacity:1;transition:none}\"+\"\\xa7[data-hidden][data-fade] .wm-fade{opacity:0}\"+\"\\xa7[data-hidden][data-instant]{visibility:hidden}\"+\"\\xa7 .wm-item,\\xa7 .wm-grid{-webkit-appearance:none;appearance:none}\"+\"\\xa7 .wm-item:focus,\\xa7 .wm-grid:focus{outline:none}\"+\"\\xa7 .wm-item:focus-visible,\\xa7 .wm-grid:focus-visible{outline:1.5px solid currentColor;outline-offset:2px}\"+\"\\xa7 .wm-track[data-dragging],\\xa7 .wm-track[data-dragging] *{cursor:grabbing!important}\"+\"@media (hover:hover){\\xa7 .wm-item:not([data-on]):not(:disabled):hover{color:var(--wm-hover)!important}\\xa7 .wm-grid[aria-pressed=false]:hover{color:var(--wm-hover)!important}}\";function scopedCss(id,s={}){const light=SAVEE_LIGHT+(s.saveeLight?\"--wm-sv-bg:\"+s.saveeLight+\";\":\"\")+(s.indLight?\"--wm-sv-ind:\"+s.indLight+\";\":\"\");const dark=SAVEE_DARK+(s.saveeDark?\"--wm-sv-bg:\"+s.saveeDark+\";\":\"\")+(s.indDark?\"--wm-sv-ind:\"+s.indDark+\";\":\"\");const css=\"\\xa7{\"+light+\"}\"+\"html.dark \\xa7,html[data-framer-theme=dark] \\xa7,html[data-theme=dark] \\xa7{\"+dark+\"}\"+\"@media (prefers-color-scheme:dark){html:not([data-framer-theme=light]):not([data-theme=light]):not(.light) \\xa7{\"+dark+\"}}\"+SCOPED_RULES;return /*#__PURE__*/_jsx(\"style\",{children:css.split(\"\\xa7\").join('[data-wm=\"'+id+'\"]')});}function useMarker(container,items,active,key){const[box,setBox]=React.useState(null);const measure=React.useCallback(()=>{const c=container.current;const el=items.current[active];if(!el||!c)return setBox(null);// Sub-pixel exact (decimal gaps stay exact) and still correct while\n// the menu is scaling in.\nconst cr=c.getBoundingClientRect();const er=el.getBoundingClientRect();const k=c.offsetWidth>0&&Math.abs(cr.width-c.offsetWidth)>1?cr.width/c.offsetWidth:1;const r2=v=>Math.round(v*100)/100;const next={x:r2((er.left-cr.left)/k+c.scrollLeft-c.clientLeft),y:r2((er.top-cr.top)/k+c.scrollTop-c.clientTop),w:r2(er.width/k),h:r2(er.height/k)};setBox(b=>b&&Math.abs(b.x-next.x)<.05&&Math.abs(b.y-next.y)<.05&&Math.abs(b.w-next.w)<.05&&Math.abs(b.h-next.h)<.05?b:next);},[active,items,container]);useIsoLayoutEffect(measure,[measure,key]);React.useEffect(()=>{const c=container.current;if(!c||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(measure);ro.observe(c);items.current.forEach(i=>i&&ro.observe(i));const fonts=document.fonts;if(fonts&&fonts.ready)fonts.ready.then(measure);window.addEventListener(\"wm-settle\",measure);return()=>{ro.disconnect();window.removeEventListener(\"wm-settle\",measure);};},[measure,key,container,items]);return box;}// Highlight shape (Highlight section): Auto / Custom corners (each corner),\n// Round / Squircle, and Width / Height around the category.\nfunction hlOf(it,auto){const custom=!!(it&&it.hlCorners);const c=custom?it.hlCorners:[auto,auto,auto,auto];return{corners:c,squircle:!!it&&it.hlShape===\"squircle\",smooth:it&&typeof it.hlSmooth===\"number\"?it.hlSmooth:.6,gx:it?num(it.hlGrowX,0):0,gy:it?num(it.hlGrowY,0):0};}// Squircle clip that follows the element's size in the SAME frame: it is\n// set straight on the element (never through a React re-render), so it\n// never lags behind while a frame grows, shrinks, slides or opens.\n// Highlight Width / Height: room kept around a highlight that is bigger\n// than its category, so it is never cut off (the frame grows with it).\nfunction hlRoom(it){const h=hlOf(it,0);const pill=!it||(it.indicator??\"pill\")===\"pill\";return{gx:pill?h.gx:0,gy:pill?h.gy:0,mx:pill?Math.max(0,h.gx/2):0,my:pill?Math.max(0,h.gy/2):0};}function useLiveSquircle(on,corners,smooth,bw=0,settle=false){// settle: while the size keeps changing (a frame opening / closing)\n// the normal rounded corners are used, and the squircle is cut once it\n// stops — Safari never has to redraw a moving cut glass (no vanishing\n// text above it).\nconst last=React.useRef({w:0,h:0,t:0});const el=React.useRef(null);const border=React.useRef(null);const ro=React.useRef(null);const cfg=React.useRef({on,corners,smooth,bw,settle});cfg.current={on,corners,smooth,bw,settle};const apply=React.useCallback(fromResize=>{const node=el.current;if(!node)return;const host=node.hasAttribute(\"data-hl-parent\")?node.parentElement:node;if(!host)return;const c=cfg.current;if(!c.on){host.style.clipPath=\"\";host.style.webkitClipPath=\"\";return;}const w=node.offsetWidth;const h=node.offsetHeight;if(!w||!h)return;if(border.current&&c.bw>0)border.current.setAttribute(\"d\",squirclePath(w,h,c.corners,c.smooth,c.bw/2));const L=last.current;const moved=L.w>0&&(Math.abs(L.w-w)>.5||Math.abs(L.h-h)>.5);L.w=w;L.h=h;if(c.settle&&fromResize===true&&moved){host.style.clipPath=\"\";host.style.webkitClipPath=\"\";window.clearTimeout(L.t);L.t=window.setTimeout(()=>apply(),140);return;}const d='path(\"'+squirclePath(w,h,c.corners,c.smooth)+'\")';host.style.clipPath=d;host.style.webkitClipPath=d;if(border.current&&c.bw>0)border.current.setAttribute(\"d\",squirclePath(w,h,c.corners,c.smooth,c.bw/2));},[]);const ref=React.useCallback(node=>{ro.current?.disconnect();ro.current=null;el.current=node;if(!node)return;apply();if(typeof ResizeObserver!==\"undefined\"){ro.current=new ResizeObserver(()=>apply(true));ro.current.observe(node);}},[apply]);useIsoLayoutEffect(()=>apply(),[on,corners.join(\",\"),smooth,bw,apply]);React.useEffect(()=>()=>window.clearTimeout(last.current.t),[]);return{ref,border};}function useHlClip(it,auto,capH,enabled=true){const h=hlOf(it,auto);const c=capH?h.corners.map(v=>Math.min(v,capH)):h.corners;const sq=useLiveSquircle(enabled&&h.squircle&&canPathClip(),c,h.smooth);return[sq.ref,{borderRadius:cornersCss(c)}];}function Marker({box,kind,color,radius,padX,transition,it}){const live=useLive(transition);if(!box||kind===\"none\")return null;const h=hlOf(it,radius);const target=kind===\"pill\"?{x:box.x-h.gx/2,y:box.y-h.gy/2,width:Math.max(2,box.w+h.gx),height:Math.max(2,box.h+h.gy)}:kind===\"underline\"?{x:box.x+padX,y:box.y+box.h-5,width:Math.max(4,box.w-padX*2),height:1.5}:{x:box.x+box.w/2-2,y:box.y+box.h-7,width:4,height:4};// Squircle highlight: the shape follows its size as it glides.\nif(kind===\"pill\"&&h.squircle&&canPathClip())target.clipPath='path(\"'+squirclePath(target.width,target.height,h.corners,h.smooth)+'\")';return /*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":\"true\",initial:false,animate:isCanvasNow()?undefined:target,transition:live,style:{...isCanvasNow()?target:null,position:\"absolute\",left:0,top:0,borderRadius:kind===\"pill\"?cornersCss(h.corners):4,background:\"var(--wm-hl, \"+color+\")\",transition:\"background-color .25s ease\",pointerEvents:\"none\"}});}// Smoothly animates its width to fit its content (no scaling, no squish).\n// The content is clipped to this box, so text never shows outside the menu\n// while it shrinks (e.g. Expand closing).\n// The Framer canvas does not play animations: there, everything is drawn\n// straight in its final state (Canvas Preview → Open / Hover / Hidden).\nconst isCanvasNow=()=>RenderTarget.current()===RenderTarget.canvas;function AutoWidth({children,transition,fill}){const inner=React.useRef(null);const live=useLive(transition);const[w,setW]=React.useState(\"auto\");useIsoLayoutEffect(()=>{const el=inner.current;if(!el)return;const m=()=>setW(el.offsetWidth);m();if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(m);ro.observe(el);return()=>ro.disconnect();},[]);return /*#__PURE__*/_jsx(motion.div,{initial:false,animate:isCanvasNow()?undefined:{width:w},transition:live,style:{width:isCanvasNow()?w:undefined,position:\"relative\",overflow:\"hidden\",maxWidth:\"100%\",minWidth:0,display:\"flex\",alignItems:\"center\"},children:/*#__PURE__*/_jsx(\"div\",{ref:inner,style:{display:\"flex\",alignItems:\"center\",// Fill: exactly the room the open frame gives.\nwidth:fill?\"var(--wm-avail, max-content)\":\"max-content\",flexShrink:0,maxWidth:\"var(--wm-avail, calc(100vw - 48px))\"},children:children})});}function iconsOf(p){const i=p.icons||{};return{style:i.style||\"chevron\",size:Math.max(4,num(i.size,10)),stroke:Math.max(.5,num(i.stroke,1.3)),gap:Math.max(0,num(i.gap,10)),prefixGap:Math.max(0,num(i.prefixGap,10)),pairGap:Math.max(0,num(i.pairGap,2)),fixed:!!i.fixed,textAlign:i.textAlign||\"start\",align:i.align||\"center\",x:num(i.x,0),y:num(i.y,0),wheelArrows:i.wheelArrows,wheelSide:i.wheelSide,wheelClickable:i.wheelClickable};}const flexAlign=a=>a===\"start\"?\"flex-start\":a===\"end\"?\"flex-end\":\"center\";// Arrow glyph: drawn pointing down, then turned to its direction.\nfunction ArrowGlyph({dir,ic,turn=0,transition}){const base=dir===\"up\"?180:dir===\"left\"?90:dir===\"right\"?-90:0;const line={fill:\"none\",stroke:\"currentColor\",strokeWidth:ic.stroke,strokeLinecap:\"round\",strokeLinejoin:\"round\"};const kids=ic.style===\"arrow\"?/*#__PURE__*/_jsx(\"path\",{d:\"M5 1.6v6.8M2.2 5.6 5 8.4l2.8-2.8\",...line}):ic.style===\"filled\"?/*#__PURE__*/_jsx(\"path\",{d:\"M1.7 3.1h6.6c.42 0 .65.48.39.8L5.39 8.02a.5.5 0 0 1-.78 0L1.31 3.9a.5.5 0 0 1 .39-.8Z\",fill:\"currentColor\"}):ic.style===\"outline\"?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"5\",cy:\"5\",r:\"4.4\",fill:\"none\",stroke:\"currentColor\",strokeWidth:ic.stroke*.8}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.3 4.25 5 5.95l1.7-1.7\",...line})]}):/*#__PURE__*/_jsx(\"path\",{d:\"M1.5 3.5 5 7l3.5-3.5\",...line});return /*#__PURE__*/_jsx(motion.svg,{width:ic.size,height:ic.size,viewBox:\"0 0 10 10\",\"aria-hidden\":\"true\",initial:false,animate:isCanvasNow()?undefined:{rotate:base+turn},transition:transition||{duration:0},style:{rotate:isCanvasNow()?base+turn:undefined,display:\"block\",flexShrink:0,overflow:\"visible\"},children:kids});}// Holds an icon or an arrow group. Alignment and X / Y offsets are pure\n// transforms, so they never shift anything around them.\nfunction IconBox({ic,children,style}){return /*#__PURE__*/_jsx(\"span\",{style:{position:\"relative\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0,alignSelf:flexAlign(ic.align),transform:ic.x||ic.y?\"translate(\"+ic.x+\"px, \"+ic.y+\"px)\":undefined,...style},children:children});}// The text part of a control. Its width glides to the new label, so arrows\n// and icons move smoothly and never jump. With \"Keep Icons Fixed\" it stays\n// as wide as the longest label, so icons never move at all.\nfunction TextSlot({labels,index,p,fixed,align,transition,enter}){const sizer=React.useRef(null);const live=useLive(transition);const[widths,setWidths]=React.useState([]);const key=labels.join(\"|\");useIsoLayoutEffect(()=>{const el=sizer.current;if(!el)return;const measure=()=>{const next=Array.from(el.children).map(c=>parseFloat(getComputedStyle(c).width)||0);setWidths(prev=>prev.length===next.length&&prev.every((v,i)=>Math.abs(v-next[i])<.01)?prev:next);};measure();const fonts=document.fonts;if(fonts&&fonts.ready)fonts.ready.then(measure);if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(measure);Array.from(el.children).forEach(c=>ro.observe(c));return()=>ro.disconnect();},[key]);const max=widths.length?Math.max(...widths):0;const w=fixed?max:widths[index];const width=w?Math.ceil(w*100)/100:undefined;const current=labels[index]||\"\";return /*#__PURE__*/_jsxs(motion.span,{initial:false,animate:{width:width!==undefined?width:\"auto\"},transition:live,style:{position:\"relative\",display:\"grid\",alignItems:\"center\",justifyItems:align===\"center\"?\"center\":align===\"end\"?\"end\":\"start\",flexShrink:1,minWidth:0,maxWidth:\"calc(var(--wm-avail, 100vw) - 40px)\",// Clips sideways only (while the width glides), never the\n// up / down slide of the label.\nclipPath:\"inset(-60% 0 -60% 0)\"},children:[/*#__PURE__*/_jsx(\"span\",{ref:sizer,\"aria-hidden\":\"true\",style:{position:\"absolute\",left:0,top:0,height:0,overflow:\"hidden\",visibility:\"hidden\",pointerEvents:\"none\"},children:labels.map((l,i)=>/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",width:\"max-content\",whiteSpace:\"nowrap\",...fontStyle(p.typography,true)},children:l},i+\":\"+l))}),/*#__PURE__*/_jsx(AnimatePresence,{mode:\"popLayout\",initial:false,custom:enter,children:/*#__PURE__*/_jsx(motion.span,{custom:enter,variants:{enter:e=>({opacity:0,x:e&&e.x||0,y:e&&e.y||0}),center:{opacity:1,x:0,y:0},exit:e=>({opacity:0,x:-(e&&e.x||0),y:-(e&&e.y||0),transition:{duration:.12}})},initial:\"enter\",animate:\"center\",exit:\"exit\",transition:transition,style:{gridArea:\"1 / 1\",display:\"block\",minWidth:0,maxWidth:\"100%\",whiteSpace:\"nowrap\"},children:/*#__PURE__*/_jsx(Label,{text:current,p:p,on:true,clip:true})},current)})]});}// ---------------------------------------------------------------------------\n// Grid icons\n// ---------------------------------------------------------------------------\n// \"Same as page\": the exact icons of your grid buttons.\nfunction SiteGlyph({cols,size}){// Drawn with plain boxes snapped to whole pixels: no anti-aliased\n// corner specks or shimmering edges (the old SVG squares had them).\nconst c=Math.floor(cols);const dense=cols%1>0;const S=Math.max(4,Math.round(size));const cell=(w,h,key,r)=>/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",width:w,height:h,borderRadius:r,background:\"currentColor\"}},key);const box=(kids,colsN,gap)=>/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{display:\"grid\",gridTemplateColumns:\"repeat(\"+colsN+\", max-content)\",gap,width:S,height:S,alignContent:\"center\",justifyContent:\"center\"},children:kids});const gap1=Math.max(1,Math.round(S*.087));const r=Math.round(S*.055*2)/2;if(c===1&&!dense)return box(cell(S,S,\"a\",r),1,0);if(c===2&&!dense){const w=Math.floor((S-gap1)/2);return box([cell(w,S,\"a\",r),cell(w,S,\"b\",r)],2,S-w*2);}if(c===4&&!dense||c===3){const w=Math.floor((S-gap1)/2);const g=S-w*2;return box([0,1,2,3].map(i=>cell(w,w,\"c\"+i,r)),2,g);}const g4=Math.max(1,Math.round(S*.09));const w4=Math.floor((S-g4*3)/4);const gg=Math.floor((S-w4*4)/3);return box(Array.from({length:16},(_,i)=>cell(w4,w4,\"d\"+i,w4>3?.5:0)),4,gg);}function GridGlyph({cols,style,size}){if(style===\"site\")return /*#__PURE__*/_jsx(SiteGlyph,{cols:cols,size:size});if(style===\"numbers\")return /*#__PURE__*/_jsx(\"span\",{style:{fontSize:size*.85,lineHeight:1,fontVariantNumeric:\"tabular-nums\"},children:Math.floor(cols)});const S=16;const c=Math.max(1,Math.min(Math.floor(cols),6));if(style===\"bars\"){const gap=c>4?1:1.6;const w=(S-gap*(c-1))/c;return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 \"+S+\" \"+S,\"aria-hidden\":\"true\",shapeRendering:\"geometricPrecision\",children:Array.from({length:c},(_,i)=>/*#__PURE__*/_jsx(\"rect\",{x:i*(w+gap),y:0,width:w,height:S,rx:Math.min(1.2,w/3),fill:\"currentColor\"},i))});}const rows=Math.round(cols%1*10)||(c===1?1:Math.min(c,4));const gap=c>4?1:c>2?1.5:2;const w=(S-gap*(c-1))/c;const h=(S-gap*(rows-1))/rows;const cells=[];for(let r=0;r<rows;r++)for(let i=0;i<c;i++){const x=i*(w+gap),y=r*(h+gap);if(style===\"dots\")cells.push(/*#__PURE__*/_jsx(\"circle\",{cx:x+w/2,cy:y+h/2,r:Math.max(.8,Math.min(w,h)/2.6),fill:\"currentColor\"},r+\"-\"+i));else if(style===\"outline\"&&c<=4)cells.push(/*#__PURE__*/_jsx(\"rect\",{x:x+.5,y:y+.5,width:Math.max(.5,w-1),height:Math.max(.5,h-1),rx:Math.min(1.5,w/4),fill:\"none\",stroke:\"currentColor\",strokeWidth:1},r+\"-\"+i));else cells.push(/*#__PURE__*/_jsx(\"rect\",{x:x,y:y,width:w,height:h,rx:Math.min(1.2,w/4),fill:\"currentColor\"},r+\"-\"+i));}return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 \"+S+\" \"+S,\"aria-hidden\":\"true\",shapeRendering:\"geometricPrecision\",children:cells});}function GridIcons({g,pal,options,active,onSelect,transition}){const size=g.size??15;const fixed=(g.sizeMode??\"fixed\")===\"fixed\";const button=Math.max(0,g.buttonSize??28);const bp=pad4(g.padding,[6,6,6,6]);const gp=pad4(g.groupPadding,[0,0,0,0]);const wrap=React.useRef(null);const refs=React.useRef([]);const box=useMarker(wrap,refs,active,options.join(\",\")+padCss(bp));return /*#__PURE__*/_jsxs(\"div\",{ref:wrap,role:\"group\",\"aria-label\":\"Grid size\",style:{// Isolated, stable layer for the icons (no pixel noise).\nisolation:\"isolate\",display:\"flex\",alignItems:\"center\",gap:Math.max(0,g.gap??4),padding:padCss(gp),position:\"relative\",borderRadius:999,// Transparent unless you pick a Background colour.\nbackground:g.background||\"transparent\"},children:[/*#__PURE__*/_jsx(Marker,{box:box,kind:(g.indicator??\"none\")===\"pill\"?\"pill\":\"none\",color:pal.gridIndicator,radius:999,padX:0,transition:transition}),options.map((cols,i)=>{const on=i===active;return /*#__PURE__*/_jsx(\"button\",{ref:n=>{refs.current[i]=n;},type:\"button\",className:\"wm-grid\",\"aria-pressed\":on,\"aria-label\":nativeGridColumns()[i]+(nativeGridColumns()[i]===1?\" column\":\" columns\"),onClick:()=>{if(!on)onSelect(i);},style:{all:\"unset\",boxSizing:\"border-box\",position:\"relative\",...fixed?{width:Math.max(button,size),height:Math.max(button,size)}:{padding:padCss(bp)},display:\"grid\",placeItems:\"center\",flexShrink:0,cursor:\"pointer\",borderRadius:999,background:\"transparent\",color:on?pal.gridActive:pal.gridInactive,transition:\"color .3s ease\",touchAction:\"manipulation\",WebkitTapHighlightColor:\"transparent\"},children:/*#__PURE__*/_jsx(GridGlyph,{cols:cols,style:g.style||\"site\",size:size})},i+\":\"+cols);})]});}// The panel's simple folders (Spacing, Glass, Arrows & Icons) map onto the\n// settings every layout already reads, so nothing is duplicated.\nfunction normalize(p){const sp=p.spacing;if(!sp)return p;const s={...p.surface||{}};if(sp.framePadding)s.inset=sp.framePadding;const items={...p.items||{}};if(sp.itemPadding)items.padding=sp.itemPadding;if(typeof sp.itemGap===\"number\")items.gap=sp.itemGap;const grid={...p.grid||{}};if(typeof sp.gridSpacing===\"number\")grid.spacing=sp.gridSpacing;if(typeof sp.iconGap===\"number\")grid.gap=sp.iconGap;if(typeof sp.divider===\"boolean\")grid.divider=sp.divider;if(typeof sp.dividerInset===\"number\")grid.dividerInset=sp.dividerInset;grid.groupPadding=\"0px\";const same=sp.paddingMode!==\"separate\";const frames={...p.frames||{},separate:!!sp.separate,gap:sp.frameGap,menuPadding:same?sp.framePadding:sp.menuPadding,gridPadding:same?sp.framePadding:sp.gridPadding};if(s.gridStyle)frames.gridStyle=s.gridStyle;if(s.gridTint)frames.gridTint=s.gridTint;if(typeof s.gridRadius===\"number\")frames.gridRadius=s.gridRadius;const ic=p.icons||{};const expand={...p.expand||{}};if(typeof ic.dotSize===\"number\")expand.dotSize=ic.dotSize;if(typeof ic.dotGap===\"number\")expand.dotGap=ic.dotGap;return{...p,surface:s,items,grid,frames,expand};}// ---------------------------------------------------------------------------\n// The simple panel → the engine. Every folder in the right panel is mapped\n// here onto the settings the layouts read, so each value exists only once.\n//   Spacing: one Padding + one Gap (two of each when Frames = Two).\n// ---------------------------------------------------------------------------\nfunction fromSimple(s){const po=s.place||{};const sp=s.spacing||{};const co=s.colours||{};// Colours folder (falls back to the old Style colour fields).\nconst lk={...s.look||{},...s.colours?{colors:!!co.custom,text:co.text,activeText:co.activeText,pill:co.pill,tint:co.tint,border:co.border}:{}};const gr=s.grid||{};const op=s.options||{};const mo=s.motion||{};const ix=s.interaction||{};const cv=s.canvas||{};const src=s.source||{};const cs=s.corners||{};const hl=s.highlight||{};const two=!!sp.separate;const pad=sp.padding||\"5px\";const gap=Math.max(0,num(sp.gap,4));const gridPad=two?sp.gridPadding||pad:pad;const gridGap=two?Math.max(0,num(sp.gridGap,gap)):gap;const itemPadding=sp.itemPadding||\"8px 14px 8px 14px\";const glass=lk.glass||\"savee\";const custom=!!lk.colors;// Corner Styling (falls back to the old Style → Radius until changed).\nconst oldR=Math.max(0,num(lk.radius,999));const isDef=v=>v===undefined||v===null||String(v).trim()===\"\"||String(v).replace(/\\s+/g,\"\")===\"999px\";const useOld=isDef(cs.radius)&&oldR!==999;const menuC=(useOld?[oldR,oldR,oldR,oldR]:pad4(cs.radius,[999,999,999,999])).map(v=>Math.max(0,v));const gridC=(!two?menuC:isDef(cs.gridRadius)?menuC:pad4(cs.gridRadius,menuC)).map(v=>Math.max(0,v));const radius=cornersMax(menuC);const shape=cs.shape===\"squircle\"?\"squircle\":\"round\";const smooth=clamp(num(cs.smoothing,60),0,100)/100;const gridSmooth=two?clamp(num(cs.gridSmoothing,num(cs.smoothing,60)),0,100)/100:smooth;const shadow=Math.max(0,num(lk.shadow,.12));const clear=c=>!c||/rgba\\([^)]*,\\s*0\\)$/.test(String(c).replace(/\\s+/g,\" \"));const surface=glass===\"savee\"?{style:\"savee\",saveeBlur:Math.max(0,num(lk.blur,50)),saveeColors:!custom,saveeLight:co.glassLight,saveeDark:co.glassDark,saveeBorder:lk.border,radius,shadow}:{style:glass,tint:lk.tint,blur:Math.max(0,num(lk.blur,24)),border:clear(lk.border)?glass===\"outline\"?TOKEN_LINE:\"transparent\":lk.border,radius,shadow};surface.inset=pad;surface.corners=menuC;surface.shape=shape;surface.smooth=smooth;// Highlight: Always / When Open / Hidden, its style and colours (the\n// old Colours → Highlight values are used until you change these).\nconst HL_L=\"rgba(10, 10, 10, 0.07)\";const HL_D=\"rgba(255, 255, 255, 0.09)\";const sameC=(x,y)=>String(x||\"\").replace(/\\s+/g,\"\")===y.replace(/\\s+/g,\"\");const hlPick=(x,old,def)=>x&&!sameC(x,def)?x:old||x||def;surface.indLight=hlPick(hl.light,co.highlightLight,HL_L);surface.indDark=hlPick(hl.dark,co.highlightDark,HL_D);const hlShow=hl.show===\"open\"||hl.show===\"hidden\"?hl.show:\"always\";const oldA=lk.active;const hlStyle=hl.style&&hl.style!==\"pill\"?hl.style:oldA===\"underline\"||oldA===\"dot\"?oldA:\"pill\";const noHl=hlShow===\"hidden\";const labelGap=Math.max(0,num(sp.labelGap,12));const ip4=pad4(itemPadding,[8,14,8,14]);const colours=custom?{activeColor:lk.activeText,inactiveColor:lk.text,hoverColor:co.hover||lk.activeText,lineColor:co.divider}:{};const cols=(gr.columns||\"\").trim();// Text Align: Auto keeps each layout's natural alignment.\nconst ta=lk.textAlign||\"auto\";const al3=auto=>ta===\"left\"?\"start\":ta===\"right\"?\"end\":ta===\"center\"?\"center\":auto;return{mode:s.mode||\"bar\",style:s.style,source:{anchor:src.anchor||\"Center Buttons\",activeName:src.activeName||\"Active\",sort:src.sort||\"cms\",hide:src.hide||\"\"},placement:{position:po.position||\"bottom\",align:po.align||\"center\",offset:Math.max(0,num(po.offset,24)),sideOffset:Math.max(0,num(po.offset,24)),widthMode:po.width||\"fit\",width:num(po.fixedWidth,560),margin:Math.max(0,num(po.offset,24)),maxWidth:Math.max(0,num(po.maxWidth,0)),steadyMobile:(mo.steady??po.steady)!==false,zIndex:50},surface,items:{// Highlight Hidden: labels sit closer — only Label Gap between.\npadding:noHl?padCss([ip4[0],0,ip4[2],0]):itemPadding,gap:noHl?labelGap:gap,indicator:noHl?\"none\":hlStyle,highlightWhen:hlShow,hlHover:hlShow===\"open\"&&hl.others===\"hover\",hlCorners:hl.corners===\"custom\"?pad4(hl.radius,[8,8,8,8]).map(v=>Math.max(0,v)):undefined,hlShape:hl.shape===\"squircle\"?\"squircle\":\"round\",hlSmooth:clamp(num(hl.smoothing,60),0,100)/100,hlGrowX:num(hl.growX,0),hlGrowY:num(hl.growY,0),radiusMode:\"auto\",align:al3(\"center\"),textAlignRaw:ta,activeAlign:\"center\",fadeEdges:true,dots:lk.dots!==false,indicatorColor:\"var(--wm-sv-ind)\",...colours},icons:{style:op.arrowStyle||\"chevron\",size:num(op.arrowSize,10),stroke:1.3,gap:Math.max(0,num(op.arrowGap,10)),prefixGap:Math.max(0,num(op.arrowGap,10)),pairGap:2,fixed:!!op.fixedArrows,x:0,y:num(op.arrowY,0),textAlign:al3(\"start\"),align:\"center\",wheelArrows:op.wheelArrows||\"none\",wheelSide:\"end\",wheelClickable:true,dotSize:3,dotGap:3},dropdown:{style:op.ddStyle||\"panel\",...{button:op.ddButton===\"fill\"?\"fill\":\"fit\"},direction:op.opens||\"auto\",label:op.prefix||\"\",widthMode:\"menu\",// The panel follows Position → Align (no sliding when the\n// label width changes).\nalign:po.align===\"left\"?\"start\":po.align===\"right\"?\"end\":\"center\",offset:gap,padding:pad,itemPadding,itemGap:noHl?labelGap:gap,itemAlign:al3(\"start\"),maxHeight:420,check:lk.dots!==false,closeDelay:140},wheel:{sizing:\"rows\",rows:op.rows||3,padding:itemPadding,fadeIntensity:num(op.fade,100),fadeStart:25,fadeEnd:100,depth:.06,snapping:op.snapping!==false,momentum:num(op.momentum,.35),align:ta===\"auto\"?\"center\":ta},expand:{keepOpen:op.keepOpen!==false,outsideClose:true,closeDelay:num(op.closeAfter,380),fitOpen:op.openWidth!==\"fixed\",openText:op.openText||\"natural\"},grid:{show:gr.show!==false,position:gr.side||\"right\",style:gr.icons||\"site\",size:num(gr.size,15),sizeMode:\"fixed\",buttonSize:num(gr.button,28),icons3:cols||undefined,iconsTablet:cols||undefined,iconsPhone:cols||undefined,icons2:\"1, 2\",spacing:gap,gap:gridGap,divider:lk.divider!==false,dividerInset:7,indicator:\"none\",groupPadding:\"0px\",...custom?{activeColor:co.gridActive||lk.activeText,inactiveColor:co.gridIcon||lk.text}:{}},frames:{separate:two,gap:Math.max(0,num(sp.framesGap,8)),menuPadding:pad,gridPadding:gridPad,gridRadius:cornersMax(gridC),gridCorners:gridC,gridSmooth,gridStyle:\"same\"},typography:{font:lk.font,activeWeight:num(lk.activeWeight,0),optical:lk.optical!==false,textY:num(lk.textY,0)},motion:{transition:mo.transition||DEFAULT_TRANSITION,appear:mo.appear!==false,scrollToGrid:mo.scrollToGrid!==false,scrollOffset:120,farSwitch:mo.farSwitch===\"scroll\"?\"scroll\":\"fade\",continuousMedia:mo.continuousMedia===true},scroll:{hideOnScroll:!!mo.hideOnScroll,hideStyle:mo.hideStyle||\"slideFade\",hideTransition:mo.hideTransition,showTransition:mo.transition||DEFAULT_TRANSITION},interaction:{touchDrag:ix.touchDrag!==false,mouseDrag:ix.mouseDrag!==false,wheelScroll:true,swipe:ix.swipe!==false},feedback:{haptics:ix.haptics!==false,strength:\"light\",sound:!!ix.sound,soundStyle:\"tick\",volume:.18,wheelTicks:true},canvas:{state:cv.state||\"default\",active:num(cv.active,1),labels:cv.labels,device:\"auto\"}};}// Applies the Breakpoints section (Tablet / Phone overrides): layout,\n// width (Fit / Fixed / Fill), fixed width, max width and Steady on Scroll.\nfunction applyDevice(p,device){if(device===\"desktop\")return p;const r=p.responsive||{};const phone=device===\"phone\";const mode=phone?r.phoneMode:r.tabletMode;const width=phone?r.phoneWidth:r.tabletWidth;const fixedW=phone?r.phoneFixedWidth:r.tabletFixedWidth;const maxW=phone?r.phoneMaxWidth:r.tabletMaxWidth;const margin=phone?r.phoneMargin:r.tabletMargin;const steady=phone?r.phoneSteady:r.tabletSteady;const pl={...p.placement||{}};if(width&&width!==\"same\")pl.widthMode=width;if(typeof fixedW===\"number\"&&fixedW>0)pl.width=fixedW;if(typeof maxW===\"number\"&&maxW>0)pl.maxWidth=maxW;if(typeof margin===\"number\"&&width===\"fill\")pl.margin=margin;if(steady===\"on\")pl.steadyMobile=true;else if(steady===\"off\")pl.steadyMobile=false;const next={...p,placement:pl};if(mode&&mode!==\"same\")next.mode=mode;return next;}const DEFAULT_TRANSITION={type:\"spring\",stiffness:420,damping:46,mass:1};// ---------------------------------------------------------------------------\n// Visibility on scroll\n// ---------------------------------------------------------------------------\n// Scroll down past \"Hide After\" (in one go) hides it, scrolling up past\n// \"Show After Up\" brings it back — or only near the top (\"At Top Only\").\nfunction useScrollVisibility(enabled,m){const hideOn=!!m.hideOnScroll;const showAfter=Math.max(0,num(m.showAfter,0));const down=Math.max(0,num(m.hideThreshold,24));const up=Math.max(0,num(m.showThreshold,8));const reveal=m.revealOn===\"top\"?\"top\":\"up\";const topZone=Math.max(0,num(m.topZone,80));const endZone=Math.min(95,Math.max(0,num(m.endZone,60)));const[visible,setVisible]=React.useState(true);const[inGrid,setInGrid]=React.useState(true);React.useEffect(()=>{if(!enabled||!isBrowser){setVisible(true);setInGrid(true);return;}let last=Math.max(0,window.scrollY);let travel=0;let frame=0;let shown=true;let switching=false;const start=()=>{switching=true;travel=0;};const end=()=>{switching=false;last=Math.max(0,window.scrollY);travel=0;onScroll();};setVisible(true);const set=v=>{if(v===shown)return;shown=v;setVisible(v);};const update=()=>{frame=0;const y=Math.max(0,window.scrollY);const dy=y-last;last=y;// A grid switch keeping your project in place moves the page by\n// code. That is not you scrolling: the menu stays exactly as is.\nif(switching||performance.now()<(window.__wmProgrammaticUntil||0)){travel=0;return;}const grid=Array.from(document.querySelectorAll('[data-grid-scroll-root=\"true\"]')).find(e=>e.offsetWidth>0);if(grid){const bounds=grid.getBoundingClientRect();// Visibility follows the rendered grid, including native Flow.\n// Fades out a little before the last row leaves the screen, so it\n// never floats over the section or footer that follows the grid.\nconst end=Math.min(Math.max(80,window.innerHeight*(1-endZone/100)),bounds.height/2);if(bounds.bottom<=end||bounds.top>=window.innerHeight){setInGrid(false);travel=0;return set(false);}}setInGrid(true);if(y<showAfter){travel=0;return set(false);}if(!hideOn)return set(true);if(y<=topZone){travel=0;return set(true);}if(!dy)return;if(dy>0!==travel>0)travel=0;travel+=dy;if(travel>=down)set(false);else if(-travel>=up&&reveal===\"up\")set(true);};const onScroll=()=>{if(!frame)frame=requestAnimationFrame(update);};update();window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",onScroll);window.addEventListener(\"wm-grid-switch-start\",start);window.addEventListener(\"wm-grid-switch-end\",end);window.addEventListener(CATEGORY_SCROLL_START,start);window.addEventListener(CATEGORY_SCROLL_END,end);return()=>{window.removeEventListener(\"resize\",onScroll);window.removeEventListener(\"wm-grid-switch-start\",start);window.removeEventListener(\"wm-grid-switch-end\",end);window.removeEventListener(CATEGORY_SCROLL_START,start);window.removeEventListener(CATEGORY_SCROLL_END,end);window.removeEventListener(\"scroll\",onScroll);cancelAnimationFrame(frame);};},[enabled,hideOn,showAfter,down,up,reveal,topZone,endZone]);return{visible,inGrid};}// Item padding: Framer-style linked / individual padding.\nfunction itemPad(p){const it=p.items||{};const y=it.paddingY??8,x=it.paddingX??14;return pad4(it.padding,[y,x,y,x]);}function itemStyle(p,pal,on){const it=p.items||{};return{all:\"unset\",boxSizing:\"border-box\",position:\"relative\",flexShrink:0,cursor:\"pointer\",whiteSpace:\"nowrap\",padding:padCss(itemPad(p)),borderRadius:it.indicatorRadius??999,color:on?pal.active:pal.inactive,transition:\"color .3s ease\",...fontStyle(p.typography,on),userSelect:\"none\",WebkitUserSelect:\"none\",touchAction:\"manipulation\",WebkitTapHighlightColor:\"transparent\"};}// Line height of the menu text in px (for the Wheel's automatic row height).\nfunction lineBox(t={}){const f=t.font||{};const size=typeof f.fontSize===\"number\"?f.fontSize:parseFloat(f.fontSize)||15;const lh=f.lineHeight;let line=size*1.2;if(typeof lh===\"number\")line=lh>4?lh:size*lh;else if(typeof lh===\"string\"){const v=parseFloat(lh);if(Number.isFinite(v))line=/px$/.test(lh)?v:/%$/.test(lh)?size*v/100:v>4?v:size*v;}return Math.round(line);}// Optical centring: fonts sit text slightly low in their line box (more\n// space for descenders than above the capitals). This measures the font\n// and moves the text so the capitals sit exactly in the middle — equal\n// space above and below. Text Y adds your own fine adjustment.\nconst opticalCache=new Map;function opticalShift(t={}){if(!isBrowser)return 0;const st=fontStyle(t,false);const size=typeof st.fontSize===\"number\"?st.fontSize:parseFloat(String(st.fontSize))||15;const fam=String(st.fontFamily||\"sans-serif\");const axes=t&&t.axes||[];const wAxis=axes.find(a=>a&&a.tag===\"wght\");const weight=t&&t.font&&t.font.fontWeight||(wAxis?wAxis.value:400);const key=weight+\"|\"+size+\"|\"+fam+\"|\"+String(st.lineHeight);const cached=opticalCache.get(key);if(cached!==undefined)return cached;try{const c=document.createElement(\"canvas\").getContext(\"2d\");if(!c)return 0;c.font=weight+\" \"+size+\"px \"+fam;const m=c.measureText(\"H\");const A=m.fontBoundingBoxAscent;const D=m.fontBoundingBoxDescent;const cap=m.actualBoundingBoxAscent;if(!A||!cap)return 0;const L=lineBox(t);const baseline=(L-(A+D))/2+A;const shift=Math.round((L/2-(baseline-cap/2))*100)/100;const fonts=document.fonts;if(!fonts||fonts.status===\"loaded\")opticalCache.set(key,shift);return shift;}catch{return 0;}}function textShift(p){const t=p.typography||{};return(t.optical!==false?opticalShift(t):0)+num(t.textY,0);}function Label({text,p,on,clip}){return /*#__PURE__*/_jsx(\"span\",{style:{position:\"relative\",zIndex:1,// clip: long labels end with … instead of overflowing.\n...clip?{display:\"block\",minWidth:0,maxWidth:\"100%\",overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"}:null,...fontStyle(p.typography,on),color:\"inherit\",top:textShift(p)||undefined},children:text});}// 1. Bar — horizontal, scrolls left / right (touch swipe, mouse drag, wheel)\nfunction BarLayout({labels,active,onSelect,p,pal,transition,pv,onNatural}){const track=React.useRef(null);const content=React.useRef(null);const refs=React.useRef([]);const[edges,setEdges]=React.useState({left:false,right:false});const box=useMarker(content,refs,active,labels.join(\"|\"));const ix=p.interaction||{};const touchDrag=ix.touchDrag!==false;const mouseDrag=ix.mouseDrag!==false;const wheelScroll=ix.wheelScroll!==false;const drag=React.useRef(null);const suppress=React.useRef(false);const measure=React.useCallback(()=>{const el=track.current;if(!el)return;const left=el.scrollLeft>2;const right=el.scrollLeft+el.clientWidth<el.scrollWidth-2;setEdges(e=>e.left===left&&e.right===right?e:{left,right});},[]);React.useEffect(()=>{const el=track.current;if(!el)return;measure();const ro=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(measure):null;ro?.observe(el);if(content.current)ro?.observe(content.current);const onWheel=e=>{if(!wheelScroll||el.scrollWidth<=el.clientWidth+1)return;if(Math.abs(e.deltaY)>Math.abs(e.deltaX)){el.scrollLeft+=e.deltaY;e.preventDefault();}};el.addEventListener(\"wheel\",onWheel,{passive:false});return()=>{ro?.disconnect();el.removeEventListener(\"wheel\",onWheel);};},[measure,labels.length,wheelScroll]);// Natural width of all categories (for Expand → Open Width: Fit All).\nReact.useEffect(()=>{if(!onNatural)return;const el=content.current;if(!el)return;const m=()=>{const b=Array.from(el.querySelectorAll('[role=\"tab\"]'));if(!b.length)return;const g=Math.max(0,num((p.items||{}).gap,2));onNatural(Math.ceil(b.reduce((a,x)=>a+x.offsetWidth,0)+g*(b.length-1)+2*hlRoom(p.items).mx));};m();const fonts=document.fonts;if(fonts&&fonts.ready)fonts.ready.then(m);if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(m);ro.observe(el);Array.from(el.children).forEach(x=>ro.observe(x));return()=>ro.disconnect();},[onNatural,labels.join(\"|\")]);const scrolledOnce=React.useRef(false);// Keep the active item in view, centred.\nReact.useEffect(()=>{const el=track.current,item=refs.current[active];if(!el||!item||el.scrollWidth<=el.clientWidth+1)return;const where=(p.items||{}).activeAlign||\"center\";const pad=2;let left=item.offsetLeft-(el.clientWidth-item.offsetWidth)/2;if(where===\"start\")left=item.offsetLeft-pad;else if(where===\"end\")left=item.offsetLeft+item.offsetWidth-el.clientWidth+pad;else if(where===\"none\"){const a=item.offsetLeft;const b=a+item.offsetWidth;if(a>=el.scrollLeft&&b<=el.scrollLeft+el.clientWidth)return;left=a<el.scrollLeft?a-pad:b-el.clientWidth+pad;}el.scrollTo({left,behavior:scrolledOnce.current?\"smooth\":\"auto\"});scrolledOnce.current=true;},[active,labels.length]);// Horizontal dragging with a mouse / trackpad click.\nconst onPointerDown=e=>{const el=track.current;if(!el||!mouseDrag||e.pointerType!==\"mouse\"||e.button!==0)return;if(el.scrollWidth<=el.clientWidth+1)return;drag.current={x:e.clientX,left:el.scrollLeft,moved:false,id:e.pointerId};};const onPointerMove=e=>{const d=drag.current,el=track.current;if(!d||!el||e.pointerId!==d.id)return;const dx=e.clientX-d.x;if(!d.moved){if(Math.abs(dx)<5)return;d.moved=true;try{el.setPointerCapture(d.id);}catch{}el.setAttribute(\"data-dragging\",\"\");}el.scrollLeft=d.left-dx;};const endDrag=()=>{const d=drag.current,el=track.current;drag.current=null;if(!d||!el||!d.moved)return;// The click that ends a drag must not select a category.\nsuppress.current=true;window.setTimeout(()=>suppress.current=false,0);el.removeAttribute(\"data-dragging\");try{el.releasePointerCapture(d.id);}catch{}};const it=p.items||{};const ip=itemPad(p);const fade=it.fadeEdges!==false;const mask=fade&&(edges.left||edges.right)?\"linear-gradient(90deg, \"+(edges.left?\"transparent 0, #000 28px\":\"#000 0\")+\", \"+(edges.right?\"#000 calc(100% - 28px), transparent 100%\":\"#000 100%\")+\")\":undefined;const scrollable=edges.left||edges.right;return /*#__PURE__*/_jsx(\"div\",{ref:track,className:\"wm-track\",onScroll:measure,onPointerDown:onPointerDown,onPointerMove:onPointerMove,onPointerUp:endDrag,onPointerCancel:endDrag,onLostPointerCapture:endDrag,onClickCapture:e=>{if(!suppress.current)return;suppress.current=false;e.preventDefault();e.stopPropagation();},style:{overflowX:\"auto\",overflowY:\"hidden\",scrollbarWidth:\"none\",maxWidth:\"100%\",minWidth:0,flex:\"1 1 auto\",WebkitMaskImage:mask,maskImage:mask,overscrollBehaviorX:\"contain\",// Touch Dragging off: a finger can only scroll the page.\ntouchAction:touchDrag?\"pan-x pan-y\":\"pan-y\",cursor:mouseDrag&&scrollable?\"grab\":undefined},children:/*#__PURE__*/_jsxs(\"div\",{ref:content,role:\"tablist\",\"aria-label\":\"Categories\",style:{position:\"relative\",padding:hlRoom(it).my+\"px \"+hlRoom(it).mx+\"px\",display:\"flex\",alignItems:\"center\",gap:Math.max(0,it.gap??2),width:\"max-content\",minWidth:\"100%\",justifyContent:it.align===\"center\"?\"center\":it.align===\"spread\"?\"space-between\":it.align===\"end\"?\"flex-end\":\"flex-start\"},children:[/*#__PURE__*/_jsx(Marker,{it:it,box:box,kind:it.indicator??\"pill\",color:(it.indicator??\"pill\")===\"pill\"?pal.indicator:pal.active,radius:it.indicatorRadius??999,padX:Math.min(ip[1],ip[3]),transition:transition}),labels.map((label,i)=>{const on=i===active;return /*#__PURE__*/_jsx(\"button\",{ref:n=>{refs.current[i]=n;},type:\"button\",role:\"tab\",\"aria-selected\":on,className:\"wm-item\",\"data-on\":on?\"\":undefined,onClick:()=>onSelect(i),style:{...itemStyle(p,pal,on),...pv&&i===pv.hover&&!on?{color:pal.hover}:null,...it.align===\"fill\"?{flex:\"1 0 auto\",textAlign:\"center\"}:null,cursor:\"pointer\"},children:/*#__PURE__*/_jsx(Label,{text:label,p:p,on:on})},label);})]})});}// 2. Dropdown — two styles:\n//    Panel        the original: a separate glass panel opens next to the\n//                 menu, picks the side with room, own padding / gaps / width.\n//    Expand Menu  the menu frame itself grows from its edge (up at the bottom\n//                 of the screen, down at the top) and reveals the items\n//                 inside: one continuous glass, same radius, no gap.\nfunction DropdownLayout({labels,active,onSelect,p,pal,transition,edge,navRef,setExtend,pv}){const geometry=React.useContext(DropdownGeometry);const closeTimer=React.useRef(0);const[openState,setOpen]=React.useState(false);React.useEffect(()=>()=>window.clearTimeout(closeTimer.current),[]);const changeOpen=next=>{window.clearTimeout(closeTimer.current);setOpen(next);};const open=openState||!!(pv&&pv.open);const d=p.dropdown||{};const it=p.items||{};const ic=iconsOf(p);const integrated=d.style===\"expand\";// Button: Fit (text + arrow together) or Fill (text left, arrow right).\nconst fillBtn=d.button===\"fill\";const dt=d.transition||transition;const[up,setUp]=React.useState(d.direction===\"up\"||d.direction!==\"down\"&&edge===\"bottom\");const[room,setRoom]=React.useState(0);const[contentH,setContentH]=React.useState(0);const root=React.useRef(null);const list=React.useRef(null);const refs=React.useRef([]);const offset=integrated?0:Math.max(0,d.offset??8);const want=d.maxHeight??360;const closeDelay=Math.max(0,num(d.closeDelay,140));const box=useMarker(list,refs,active,open+labels.join(\"|\")+(d.itemPadding||\"\")+(d.padding||\"\")+contentH);// Direction is chosen while closed and kept while open: the panel and\n// the arrow never flip, even when Safari's bar resizes the screen.\nconst upRef=React.useRef(up);upRef.current=up;const[panelW,setPanelW]=React.useState(0);const place=React.useCallback(keepDir=>{const nav=navRef.current;if(!nav||!isBrowser)return;const r=nav.getBoundingClientRect();const above=r.top-offset-12;const below=window.innerHeight-r.bottom-offset-12;const enough=Math.min(want,200);const goUp=keepDir===true?upRef.current:d.direction===\"up\"?true:d.direction===\"down\"?false:edge===\"bottom\"?above>=enough||above>below:!(below>=enough||below>=above);if(goUp!==upRef.current)setUp(goUp);setRoom(Math.max(120,Math.round(goUp?above:below)));// The panel keeps the width it opened with: no resizing or\n// sliding while the label beside the arrow changes.\nconst host=root.current&&root.current.offsetParent;if(keepDir!==true&&host)setPanelW(host.offsetWidth);},[navRef,offset,want,d.direction,edge]);React.useEffect(()=>{if(open||!isBrowser)return;let raf=0;const on=()=>{if(!raf)raf=requestAnimationFrame(()=>{raf=0;place();});};on();window.addEventListener(\"scroll\",on,{passive:true});window.addEventListener(\"resize\",on);return()=>{cancelAnimationFrame(raf);window.removeEventListener(\"scroll\",on);window.removeEventListener(\"resize\",on);};},[open,place]);useIsoLayoutEffect(()=>{if(open)place();},[open,place]);React.useEffect(()=>{if(!open)return;const outside=e=>{// Presses the menu makes on your hidden page list are not real\n// clicks, so they never close it.\nif(!e.isTrusted)return;if(root.current&&!root.current.contains(e.target))setOpen(false);};const key=e=>e.key===\"Escape\"&&setOpen(false);document.addEventListener(\"pointerdown\",outside,true);const onResize=()=>place(true);document.addEventListener(\"keydown\",key);window.addEventListener(\"resize\",onResize);return()=>{document.removeEventListener(\"pointerdown\",outside,true);document.removeEventListener(\"keydown\",key);window.removeEventListener(\"resize\",onResize);};},[open,place]);// Expand Menu: natural height of the items, then the frame grows by\n// exactly that much (capped by Max Height and the room on screen).\nconst maxH=Math.max(0,Math.min(want,room||want));const panelH=Math.min(contentH,maxH);useIsoLayoutEffect(()=>{if(!integrated)return;const el=list.current;if(!el)return;const m=()=>setContentH(el.scrollHeight);m();if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(m);ro.observe(el);Array.from(el.children).forEach(c=>ro.observe(c));return()=>ro.disconnect();},[integrated,labels.join(\"|\"),d.itemPadding,d.padding,d.itemGap]);useIsoLayoutEffect(()=>{setExtend(integrated&&open?panelH:0,up);},[integrated,open,panelH,up,setExtend]);React.useEffect(()=>()=>setExtend(0,true),[setExtend]);const surfaceR=p.surface?.radius??999;const panelR=d.radius&&d.radius>0?d.radius:Math.min(surfaceR,22);// Corner Styling: the panel follows each corner too (capped by the\n// panel radius).\nconst sc4=p.surface?.corners;const pc=i=>sc4?Math.min(sc4[i],panelR):panelR;const panelC=[pc(0),pc(1),pc(2),pc(3)];const panelPad=pad4(d.padding,[6,6,6,6]);const ip=pad4(d.itemPadding,[10,14,10,14]);const itemR=it.radiusMode===\"custom\"?Math.min(it.indicatorRadius??999,panelR):Math.max(0,panelR-Math.min(panelPad[0],panelPad[3]));const dots=it.dots!==false&&d.check!==false;const dotStart=d.dotSide===\"start\";const center=d.itemAlign===\"center\";const endA=d.itemAlign===\"end\";const widthMode=d.widthMode||\"menu\";const align=d.align||\"center\";const originX=align===\"start\"?\"0%\":align===\"end\"?\"100%\":\"50%\";const choose=i=>{window.clearTimeout(closeTimer.current);onSelect(i);closeTimer.current=window.setTimeout(()=>setOpen(false),closeDelay);};const listStyle={boxSizing:\"border-box\",overflowY:\"auto\",overscrollBehavior:\"contain\",scrollbarWidth:\"none\",display:\"flex\",flexDirection:\"column\",gap:Math.max(0,num(d.itemGap,2)),padding:padCss(panelPad)};const items=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Marker,{it:it,box:box,kind:(it.indicator??\"pill\")===\"pill\"?\"pill\":\"none\",color:pal.indicator,radius:itemR,padX:0,transition:transition}),labels.map((label,i)=>{const on=i===active;return /*#__PURE__*/_jsxs(\"button\",{ref:n=>{refs.current[i]=n;},type:\"button\",role:\"option\",\"aria-selected\":on,tabIndex:open?0:-1,className:\"wm-item\",\"data-on\":on?\"\":undefined,onClick:()=>choose(i),style:{...itemStyle(p,pal,on),...pv&&i===pv.hover&&!on?{color:pal.hover}:null,padding:padCss(ip),borderRadius:itemR,display:\"flex\",alignItems:\"center\",justifyContent:center?\"center\":endA?\"flex-end\":\"flex-start\",gap:ic.gap,width:\"100%\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{position:\"relative\",flex:center||endA?\"0 1 auto\":\"1 1 auto\",minWidth:0,overflow:\"hidden\",textOverflow:\"ellipsis\",textAlign:center?\"center\":endA?\"right\":\"left\"},children:/*#__PURE__*/_jsx(Label,{text:label,p:p,on:on})}),dots&&/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{position:\"relative\",order:dotStart?-1:1,width:5,height:5,borderRadius:5,flexShrink:0,background:\"currentColor\",opacity:on?1:0,transition:\"opacity .25s ease\"}})]},label);})]});return /*#__PURE__*/_jsxs(\"div\",{ref:root,style:{display:\"flex\",minWidth:0,// Button → Fill: spans the whole menu frame.\nflex:fillBtn?\"1 1 auto\":undefined,width:fillBtn?\"100%\":undefined},children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"wm-item\",\"data-on\":\"\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":open,onClick:()=>changeOpen(!open),style:{...itemStyle(p,pal,true),display:\"flex\",alignItems:\"center\",gap:0,flex:fillBtn?\"1 1 auto\":undefined,width:fillBtn?\"100%\":undefined,minWidth:0},children:[d.label?/*#__PURE__*/_jsx(\"span\",{style:{position:\"relative\",zIndex:1,color:pal.inactive,whiteSpace:\"nowrap\",marginRight:ic.prefixGap},children:d.label}):null,/*#__PURE__*/_jsx(TextSlot,{labels:labels,index:active,p:p,fixed:ic.fixed||integrated,align:ic.textAlign,transition:transition,enter:{y:up?8:-8}}),/*#__PURE__*/_jsx(IconBox,{ic:ic,style:fillBtn?{marginLeft:\"auto\",paddingLeft:ic.gap}:{marginLeft:ic.gap},children:/*#__PURE__*/_jsx(ArrowGlyph,{dir:up?\"up\":\"down\",ic:ic,turn:open?180:0,transition:transition})})]}),integrated?/*#__PURE__*/_jsx(motion.div,{initial:false,animate:isCanvasNow()||geometry?undefined:{height:open?panelH:0},transition:dt,\"aria-hidden\":open?undefined:\"true\",style:{// Starts exactly at the frame edge (no gap) and\n// grows with the glass, in the same motion.\nposition:\"absolute\",left:0,right:0,[up?\"bottom\":\"top\"]:\"100%\",height:isCanvasNow()?open?panelH:0:geometry?.height||0,overflow:\"hidden\",zIndex:2,// Safari: its own layer, so the items are always drawn above the\n// glass (rounded clip + fading items could vanish).\nisolation:\"isolate\",transform:\"translateZ(0)\",WebkitTransform:\"translateZ(0)\",WebkitBackfaceVisibility:\"hidden\",pointerEvents:open?\"auto\":\"none\",// Round the FULL panel silhouette, including the button.\n// Rounding only this shrinking list box clamps the radii\n// near zero height and leaks a final row over the glass.\nclipPath:geometry?\"inset(\"+(up?\"0px 0px -\"+geometry.baseHeight+\"px 0px\":\"-\"+geometry.baseHeight+\"px 0px 0px 0px\")+\" round \"+cornersCss(panelC)+\")\":undefined,borderTopLeftRadius:!geometry&&up?panelC[0]:0,borderTopRightRadius:!geometry&&up?panelC[1]:0,borderBottomLeftRadius:!geometry&&!up?panelC[3]:0,borderBottomRightRadius:!geometry&&!up?panelC[2]:0},children:/*#__PURE__*/_jsx(motion.div,{ref:list,role:\"listbox\",className:\"wm-track\",style:{...listStyle,transform:\"translateZ(0)\",WebkitTransform:\"translateZ(0)\",position:\"absolute\",left:0,right:0,[up?\"bottom\":\"top\"]:0,maxHeight:maxH},children:items})}):/*#__PURE__*/_jsx(AnimatePresence,{initial:false,children:open&&/*#__PURE__*/_jsxs(motion.div,{variants:{closed:{y:up?6:-6,scale:.97},open:{y:0,scale:1}},initial:isCanvasNow()?false:\"closed\",animate:\"open\",exit:\"closed\",transition:transition,style:{// Anchored to the whole menu (not the\n// label), so it lines up on every screen.\nposition:\"absolute\",[up?\"bottom\":\"top\"]:\"calc(100% + \"+offset+\"px)\",...align===\"start\"?{left:0}:align===\"end\"?{right:0}:{left:\"50%\",x:\"-50%\"},transformOrigin:originX+(up?\" 100%\":\" 0%\"),width:widthMode===\"menu\"?panelW>0?panelW:\"100%\":widthMode===\"fixed\"?d.width&&d.width>0?d.width:260:\"max-content\",minWidth:widthMode===\"fit\"?Math.max(0,d.minWidth??160):undefined,maxWidth:\"calc(100vw - 24px)\",borderRadius:cornersCss(panelC),zIndex:2},children:[/*#__PURE__*/_jsx(Surface,{s:p.surface,preset:p.preset||\"custom\",radius:panelR,corners:panelC,fade:{duration:.2}}),/*#__PURE__*/_jsx(motion.div,{ref:list,role:\"listbox\",className:\"wm-track\",variants:{closed:{opacity:0},open:{opacity:1}},transition:{duration:.2},style:{...listStyle,position:\"relative\",maxHeight:maxH,borderRadius:cornersCss(panelC)},children:items})]},\"panel\")},isCanvasNow()?open?\"o\":\"c\":\"ap\")]});}// 3. Wheel — scrolls up / down, the centred row is selected.\n// Its own physics: one mouse-wheel notch = one row; trackpads and fingers\n// follow you 1:1 and settle on the nearest row with a controlled\n// deceleration, so rows are never skipped by accident. The visible area,\n// mask and fade always reach the real frame edges.\n// Rows use the Wheel padding; Row Height 0 = text height + padding.\nfunction WheelLayout({labels,active,onSelect,onTick,p,pal,navRef,navPad}){const w=p.wheel||{};const ic=iconsOf(p);const ix=p.interaction||{};const n=labels.length;const wp=pad4(w.padding,[6,16,6,16]);const textRow=lineBox(p.typography)+wp[0]+wp[2];const rowH=Math.max(1,Math.round(w.rowHeight&&w.rowHeight>0?Math.max(w.rowHeight,textRow):textRow));const rowsN=Number(w.rows);const rows=rowsN===1||rowsN===5?rowsN:3;const sizing=w.sizing||\"rows\";// Fill: the height of the frame the menu sits in.\nconst[frameH,setFrameH]=React.useState(0);React.useEffect(()=>{if(sizing!==\"fill\")return;const nav=navRef.current;const host=nav?nav.closest(\"[data-wm]\"):null;const frame=host?host.parentElement:null;if(!frame||typeof ResizeObserver===\"undefined\")return;const m=()=>setFrameH(frame.clientHeight);m();const ro=new ResizeObserver(m);ro.observe(frame);return()=>ro.disconnect();},[sizing,navRef]);// The viewport reaches into the menu padding, so text is only clipped\n// and faded at the real frame edges.\nconst pt=navPad[0];const pb=navPad[2];const fixedH=num(w.height,0);const viewH=Math.max(rowH,sizing===\"fixed\"&&fixedH>0?fixedH-pt-pb:sizing===\"fill\"&&frameH>0?frameH-pt-pb:rows*rowH);const fullH=viewH+pt+pb;const centerY=pt+viewH/2;const sens=clamp(num(w.sensitivity,1),.1,4);const speed=clamp(num(w.speed,1),.2,4);const momentum=clamp(num(w.momentum,.35),0,1);const bounce=clamp(num(w.snap,.12),0,.8);const snapping=w.snapping!==false;const depth=clamp(num(w.depth,.06),0,.4);const dim=clamp(num(w.dim,0),0,1);const view=React.useRef(null);const track=React.useRef(null);const refs=React.useRef([]);const st=React.useRef({pos:active,vel:0,target:active,acc:0,raf:0,last:0,drag:null,user:false,centred:active,wheelT:0,notchT:0,peak:0,inertia:false,idle:0,commit:0,suppress:false});const activeRef=React.useRef(active);activeRef.current=active;const cfg=React.useRef({n,rowH,centerY,depth,dim,speed,bounce,pal,onTick,onSelect});cfg.current={n,rowH,centerY,depth,dim,speed,bounce,pal,onTick,onSelect};const paint=React.useCallback(()=>{const s=st.current;const c=cfg.current;const t=track.current;if(t)t.style.transform=\"translate3d(0,\"+(c.centerY-c.rowH/2-s.pos*c.rowH)+\"px,0)\";const nearest=clamp(Math.round(s.pos),0,Math.max(0,c.n-1));refs.current.forEach((item,i)=>{if(!item)return;const dist=Math.abs(i-s.pos);item.style.transform=c.depth?\"scale(\"+Math.max(.5,1-Math.min(dist,3)*c.depth)+\")\":\"\";item.style.opacity=c.dim?String(1-Math.min(1,dist)*c.dim):\"\";item.style.color=i===nearest?c.pal.active:c.pal.inactive;});if(nearest!==s.centred){s.centred=nearest;if(s.user&&c.onTick)c.onTick();}},[]);// Selection is committed once the wheel has come to rest.\nconst commit=React.useCallback(()=>{const s=st.current;window.clearTimeout(s.commit);s.commit=window.setTimeout(()=>{if(s.drag||s.raf||s.acc)return;s.user=false;const pick=Math.round(s.target);if(pick!==activeRef.current)cfg.current.onSelect(pick);},90);},[]);// Spring towards the target row (fixed 4 ms sub-steps: identical feel\n// at 60 Hz and 120 Hz).\nconst run=React.useRef(()=>{});run.current=()=>{const s=st.current;const c=cfg.current;if(s.drag){s.raf=0;return;}const now=performance.now();let dt=Math.min(.05,Math.max(.001,(now-s.last)/1e3));s.last=now;const k=260*c.speed*c.speed;const damp=2*Math.sqrt(k)*(1-c.bounce);const goal=s.target+s.acc;while(dt>0){const h=Math.min(.004,dt);dt-=h;s.vel+=(-k*(s.pos-goal)-damp*s.vel)*h;s.pos+=s.vel*h;}if(Math.abs(s.pos-goal)<5e-4&&Math.abs(s.vel)<.005){s.pos=goal;s.vel=0;s.raf=0;paint();if(s.user&&!s.acc)commit();return;}paint();s.raf=requestAnimationFrame(()=>run.current());};const kick=React.useCallback(()=>{const s=st.current;if(s.raf||s.drag)return;s.last=performance.now();s.raf=requestAnimationFrame(()=>run.current());},[]);const go=React.useCallback(i=>{const s=st.current;s.target=clamp(i,0,Math.max(0,cfg.current.n-1));s.acc=0;s.user=true;window.clearTimeout(s.commit);kick();},[kick]);// First paint, and repaint when sizes change.\nuseIsoLayoutEffect(()=>{const s=st.current;const last=Math.max(0,n-1);if(s.target>last)s.target=last;if(!s.raf&&!s.drag)s.pos=s.target+s.acc;paint();},[n,rowH,centerY,depth,dim,paint]);// Follow the page (another control, the back button…) to the active row.\nReact.useEffect(()=>{const s=st.current;if(s.drag||s.user)return;const t=clamp(active,0,Math.max(0,n-1));if(t===s.target&&Math.abs(s.pos-t)<.001)return;if(!snapping&&Math.round(s.target)===t)return;s.target=t;kick();},[active,n,kick]);React.useEffect(()=>()=>{const s=st.current;cancelAnimationFrame(s.raf);s.raf=0;window.clearTimeout(s.idle);window.clearTimeout(s.commit);},[]);// Mouse wheel & trackpad.\nReact.useEffect(()=>{const el=view.current;if(!el)return;const onWheel=e=>{const s=st.current;const c=cfg.current;if(s.drag||c.n<2)return;let d=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.deltaY;if(e.deltaMode===1)d*=16;else if(e.deltaMode===2)d*=c.rowH*3;if(!d)return;const dir=d>0?1:-1;const blocked=dir<0?s.target<=0&&s.acc<=.001:s.target>=c.n-1&&s.acc>=-.001;if(blocked)return;// first / last row: the page scrolls on\ne.preventDefault();s.user=true;window.clearTimeout(s.commit);const now=performance.now();const gap=now-s.wheelT;s.wheelT=now;// A mouse notch: whole, large steps. One notch = one row.\nconst notch=e.deltaMode!==0||Math.abs(d)>=40&&Math.abs(d%1)<1e-6;if(notch){if(now-s.notchT>=40){s.notchT=now;s.acc=0;s.target=clamp(s.target+dir,0,c.n-1);}}else{// Trackpad: follows the fingers. Once they lift, the glide\n// (inertia) is scaled by Momentum, so it never runs away.\nif(gap>160){s.peak=0;s.inertia=false;}const a=Math.abs(d);if(a>s.peak)s.peak=a;else if(a<s.peak*.55)s.inertia=true;const factor=s.inertia?momentum:1;// Travel per row: never less than 72px, so a short swipe\n// moves one row, not several.\ns.acc+=d*sens*factor/Math.max(c.rowH*2.2,72);while(s.acc>.5&&s.target<c.n-1){s.target++;s.acc-=1;}while(s.acc<-.5&&s.target>0){s.target--;s.acc+=1;}s.acc=clamp(s.acc,s.target<=0?-.12:-.5,s.target>=c.n-1?.12:.5);window.clearTimeout(s.idle);s.idle=window.setTimeout(()=>{s.acc=0;kick();},120);}kick();};el.addEventListener(\"wheel\",onWheel,{passive:false});return()=>el.removeEventListener(\"wheel\",onWheel);},[sens,momentum,kick]);// Touch & mouse dragging.\nconst dragOn=type=>type===\"mouse\"?ix.mouseDrag!==false:ix.touchDrag!==false;const onPointerDown=e=>{if(!dragOn(e.pointerType))return;if(e.pointerType===\"mouse\"&&e.button!==0)return;const s=st.current;cancelAnimationFrame(s.raf);s.raf=0;window.clearTimeout(s.commit);s.vel=0;s.pos=s.pos;s.acc=0;s.drag={id:e.pointerId,y:e.clientY,pos:s.pos,moved:false,samples:[{t:performance.now(),pos:s.pos}]};};const onPointerMove=e=>{const s=st.current;const d=s.drag;const el=view.current;if(!d||!el||e.pointerId!==d.id)return;const dy=e.clientY-d.y;if(!d.moved){if(Math.abs(dy)<4)return;d.moved=true;s.user=true;try{el.setPointerCapture(d.id);}catch{}el.setAttribute(\"data-dragging\",\"\");}const c=cfg.current;const last=Math.max(0,c.n-1);let pos=d.pos-dy*sens/c.rowH;// Rubber band past the first / last row (feels like iOS).\nconst band=x=>(1-1/(x*.55/2+1))*2;if(pos<0)pos=-band(-pos);else if(pos>last)pos=last+band(pos-last);s.pos=pos;const now=performance.now();d.samples.push({t:now,pos});while(d.samples.length>2&&now-d.samples[0].t>100)d.samples.shift();paint();};const onPointerEnd=e=>{const s=st.current;const d=s.drag;if(!d||e.pointerId!==d.id)return;s.drag=null;if(!d.moved){kick()// a tap: the row itself handles it\n;return;}const el=view.current;if(el){el.removeAttribute(\"data-dragging\");try{el.releasePointerCapture(d.id);}catch{}}s.suppress=true;window.setTimeout(()=>s.suppress=false,0);const now=performance.now();// Release velocity: least-squares slope over the last 100 ms, so a\n// single jittery touch sample never decides the throw.\nconst pts=d.samples.filter(q=>now-q.t<120);let v=0;if(pts.length>=2&&now-pts[pts.length-1].t<80){const mt=pts.reduce((a,q)=>a+q.t,0)/pts.length;const mp=pts.reduce((a,q)=>a+q.pos,0)/pts.length;let num1=0;let den=0;pts.forEach(q=>{num1+=(q.t-mt)*(q.pos-mp);den+=(q.t-mt)*(q.t-mt);});v=den>0?num1/den*1e3:0// rows per second\n;}v=clamp(v,-40,40);// Realistic momentum: the glide distance of a natural deceleration\n// (like iOS scrolling), scaled by Momentum.\nconst glide=v*.32*momentum*(1+Math.abs(v)/40);const last=Math.max(0,cfg.current.n-1);const landing=clamp(s.pos+glide,0,last);s.target=snapping?Math.round(landing):landing;s.vel=v*(.4+momentum*.6);s.acc=0;kick();};const onKeyDown=e=>{if(e.key===\"ArrowUp\"||e.key===\"ArrowLeft\"){e.preventDefault();go(st.current.target-1);}else if(e.key===\"ArrowDown\"||e.key===\"ArrowRight\"){e.preventDefault();go(st.current.target+1);}};// Fade: from Fade Start (0% = centre) to Fade End (100% = frame edge).\nconst intensity=clamp(num(w.fadeIntensity,100),0,100)/100;const fs=clamp(num(w.fadeStart,25),0,100)/100;const fe=Math.max(fs,clamp(num(w.fadeEnd,100),0,100)/100);const topH=centerY;const botH=fullH-centerY;const px=v=>Math.round(v*100)/100+\"px\";const edgeA=\"rgba(0,0,0,\"+Math.round((1-intensity)*1e3)/1e3+\")\";const mask=intensity>0&&fe>0?\"linear-gradient(180deg, \"+edgeA+\" 0px, \"+edgeA+\" \"+px(topH*(1-fe))+\", \"+\"#000 \"+px(topH*(1-fs))+\", \"+\"#000 \"+px(topH+botH*fs)+\", \"+edgeA+\" \"+px(topH+botH*fe)+\", \"+edgeA+\" 100%)\":undefined;const it=p.items||{};const kind=it.indicator??\"pill\";const[whRef,whHl]=useHlClip(it,it.indicatorRadius??999,rowH/2,kind===\"pill\");const stretch=!!p.placement?.widthMode&&p.placement.widthMode!==\"fit\";const colWidth=stretch?undefined:w.width&&w.width>0?w.width:undefined;// Grouped arrows (↑ ↓ or ← →), fixed beside the wheel.\nconst arrows=ic.wheelArrows||w.arrows||\"none\";const vertical=arrows===\"vertical\";const clickable=(ic.wheelClickable!==undefined?ic.wheelClickable:w.arrowsClickable)!==false;const startSide=(ic.wheelSide||w.arrowSide)===\"start\";const arrowBtn=step=>{const dir=vertical?step<0?\"up\":\"down\":step<0?\"left\":\"right\";const off=step<0?active<=0:active>=n-1;const look={position:\"relative\",display:\"grid\",placeItems:\"center\",color:pal.active,opacity:off?.3:1,transition:\"opacity .25s ease, color .3s ease\"};const glyph=/*#__PURE__*/_jsx(ArrowGlyph,{dir:dir,ic:ic});if(!clickable)return /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:look,children:glyph},step);return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"wm-item\",\"aria-label\":step<0?\"Previous category\":\"Next category\",disabled:off,onClick:()=>go(Math.round(st.current.target)+step),style:{all:\"unset\",boxSizing:\"border-box\",cursor:off?\"default\":\"pointer\",touchAction:\"manipulation\",WebkitTapHighlightColor:\"transparent\",...look},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:vertical?\"0 -10px\":\"-10px 0\"}}),glyph]},step);};const arrowGroup=arrows!==\"none\"?/*#__PURE__*/_jsxs(IconBox,{ic:ic,style:{flexDirection:vertical?\"column\":\"row\",gap:ic.pairGap,order:startSide?-1:1,...startSide?{marginRight:ic.gap}:{marginLeft:ic.gap}},children:[arrowBtn(-1),arrowBtn(1)]}):null;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",minWidth:0,maxWidth:\"100%\",width:stretch?\"100%\":undefined},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",flex:stretch?\"1 1 auto\":\"0 0 auto\",width:colWidth,minWidth:0,height:fullH,marginTop:-pt,marginBottom:-pb},children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{height:0,overflow:\"hidden\",visibility:\"hidden\"},children:labels.map((l,i)=>/*#__PURE__*/_jsx(\"div\",{style:{...fontStyle(p.typography,true),whiteSpace:\"nowrap\",padding:\"0 \"+wp[1]+\"px 0 \"+wp[3]+\"px\"},children:l},i+\":\"+l))}),kind!==\"none\"&&/*#__PURE__*/_jsx(\"div\",{ref:whRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",left:-hlRoom(it).gx/2,right:-hlRoom(it).gx/2,top:centerY-rowH/2-hlRoom(it).gy/2,height:rowH+hlRoom(it).gy,...kind===\"pill\"?whHl:{borderRadius:Math.min(it.indicatorRadius??999,rowH/2)},background:kind===\"pill\"?\"var(--wm-hl, \"+pal.indicator+\")\":\"transparent\",transition:\"background-color .25s ease, border-color .25s ease\",borderTop:kind===\"pill\"?\"none\":\"1px solid var(--wm-hl, \"+pal.line+\")\",borderBottom:kind===\"pill\"?\"none\":\"1px solid var(--wm-hl, \"+pal.line+\")\",pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"div\",{ref:view,className:\"wm-track\",role:\"listbox\",\"aria-label\":\"Categories\",onPointerDown:onPointerDown,onPointerMove:onPointerMove,onPointerUp:onPointerEnd,onPointerCancel:onPointerEnd,onLostPointerCapture:onPointerEnd,onKeyDown:onKeyDown,style:{position:\"absolute\",inset:0,overflow:\"hidden\",touchAction:ix.touchDrag===false?\"pan-y\":\"none\",WebkitMaskImage:mask,maskImage:mask,userSelect:\"none\",WebkitUserSelect:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{ref:track,style:{position:\"absolute\",left:0,right:0,top:0,willChange:\"transform\"},children:labels.map((label,i)=>/*#__PURE__*/_jsx(\"button\",{ref:node=>{refs.current[i]=node;},type:\"button\",role:\"option\",\"aria-selected\":i===active,className:\"wm-item\",\"data-on\":i===active?\"\":undefined,onClick:()=>{if(!st.current.suppress)go(i);},style:{...itemStyle(p,pal,i===active),display:\"flex\",width:\"100%\",height:rowH,padding:\"0 \"+wp[1]+\"px 0 \"+wp[3]+\"px\",alignItems:\"center\",justifyContent:w.align===\"left\"?\"flex-start\":w.align===\"right\"?\"flex-end\":\"center\",transition:\"color .3s ease\"},children:/*#__PURE__*/_jsx(Label,{text:label,p:p,on:i===active,clip:true})},label))})})]}),arrowGroup]});}// 4. Stepper — one label, arrows + swipe / drag left / right\nfunction StepperLayout({labels,active,onSelect,p,pal,transition}){const[dir,setDir]=React.useState(1);const start=React.useRef(null);const ix=p.interaction||{};const ic=iconsOf(p);const go=step=>{if(!labels.length)return;setDir(step);onSelect((active+step+labels.length)%labels.length);};const it=p.items||{};const ip=itemPad(p);const[stRef,stHl]=useHlClip(it,it.indicatorRadius??999,undefined,(it.indicator??\"pill\")===\"pill\");// The gap between arrow and text is exact (Icons & Arrows → Text ↔\n// Icon); the bigger tap area is invisible and adds no spacing.\nconst arrow=step=>/*#__PURE__*/_jsx(IconBox,{ic:ic,children:/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"wm-item\",\"aria-label\":step<0?\"Previous category\":\"Next category\",onClick:()=>go(step),style:{...itemStyle(p,pal,false),padding:0,display:\"grid\",placeItems:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:\"-12px -6px\"}}),/*#__PURE__*/_jsx(ArrowGlyph,{dir:step<0?\"left\":\"right\",ic:ic})]})});return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:ic.gap,touchAction:\"pan-y\"},onKeyDown:e=>{if(e.key===\"ArrowLeft\")go(-1);if(e.key===\"ArrowRight\")go(1);},onPointerDown:e=>{const ok=e.pointerType===\"mouse\"?ix.mouseDrag!==false:ix.touchDrag!==false;start.current=ok?{x:e.clientX,type:e.pointerType}:null;},onPointerUp:e=>{const s=start.current;start.current=null;if(!s)return;const dx=e.clientX-s.x;if(Math.abs(dx)>30)go(dx<0?1:-1);},onPointerCancel:()=>start.current=null,children:[arrow(-1),/*#__PURE__*/_jsxs(\"div\",{\"aria-live\":\"polite\",style:{position:\"relative\",display:\"flex\",alignItems:\"center\",padding:padCss(ip),margin:hlRoom(it).my+\"px \"+hlRoom(it).mx+\"px\",color:pal.active},children:[/*#__PURE__*/_jsx(\"span\",{ref:stRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",top:-hlRoom(it).gy/2,bottom:-hlRoom(it).gy/2,left:-hlRoom(it).gx/2,right:-hlRoom(it).gx/2,pointerEvents:\"none\",...(it.indicator??\"pill\")===\"pill\"?stHl:{borderRadius:it.indicatorRadius??999},background:(it.indicator??\"pill\")===\"pill\"?\"var(--wm-hl, \"+pal.indicator+\")\":\"transparent\",transition:\"background-color .25s ease\"}}),/*#__PURE__*/_jsx(TextSlot,{labels:labels,index:active,p:p,fixed:ic.fixed,align:ic.textAlign,transition:transition,enter:{x:dir*22}})]}),arrow(1)]});}// 5. Expand — a compact pill that opens into the full bar.\n// \"Keep Expanded\" (Expand section): stays open while the pointer is anywhere\n// on the navigation (grid icons included), also after choosing a category,\n// and closes after leaving it or (if enabled) a click / tap outside.\n// One easing for opening and closing: fast start, long soft landing, no\n// overshoot. The Shell (Open Width) uses the very same curve and timing.\nconst EXPAND_EASE=[.32,.72,0,1];const EXPAND_OPEN=.46;const EXPAND_CLOSE=.4;function ExpandLayout(props){const{labels,active,p,pal,expand}=props;const{open,setOpen,hover}=expand;const canvasNow=isCanvasNow();const it=p.items||{};const ex=p.expand||{};const ic=iconsOf(p);const dots=it.dots!==false;const dotSize=Math.max(0,num(ex.dotSize,3));const dotGap=Math.max(0,num(ex.dotGap,3));const pill=ex.pillCustom&&ex.pillPadding?pad4(ex.pillPadding,itemPad(p)):itemPad(p);const pillBg=(it.indicator??\"pill\")===\"pill\"&&it.highlightWhen!==\"open\";const[hlRef,hlStyle]=useHlClip(it,it.indicatorRadius??999,undefined,pillBg);const widthT={type:\"tween\",ease:EXPAND_EASE,duration:open?EXPAND_OPEN:EXPAND_CLOSE};// Text never scales or slides: only a soft cross-fade, and the open bar\n// keeps its items left-aligned so nothing shifts while the width glides.\nconst barProps={...props,p:{...p,items:{...it,align:it.textAlignRaw&&it.textAlignRaw!==\"auto\"?it.align:\"start\",activeAlign:\"none\"}}};// Open Text: Spread / Fill use the whole open width (e.g. Max Width).\nconst ot=ex.openText;const fillOpen=ot===\"spread\"||ot===\"fill\";if(fillOpen)barProps.p.items.align=ot;const enter={opacity:1,transition:{duration:.26,ease:\"easeOut\"}};const leave={opacity:0,pointerEvents:\"none\",transition:{duration:.14,ease:\"easeIn\"}};return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",minWidth:0,maxWidth:\"100%\"},onPointerEnter:e=>{if(hover&&e.pointerType===\"mouse\")setOpen(true);},children:/*#__PURE__*/_jsx(AutoWidth,{transition:widthT,fill:open&&fillOpen,children:/*#__PURE__*/_jsx(AnimatePresence,{mode:\"popLayout\",initial:false,children:open?/*#__PURE__*/_jsx(motion.div,{initial:canvasNow?false:{opacity:0},animate:enter,exit:leave,style:{display:\"flex\",flex:fillOpen?\"1 1 auto\":undefined,minWidth:0,maxWidth:\"var(--wm-avail, calc(100vw - 48px))\"},children:/*#__PURE__*/_jsx(BarLayout,{...barProps})},\"open\"):/*#__PURE__*/_jsxs(motion.button,{type:\"button\",className:\"wm-item\",\"data-on\":\"\",\"aria-expanded\":false,\"aria-label\":\"Categories: \"+(labels[active]||\"\"),onClick:()=>setOpen(true),initial:canvasNow?false:{opacity:0},animate:enter,exit:leave,style:{...itemStyle(p,pal,true),display:\"flex\",alignItems:\"center\",gap:0,minWidth:0,maxWidth:\"var(--wm-avail, calc(100vw - 48px))\",padding:padCss(pill),margin:pillBg?hlRoom(it).my+\"px \"+hlRoom(it).mx+\"px\":undefined,background:\"transparent\"},children:[/*#__PURE__*/_jsx(\"span\",{ref:hlRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",top:-hlRoom(it).gy/2,bottom:-hlRoom(it).gy/2,left:-hlRoom(it).gx/2,right:-hlRoom(it).gx/2,pointerEvents:\"none\",background:pillBg?\"var(--wm-hl, \"+pal.indicator+\")\":\"transparent\",transition:\"background-color .25s ease\",...pillBg?hlStyle:null}}),/*#__PURE__*/_jsx(Label,{text:labels[active]||\"\",p:p,on:true,clip:true}),dots&&dotSize>0&&/*#__PURE__*/_jsx(IconBox,{ic:ic,style:{marginLeft:ic.gap,gap:dotGap},children:[0,1,2].map(d=>/*#__PURE__*/_jsx(\"span\",{style:{width:dotSize,height:dotSize,borderRadius:dotSize,background:\"currentColor\",opacity:.45}},d))})]},\"closed\")},canvasNow?open?\"o\":\"c\":\"ap\")})});}// ---------------------------------------------------------------------------\n// Shell: fixed placement, appear, hide on scroll\n// ---------------------------------------------------------------------------\nfunction useMounted(){const[mounted,setMounted]=React.useState(false);const mountEffect=isBrowser?React.useLayoutEffect:React.useEffect;mountEffect(()=>setMounted(true),[]);return mounted;}// Where the browser bar that collapses while scrolling sits.\n// iPhone Safari (portrait): at the bottom. iPad, Android and iPhone\n// landscape: at the top. The menu is anchored to the edge that never moves.\nfunction barPosition(){if(!isBrowser)return\"bottom\";const nav=navigator;const ua=nav.userAgent||\"\";const iPad=/iPad/.test(ua)||/Macintosh/.test(ua)&&(nav.maxTouchPoints||0)>1;// iPhone also when Safari asks for the desktop site (it then says\n// \"Macintosh\"): a touch screen this small is never an iPad.\nconst small=!!window.screen&&Math.min(window.screen.width,window.screen.height)<600;const iPhone=(/iPhone|iPod/.test(ua)||iPad&&small)&&!(iPad&&!small);const portrait=window.innerHeight>=window.innerWidth;return iPhone&&portrait?\"bottom\":\"top\";}function useTouch(){const[state,setState]=React.useState({touch:false,bar:\"bottom\"});React.useEffect(()=>{const on=()=>setState(s=>{const next={touch:isTouchDevice(),bar:barPosition()};return s.touch===next.touch&&s.bar===next.bar?s:next;});on();window.addEventListener(\"orientationchange\",on);window.addEventListener(\"resize\",on);return()=>{window.removeEventListener(\"orientationchange\",on);window.removeEventListener(\"resize\",on);};},[]);return state;}const durationOf=t=>t&&t.type!==\"spring\"&&typeof t.duration===\"number\"?t.duration:.3;const easeOf=t=>t&&Array.isArray(t.ease)&&t.ease.length===4?\"cubic-bezier(\"+t.ease.join(\",\")+\")\":\"ease\";function Shell({p,pal,canvas,edge,children,id,transition,width,animWidth,expandOpen}){const mounted=useMounted();const{touch,bar}=useTouch();const position=canvas?\"inline\":p.placement?.position||\"bottom\";const fixed=position!==\"inline\";// Scroll section (falls back to the old Motion settings).\nconst m={...p.motion||{},...p.scroll||{}};const{visible:scrollVisible,inGrid}=useScrollVisibility(!canvas&&fixed,m);// Canvas Preview → Hidden shows the exact hidden look on the canvas.\nconst pvHidden=canvas&&p.canvas?.state===\"hidden\";const visible=pvHidden?false:scrollVisible;const offset=Math.max(0,p.placement?.offset??24);const[size,setSize]=React.useState({w:0,h:0});const ro=React.useRef(null);const inGridRef=React.useRef(inGrid);inGridRef.current=inGrid;const bodyElement=React.useRef(null);React.useEffect(()=>{bodyElement.current?.toggleAttribute(\"inert\",!inGrid);},[inGrid]);const bodyRef=React.useCallback(el=>{bodyElement.current=el;el?.toggleAttribute(\"inert\",!inGridRef.current);ro.current?.disconnect();ro.current=null;if(!el)return;const mm=()=>setSize(s=>s.w===el.offsetWidth&&s.h===el.offsetHeight?s:{w:el.offsetWidth,h:el.offsetHeight});mm();if(typeof ResizeObserver!==\"undefined\"){ro.current=new ResizeObserver(mm);ro.current.observe(el);}},[]);const h=size.h;// Steady on Scroll — phones AND tablets (iPad included, with or without\n// a trackpad): anchored to the SMALL viewport (toolbars shown), so the\n// menu does not ride up and down while the browser bars collapse.\nconst barAt=p.placement?.browserBar&&p.placement.browserBar!==\"auto\"?p.placement.browserBar:bar;// Bar at the top (iPad, Android): the bottom edge never moves, so the\n// normal bottom anchor is already steady. Bar at the bottom (iPhone):\n// anchor to the small viewport instead.\nconst steady=fixed&&edge===\"bottom\"&&p.placement?.steadyMobile!==false&&touch&&barAt===\"bottom\"&&typeof CSS!==\"undefined\"&&CSS.supports(\"height\",\"100svh\");// Shown only once fonts, glass, sizes and position are final.\nconst shown=true;// CSS owns the stable viewport anchor; scroll events never rewrite it.\nconst align=p.placement?.align||\"center\";const sideGap=Math.max(0,num(p.placement?.sideOffset,12));const justify=align===\"left\"?\"flex-start\":align===\"right\"?\"flex-end\":\"center\";const room=(fixed?\"100% - \":\"100vw - \")+Math.max(24,sideGap*2)+\"px\";// Hide on scroll: the pose it moves to. Opacity is never put on a parent\n// of the glass: the glass and the content fade side by side (CSS).\nconst hs=m.hideStyle||\"slideFade\";const dist=Math.max(0,num(m.hideDistance,0));const vw=isBrowser?window.innerWidth:1440;const toEdge=edge===\"bottom\"?1:-1;const autoV=offset+h+16;const autoH=vw/2+size.w/2+16;let hidden={x:0,y:0,scale:1};let fade=hs!==\"none\";if(hs===\"slideDown\"||hs===\"slideUp\"){const dirY=hs===\"slideDown\"?1:-1;hidden={x:0,y:dirY*(dist||autoV),scale:1};// It fades too when it cannot leave the screen that way.\nfade=dist>0?dist<autoV:!fixed||dirY!==toEdge;}else if(hs===\"slideLeft\"||hs===\"slideRight\"){hidden={x:(hs===\"slideRight\"?1:-1)*(dist||autoH),y:0,scale:1};fade=dist>0?dist<autoH:!fixed;}else if(hs===\"scale\"){hidden={x:0,y:0,scale:1-clamp(num(m.hideScale,.06),0,.5)};}else if(hs===\"slideFade\"){hidden={x:0,y:toEdge*(dist||Math.min(autoV,24)),scale:1};}const hideT=m.hideTransition||transition;const showT=m.showTransition||transition;const appear=false;const rest={x:0,y:0,scale:1};const enterPose=appear?{x:0,y:edge===\"bottom\"?14:-14,scale:.97}:rest;const pose=!shown?enterPose:visible?rest:hidden;const target=pose;const t=!shown||canvas?{duration:0}:visible?showT:hs===\"none\"?{duration:0}:hideT;const settle=React.useCallback(()=>{if(isBrowser)window.dispatchEvent(new Event(\"wm-settle\"));},[]);const body=/*#__PURE__*/_jsxs(motion.div,{ref:bodyRef,\"data-wm\":id,\"aria-hidden\":!inGrid||!shown?true:undefined,\"data-hidden\":shown&&!visible?\"\":undefined,\"data-fade\":fade||!inGrid?\"\":undefined,\"data-instant\":hs===\"none\"&&inGrid?\"\":undefined,\"data-appear\":appear&&shown?\"\":undefined,\"data-hlhover\":p.items?.hlHover&&[\"bar\",\"wheel\",\"stepper\"].indexOf(p.mode||\"bar\")>-1?\"\":undefined,initial:false,animate:target,transition:t,onAnimationComplete:settle,style:{pointerEvents:shown&&visible?\"auto\":\"none\",visibility:shown?undefined:\"hidden\",width:animWidth!==undefined?animWidth:width||\"auto\",// Open Width (Fit All): a smooth width change, no jumps.\ntransition:animWidth!==undefined&&shown&&!canvas?\"width \"+(expandOpen?EXPAND_OPEN:EXPAND_CLOSE)+\"s cubic-bezier(.32,.72,0,1)\":undefined,maxWidth:p.placement?.maxWidth?\"min(\"+p.placement.maxWidth+\"px, calc(\"+room+\"))\":\"calc(\"+room+\")\",minWidth:0,\"--wm-hover\":pal.hover,\"--wm-context-opacity\":inGrid?1:0,\"--wm-fd\":(canvas?0:durationOf(visible?showT:hideT))+\"s\",\"--wm-fe\":easeOf(visible?showT:hideT)},children:[scopedCss(id,p.surface),/*#__PURE__*/_jsx(ShownContext.Provider,{value:shown,children:children})]});if(!fixed)return /*#__PURE__*/_jsx(\"div\",{style:{...p.style,display:\"flex\",justifyContent:justify,alignItems:\"center\"},children:body});if(!mounted)return null;const safeB=\"env(safe-area-inset-bottom, 0px)\";const inset=edge===\"bottom\"?steady&&h?{top:\"calc(100svh - \"+(offset+h)+\"px - \"+safeB+\")\"}:{bottom:\"calc(\"+offset+\"px + \"+safeB+\")\"}:{top:\"calc(\"+offset+\"px + env(safe-area-inset-top, 0px))\"};return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",left:0,right:0,...inset,zIndex:p.placement?.zIndex??50,display:\"flex\",justifyContent:justify,paddingLeft:align===\"left\"?sideGap:0,paddingRight:align===\"right\"?sideGap:0,boxSizing:\"border-box\",pointerEvents:\"none\"},children:body}),document.body);}// ---------------------------------------------------------------------------\n// Work Menu\n// ---------------------------------------------------------------------------\n/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 520\n * @framerIntrinsicHeight 52\n * @framerDisableUnlink\n */export default function WorkMenu(props){// The CMS slot must mount before menu labels exist. Keep it outside\n// the normalized visual settings and every menu-only early return.\nconst cmsSource=/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",width:1,height:1,opacity:0,overflow:\"clip\",pointerEvents:\"none\"},children:props.cmsCategories});const canvas=RenderTarget.current()===RenderTarget.canvas;const live=!canvas&&isBrowser;const id=React.useId().replace(/:/g,\"\");const navRef=React.useRef(null);const[,setFontTick]=React.useState(0);React.useEffect(()=>{const fonts=isBrowser?document.fonts:null;if(fonts&&fonts.ready)fonts.ready.then(()=>setFontTick(1));},[]);// The right panel's simple settings, mapped onto the engine.\nconst S=fromSimple(props);const r=S.responsive||{};const cv=S.canvas||{};// Desktop / Tablet / Phone: the Breakpoints section is applied here.\n// Canvas Preview → Device can force one on the canvas.\nconst autoDevice=useDevice(navRef,canvas,r);const device=canvas&&cv.device&&cv.device!==\"auto\"?cv.device:autoDevice;const p=applyDevice(S,device);// Work Menu → Behavior → Continuous Media, read by the projects grid.\nif(live)window.__koContinuousMedia=p.motion?.continuousMedia===true;const mode=p.mode||\"bar\";const snap=usePage({anchor:p.source?.anchor||\"Center Buttons\",activeName:p.source?.activeName||\"Active\",sort:p.source?.sort||\"cms\",hide:p.source?.hide||\"\"},live);const transition=p.motion?.transition||DEFAULT_TRANSITION;const pal=palette(p);const feedback=p.feedback;const hover=useCanHover();const ix=p.interaction||{};const ex=p.expand||{};const keepOpen=(ex.keepOpen??ix.keepOpen)!==false;const outsideClose=(ex.outsideClose??ix.outsideClose)!==false;const closeDelay=Math.max(0,num(ex.closeDelay??ix.closeDelay,380));// Expand + Fixed width: grow to fit every category while open.\nconst[barNatural,setBarNatural]=React.useState(0);const onNatural=React.useCallback(v=>setBarNatural(o=>Math.abs(o-v)<.5?o:v),[]);const[screenW,setScreenW]=React.useState(isBrowser?window.innerWidth:1440);React.useEffect(()=>{const on=()=>setScreenW(window.innerWidth);on();window.addEventListener(\"resize\",on);return()=>window.removeEventListener(\"resize\",on);},[]);// Categories (sample labels on the canvas)\nconst sample=React.useMemo(()=>(cv.labels||p.source?.preview||SAMPLE.join(\", \")).split(\",\").map(s=>s.trim()).filter(Boolean),[cv.labels,p.source?.preview]);const[previewActive,setPreviewActive]=React.useState(0);// The last real list (and grid buttons) are kept while the CMS\n// re-renders, so nothing unmounts or disappears between two states.\nconst lastCats=React.useRef([]);if(snap.cats.length)lastCats.current=snap.cats;const cats=snap.cats.length?snap.cats:lastCats.current;const lastGrid=React.useRef(EMPTY);if(snap.section)lastGrid.current=snap;const gsnap=snap.section?snap:lastGrid.current;const labels=live?cats.map(c=>c.label):sample;const pageActive=Math.max(0,cats.findIndex(c=>c.active));// Optimistic: the menu reacts instantly, the page catches up.\nconst[pending,setPending]=React.useState(null);React.useEffect(()=>{if(pending===null)return;if(pending===pageActive){setPending(null);return;}const t=window.setTimeout(()=>setPending(null),3200);return()=>window.clearTimeout(t);},[pending,pageActive]);React.useEffect(()=>{if(!live)return;const cancelled=event=>{const label=event.detail?.label;setPending(value=>value!==null&&labels[value]===label?null:value);};window.addEventListener(CATEGORY_CANCEL,cancelled);return()=>window.removeEventListener(CATEGORY_CANCEL,cancelled);},[live,labels.join(\"\\x00\")]);const canvasActive=clamp(Math.round(num(cv.active,1))-1,0,Math.max(0,labels.length-1));const active=live?pending??pageActive:canvas?canvasActive:previewActive;// Expand: open while the pointer is anywhere on the navigation.\nconst[expanded,setExpanded]=React.useState(false);const closeTimer=React.useRef(0);const setOpen=React.useCallback(v=>{window.clearTimeout(closeTimer.current);setExpanded(v);},[]);React.useEffect(()=>{if(!expanded)return;const outside=e=>{// Presses the menu makes on your hidden page list are not real\n// clicks: they must never collapse it.\nif(!e.isTrusted||!outsideClose)return;const nav=navRef.current;if(nav&&!nav.contains(e.target))setExpanded(false);};const key=e=>e.key===\"Escape\"&&setExpanded(false);document.addEventListener(\"pointerdown\",outside,true);document.addEventListener(\"keydown\",key);return()=>{document.removeEventListener(\"pointerdown\",outside,true);document.removeEventListener(\"keydown\",key);};},[expanded,outsideClose]);React.useEffect(()=>()=>window.clearTimeout(closeTimer.current),[]);const pvState=canvas?cv.state||\"default\":\"default\";const expandedShown=expanded||pvState===\"open\";const onSelect=i=>{if(i===active||i<0||i>=labels.length)return;giveFeedback(feedback);if(mode===\"expand\"&&expanded){// Keep Expanded: stays open while the pointer is on the\n// navigation (touch: until a tap outside, if enabled).\nconst stay=keepOpen&&(hover||outsideClose);window.clearTimeout(closeTimer.current);if(!stay)closeTimer.current=window.setTimeout(()=>setExpanded(false),260);}if(!live)return setPreviewActive(i);setPending(i);selectCategoryOnPage(labels[i],p.motion);};const onTick=React.useCallback(()=>{if(feedback?.wheelTicks!==false)giveFeedback(feedback,true);},[feedback]);// Horizontal swipe (Dropdown, Expand pill): left = next, right = previous.\nconst swipe=React.useRef(null);const swiped=React.useRef(false);const swipeOn=ix.swipe!==false&&(mode===\"dropdown\"||mode===\"expand\"&&!expandedShown);// Dropdown \"Expand Menu\": how far the glass grows, and the menu height\n// (for a smooth radius change from pill to panel).\nconst[extend,setExtendState]=React.useState({size:0,up:true});const setExtend=React.useCallback((size,up)=>{setExtendState(e=>e.size===size&&e.up===up?e:{size,up});},[]);const dropdownHeight=useMotionValue(0);const dropdownTiming=JSON.stringify(p.dropdown?.transition||transition);useIsoLayoutEffect(()=>{const target=Math.max(0,extend.size);if(canvas){dropdownHeight.set(target);return;}const animation=animate(dropdownHeight,target,JSON.parse(dropdownTiming));return()=>animation.stop();},[extend.size,canvas,dropdownTiming,dropdownHeight]);const[navH,setNavH]=React.useState(0);const navObserver=React.useRef(null);const menuFrame=React.useRef(null);const setMenuFrame=React.useCallback(el=>{menuFrame.current=el;navObserver.current?.disconnect();navObserver.current=null;if(!el)return;const m=()=>setNavH(el.offsetHeight);m();if(typeof ResizeObserver===\"undefined\")return;navObserver.current=new ResizeObserver(m);navObserver.current.observe(el);},[]);const setNav=React.useCallback(el=>{navRef.current=el;setMenuFrame(el);},[setMenuFrame]);// Grid icons\nconst g=p.grid||{};const list=iconList(g,device);const list2=parseColumns(g.icons2||\"\",[1,2]);const gridOpts=live?gridOptions(gsnap,list,list2):list;const[previewGrid,setPreviewGrid]=React.useState(Math.max(0,list.length-1));const[pendingGrid,setPendingGrid]=React.useState(null);const pageGrid=gridActive(gsnap,gridOpts);React.useEffect(()=>{if(pendingGrid===null)return;const t=window.setTimeout(()=>setPendingGrid(null),900);return()=>window.clearTimeout(t);},[pendingGrid]);const gridIndex=live?pendingGrid??pageGrid:canvas?clamp(Math.round(num(cv.grid,list.length))-1,0,Math.max(0,list.length-1)):previewGrid;const onGrid=i=>{if(i===gridIndex)return;giveFeedback(feedback);if(!live)return setPreviewGrid(i);setPendingGrid(i);// A tap back to the outgoing layout must replace a pending request too.\nselectGridOnPage(i);};// Width taken by the grid side (icons + spacing + divider / its frame).\nconst[side,setSide]=React.useState(0);const sideObserver=React.useRef(null);const sideRef=React.useCallback(el=>{sideObserver.current?.disconnect();sideObserver.current=null;if(!el){setSide(0);return;}const m=()=>setSide(el.offsetWidth);m();if(typeof ResizeObserver===\"undefined\")return;sideObserver.current=new ResizeObserver(m);sideObserver.current.observe(el);},[]);if(live&&!labels.length)return cmsSource;const edge=p.placement?.position===\"top\"?\"top\":\"bottom\";const s=p.surface||{};const preset=p.preset||\"custom\";const fr=p.frames||{};const showGrid=g.show!==false&&gridOnDevice(r,device)&&gridOpts.length>1;const separate=!!fr.separate&&showGrid;const navPad=surfacePad(s,preset,5);// Separate Frames: the menu frame has its own padding.\nconst menuPad=separate?pad4(fr.menuPadding,navPad):navPad;const baseRadius=s.radius??999;const radius=mode===\"wheel\"?Math.min(baseRadius,24):baseRadius;// Corner Styling: each corner of each frame (Wheel caps them at 24).\nconst sc=s;const capC=c=>mode===\"wheel\"?c.map(v=>Math.min(v,24)):c;const menuC=capC(sc.corners?sc.corners:[baseRadius,baseRadius,baseRadius,baseRadius]);// Item radius: \"Auto\" keeps items concentric with the surface\n// (surface radius minus padding), for every preset.\nconst it0=p.items||{};const itemR=it0.radiusMode===\"custom\"?it0.indicatorRadius??999:Math.max(0,radius-Math.min(menuPad[0],menuPad[3]));const pp={...p,items:{...it0,indicatorRadius:itemR}};const hoverIndex=pvState===\"hover\"&&labels.length>1?(active+1)%labels.length:-1;const layoutProps={labels,active,onSelect,onTick,p:pp,pal,transition,edge,navRef,navPad:menuPad,expand:{open:expandedShown,setOpen,hover},setExtend,pv:{open:pvState===\"open\",hover:hoverIndex},onNatural};const dd=p.dropdown||{};const integrated=mode===\"dropdown\"&&dd.style===\"expand\";const panelR=dd.radius&&dd.radius>0?dd.radius:Math.min(baseRadius,22);const gridNode=showGrid?/*#__PURE__*/_jsx(GridIcons,{g:g,pal:pal,options:gridOpts,active:Math.min(gridIndex,gridOpts.length-1),onSelect:onGrid,transition:transition}):null;// Space between categories and grid (exact, starts at 0). With the\n// divider on, the divider sits in the middle of that space.\nconst spacing=Math.max(0,num(g.spacing,12));const dividerOn=showGrid&&g.divider!==false&&!separate;const half=Math.max(0,(spacing-1)/2);const divider=dividerOn?/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{width:1,alignSelf:\"stretch\",margin:Math.max(0,num(g.dividerInset,7))+\"px \"+half+\"px\",background:pal.line,flexShrink:0}}):null;const categories=mode===\"dropdown\"?/*#__PURE__*/_jsx(DropdownLayout,{...layoutProps},\"dropdown\"):mode===\"wheel\"?/*#__PURE__*/_jsx(WheelLayout,{...layoutProps},\"wheel\"):mode===\"stepper\"?/*#__PURE__*/_jsx(StepperLayout,{...layoutProps},\"stepper\"):mode===\"expand\"?/*#__PURE__*/_jsx(ExpandLayout,{...layoutProps},\"expand\"):/*#__PURE__*/_jsx(BarLayout,{...layoutProps},\"bar\");const left=g.position===\"left\";// Width: Fit content, a Fixed width, or Fill the screen (minus margins).\nconst pl=p.placement||{};const fixedPos=!canvas&&(pl.position||\"bottom\")!==\"inline\";const full=fixedPos?\"100%\":\"100vw\";const wm=pl.widthMode||\"fit\";const shellWidth=wm===\"fixed\"?\"min(\"+(pl.width??560)+\"px, calc(\"+full+\" - 24px))\":wm===\"fill\"?\"calc(\"+full+\" - \"+2*Math.max(0,pl.margin??16)+\"px)\":undefined;// Room for the categories is always measured against the screen (vw):\n// a % here made Fixed / Fill width measure itself and collapse to 0.\nconst screen=shellWidth?shellWidth.split(\"100%\").join(\"100vw\").replace(/^calc\\((.*)\\)$/,\"$1\"):pl.maxWidth?\"min(\"+pl.maxWidth+\"px, 100vw - 24px)\":\"100vw - 24px\";const frameGap=separate?Math.max(0,num(fr.gap,8)):0;// Open Width = Fit All: the fixed width widens to fit every category\n// while Expand is open, then glides back when it closes.\nlet animWidth;if(wm===\"fixed\"&&mode===\"expand\"&&ex.fitOpen!==false){const roomPx=Math.max(120,(canvas?1440:screenW)-24);const fixedPx=Math.min(num(pl.width,560),roomPx);const allPx=barNatural>0?menuPad[1]+menuPad[3]+barNatural+side+frameGap+1:0;// Max Width set: opens to exactly that width, then back to Fixed.\nconst maxPx=Math.max(0,num(pl.maxWidth,0));animWidth=!expandedShown?fixedPx:maxPx>0?Math.min(roomPx,maxPx):allPx>0?Math.min(roomPx,Math.max(fixedPx,allPx)):fixedPx;}const avail=\"calc(\"+(animWidth!==undefined?animWidth+\"px\":screen)+\" - \"+(menuPad[1]+menuPad[3]+side+frameGap)+\"px)\";const sideNode=showGrid&&!separate?/*#__PURE__*/_jsxs(\"span\",{ref:sideRef,className:\"wm-fade\",style:{display:\"flex\",alignItems:\"center\",flexShrink:0,alignSelf:\"stretch\",boxSizing:\"border-box\",...dividerOn?null:left?{paddingRight:spacing}:{paddingLeft:spacing}},children:[left?gridNode:divider,left?divider:gridNode]}):null;const extendProp=integrated?{size:extend.size,up:extend.up,// Each corner on its own: closed = your corners, open = the\n// same corners (capped by the panel radius).\nradius:menuC.map(v=>Math.min(v,panelR)),base:menuC.map(v=>navH>0?Math.min(v,navH/2):v)}:undefined;// Expand follows Style → Text Align (Auto = steady left anchor).\nconst rawAlign=(p.items||{}).textAlignRaw||\"auto\";const expandJustify=rawAlign===\"center\"?\"center\":rawAlign===\"right\"?\"flex-end\":undefined;const categoriesWrap=/*#__PURE__*/_jsx(\"div\",{className:\"wm-fade\",onPointerDown:e=>{swiped.current=false;swipe.current=swipeOn?{x:e.clientX,y:e.clientY,t:performance.now()}:null;},onPointerUp:e=>{const sw=swipe.current;swipe.current=null;if(!sw)return;const dx=e.clientX-sw.x;const dy=e.clientY-sw.y;if(Math.abs(dx)>36&&Math.abs(dx)>Math.abs(dy)*1.4&&performance.now()-sw.t<800){swiped.current=true;onSelect(active+(dx<0?1:-1));}},onClickCapture:e=>{if(!swiped.current)return;swiped.current=false;e.preventDefault();e.stopPropagation();},style:{// Dropdown: the panel is positioned from the whole menu\n// frame, so this wrapper must not be its anchor.\nposition:mode===\"dropdown\"?\"static\":\"relative\",minWidth:0,flex:shellWidth?\"1 1 auto\":\"0 1 auto\",display:\"flex\",// Expand stays anchored left so its text never drifts while the\n// width glides open / closed.\njustifyContent:mode===\"expand\"?expandJustify:shellWidth&&mode!==\"bar\"?\"center\":undefined,touchAction:swipeOn?\"pan-y\":undefined},children:categories});// Highlight \"When Open\" + On Hover (Bar, Wheel, Stepper): shown while the\n// pointer is on the menu, or a finger touches it (fades out after).\nconst hlOn=(e,on,delay=0)=>{if(!p.items?.hlHover)return;const host=e.currentTarget.closest(\"[data-wm]\");if(!host)return;window.clearTimeout(host.__hlT||0);if(on)host.setAttribute(\"data-hlon\",\"\");else host.__hlT=window.setTimeout(()=>host.removeAttribute(\"data-hlon\"),delay);};const navEvents={onPointerDown:e=>hlOn(e,true),onPointerUp:e=>{if(e.pointerType!==\"mouse\")hlOn(e,false,900);},onPointerCancel:e=>hlOn(e,false,900),onPointerEnter:e=>{if(e.pointerType===\"mouse\")hlOn(e,true);if(mode===\"expand\"&&e.pointerType===\"mouse\")window.clearTimeout(closeTimer.current);},onPointerLeave:e=>{if(e.pointerType===\"mouse\")hlOn(e,false,120);if(mode!==\"expand\"||e.pointerType!==\"mouse\"||!hover)return;window.clearTimeout(closeTimer.current);closeTimer.current=window.setTimeout(()=>setExpanded(false),closeDelay);}};// Full-frame interaction: a click / tap anywhere in a frame (padding,\n// gaps, a 0% highlight) acts on the nearest button in that frame.\nconst pressNearest=e=>{const t=e.target;if(t.closest(\"button\")||t.closest('[role=\"listbox\"]'))return;const frame=e.currentTarget;let best=null;let bd=Infinity;frame.querySelectorAll(\"button\").forEach(b=>{if(b.disabled)return;if(!b.getClientRects().length)return;if(b.closest('[aria-hidden=\"true\"]'))return;if(getComputedStyle(b).pointerEvents===\"none\")return;const r=b.getBoundingClientRect();const dx=Math.max(r.left-e.clientX,0,e.clientX-r.right);const dy=Math.max(r.top-e.clientY,0,e.clientY-r.bottom);const d=dx*dx+dy*dy;if(d<bd){bd=d;best=b;}});if(best)best.click();};const openOnHover=e=>{if(mode===\"expand\"&&hover&&e.pointerType===\"mouse\"){window.clearTimeout(closeTimer.current);setOpen(true);}};// Separate Frames: menu and grid icons each sit in their own frame,\n// with their own padding, radius and glass.\nlet content;if(separate){const gridPad=pad4(fr.gridPadding,[5,5,5,5]);const gridR=num(fr.gridRadius,baseRadius);const gridC=capC(fr.gridCorners?fr.gridCorners:[gridR,gridR,gridR,gridR]);const gStyle=fr.gridStyle&&fr.gridStyle!==\"same\"?fr.gridStyle:null;const gS={...s,...gStyle?{style:gStyle}:null,...fr.gridTint?{tint:fr.gridTint}:null,radius:gridR,smooth:fr.gridSmooth??sc.smooth};const gPreset=gStyle&&gStyle!==\"savee\"?\"custom\":preset;content=/*#__PURE__*/_jsxs(\"nav\",{ref:navRef,\"aria-label\":\"Work categories\",...navEvents,style:{[\"--wm-avail\"]:avail,position:\"relative\",display:\"flex\",flexDirection:left?\"row-reverse\":\"row\",alignItems:\"center\",gap:frameGap,width:shellWidth?\"100%\":undefined,maxWidth:\"100%\",minWidth:0,boxSizing:\"border-box\",...fontStyle(p.typography)},children:[/*#__PURE__*/_jsxs(\"div\",{ref:setMenuFrame,onClick:pressNearest,onPointerEnter:openOnHover,style:{cursor:\"pointer\",position:\"relative\",display:\"flex\",alignItems:\"center\",padding:padCss(menuPad),borderRadius:cornersCss(menuC),minWidth:0,flex:shellWidth?\"1 1 auto\":\"0 1 auto\",boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(Surface,{s:s,preset:preset,radius:radius,corners:menuC,extend:extendProp,transition:dd.transition||transition}),categoriesWrap]}),/*#__PURE__*/_jsxs(\"div\",{ref:sideRef,onClick:pressNearest,style:{cursor:\"pointer\",position:\"relative\",display:\"flex\",alignItems:\"center\",alignSelf:\"stretch\",padding:padCss(gridPad),borderRadius:cornersCss(gridC),flexShrink:0,boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(Surface,{s:gS,preset:gPreset,radius:gridR,corners:gridC}),/*#__PURE__*/_jsx(\"span\",{className:\"wm-fade\",style:{position:\"relative\",display:\"flex\"},children:gridNode})]})]});}else{content=/*#__PURE__*/_jsxs(\"nav\",{ref:setNav,\"aria-label\":\"Work categories\",...navEvents,onPointerEnter:e=>{navEvents.onPointerEnter(e);openOnHover(e);},onClick:pressNearest,style:{cursor:\"pointer\",[\"--wm-avail\"]:avail,position:\"relative\",display:\"flex\",alignItems:\"center\",gap:0,padding:padCss(navPad),borderRadius:cornersCss(menuC),width:shellWidth?\"100%\":undefined,maxWidth:\"100%\",minWidth:0,boxSizing:\"border-box\",...fontStyle(p.typography)},children:[/*#__PURE__*/_jsx(Surface,{s:s,preset:preset,radius:radius,corners:menuC,extend:extendProp,transition:dd.transition||transition}),left&&sideNode,categoriesWrap,!left&&sideNode]});}return /*#__PURE__*/_jsxs(_Fragment,{children:[cmsSource,/*#__PURE__*/_jsx(Shell,{p:p,pal:pal,canvas:canvas,edge:edge,id:id,transition:transition,width:shellWidth,animWidth:animWidth,expandOpen:expandedShown,children:/*#__PURE__*/_jsx(DropdownGeometry.Provider,{value:{height:dropdownHeight,baseHeight:navH},children:content})})]});}/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 110\n * @framerIntrinsicHeight 32\n */export function WorkGridSwitch(props){const canvas=RenderTarget.current()===RenderTarget.canvas;const live=!canvas&&isBrowser;const id=React.useId().replace(/:/g,\"\");const rootRef=React.useRef(null);const r=props.responsive||{};const device=useDevice(rootRef,canvas,r);const snap=usePage({anchor:props.source?.anchor||\"Center Buttons\",activeName:props.source?.activeName||\"Active\",sort:props.source?.sort||\"cms\",hide:props.source?.hide||\"\"},live);const transition=props.transition||DEFAULT_TRANSITION;const g=props.grid||{};const pal=palette({preset:props.preset,grid:g,surface:props.surface});const list=iconList(g,device);const list2=parseColumns(g.icons2||\"\",[1,2]);const options=live?gridOptions(snap,list,list2):list;const[preview,setPreview]=React.useState(Math.max(0,list.length-1));const[pending,setPending]=React.useState(null);const pageIndex=gridActive(snap,options);React.useEffect(()=>{if(pending===null)return;const t=window.setTimeout(()=>setPending(null),900);return()=>window.clearTimeout(t);},[pending]);if(live&&(options.length<2||!gridOnDevice(r,device)))return null;const index=live?pending??pageIndex:preview;const preset=props.preset||\"custom\";const s={style:\"none\",...props.surface||{}};const pad=surfacePad(s,preset,3);return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,\"data-wm\":id,style:{...props.style,position:\"relative\",display:\"inline-flex\",padding:padCss(pad),borderRadius:s.radius??999,\"--wm-hover\":pal.gridActive},children:[scopedCss(id,s),/*#__PURE__*/_jsx(Surface,{s:s,preset:preset,radius:s.radius??999}),/*#__PURE__*/_jsx(GridIcons,{g:g,pal:pal,options:options,active:Math.min(index,options.length-1),transition:transition,onSelect:i=>{if(i===index)return;giveFeedback(props.feedback);if(!live)return setPreview(i);setPending(i);if(i!==pageIndex)selectGridOnPage(i);}})]});}// ---------------------------------------------------------------------------\n// Right-panel controls\n// ---------------------------------------------------------------------------\nconst saveeOn=(s,root)=>!!(s&&s.style===\"savee\")||!!(root&&root.preset===\"savee\");const saveeColoursOn=root=>!!root&&saveeOn(root.surface,root)&&!(root.surface&&root.surface.saveeColors===false);const styleOf=s=>s&&s.style||\"glass\";const presetControl={type:ControlType.Enum,title:\"Preset\",options:[\"custom\",\"savee\"],optionTitles:[\"Custom\",\"Savee Glass\"],displaySegmentedControl:true,defaultValue:\"custom\",description:\"Savee Glass = savee.com glass (light & dark). Everything stays editable: tune it in Surface, and turn Savee Colours off to use your own colours.\"};const surfaceControls=(defaults={})=>({type:ControlType.Object,title:\"Surface\",controls:{style:{type:ControlType.Enum,title:\"Style\",options:[\"glass\",\"savee\",\"frosted\",\"solid\",\"gradient\",\"outline\",\"none\"],optionTitles:[\"Glass\",\"Savee Glass\",\"Frosted\",\"Solid\",\"Gradient\",\"Outline\",\"None\"],defaultValue:defaults.style||\"glass\"},// Savee Glass — full control, light and dark.\n    saveeLight:{type:ControlType.Color,title:\"Glass Light\",defaultValue:\"rgba(228, 228, 228, 0.6)\",hidden:(s,root)=>!saveeOn(s,root)},saveeDark:{type:ControlType.Color,title:\"Glass Dark\",defaultValue:\"rgba(30, 30, 30, 0.6)\",hidden:(s,root)=>!saveeOn(s,root)},saveeBlur:{type:ControlType.Number,title:\"Blur\",min:0,max:120,step:1,unit:\"px\",defaultValue:50,hidden:(s,root)=>!saveeOn(s,root)},saveeSaturation:{type:ControlType.Number,title:\"Saturation\",min:0,max:250,step:5,unit:\"%\",defaultValue:100,hidden:(s,root)=>!saveeOn(s,root)},saveeGloss:{type:ControlType.Number,title:\"Gloss\",min:0,max:1,step:.05,defaultValue:0,hidden:(s,root)=>!saveeOn(s,root)},saveeBorder:{type:ControlType.Color,title:\"Edge\",defaultValue:\"rgba(255, 255, 255, 0)\",hidden:(s,root)=>!saveeOn(s,root)},saveeBorderWidth:{type:ControlType.Number,title:\"Edge Width\",min:0,max:4,step:.5,defaultValue:1.5,hidden:(s,root)=>!saveeOn(s,root)},saveeColors:{type:ControlType.Boolean,title:\"Savee Colours\",defaultValue:true,enabledTitle:\"Savee\",disabledTitle:\"Custom\",description:\"Savee = Savee's light/dark text colours. Custom = your colours in Items and Grid Icons.\",hidden:(s,root)=>!saveeOn(s,root)},// Custom styles\n    tint:{type:ControlType.Color,title:\"Tint\",defaultValue:TOKEN_BG,hidden:(s,root)=>saveeOn(s,root)||[\"outline\",\"none\",\"gradient\"].includes(styleOf(s))},opacity:{type:ControlType.Number,title:\"Tint Opacity\",min:0,max:100,step:1,unit:\"%\",defaultValue:72,hidden:(s,root)=>saveeOn(s,root)||[\"outline\",\"none\",\"gradient\"].includes(styleOf(s))},blur:{type:ControlType.Number,title:\"Blur\",min:0,max:80,step:1,unit:\"px\",defaultValue:24,hidden:(s,root)=>saveeOn(s,root)||![\"glass\",\"frosted\"].includes(styleOf(s))},saturation:{type:ControlType.Number,title:\"Saturation\",min:100,max:250,step:5,unit:\"%\",defaultValue:180,hidden:(s,root)=>saveeOn(s,root)||![\"glass\",\"frosted\"].includes(styleOf(s))},gloss:{type:ControlType.Number,title:\"Gloss\",min:0,max:1,step:.05,defaultValue:.35,hidden:(s,root)=>saveeOn(s,root)||[\"outline\",\"none\",\"solid\"].includes(styleOf(s))},gradientFrom:{type:ControlType.Color,title:\"Gradient A\",defaultValue:\"rgb(236, 236, 255)\",hidden:(s,root)=>saveeOn(s,root)||styleOf(s)!==\"gradient\"},gradientTo:{type:ControlType.Color,title:\"Gradient B\",defaultValue:\"rgb(255, 236, 246)\",hidden:(s,root)=>saveeOn(s,root)||styleOf(s)!==\"gradient\"},gradientAngle:{type:ControlType.Number,title:\"Angle\",min:0,max:360,step:1,unit:\"\\xb0\",defaultValue:135,hidden:(s,root)=>saveeOn(s,root)||styleOf(s)!==\"gradient\"},border:{type:ControlType.Color,title:\"Border\",defaultValue:TOKEN_LINE,hidden:(s,root)=>saveeOn(s,root)||styleOf(s)===\"none\"},borderWidth:{type:ControlType.Number,title:\"Border Width\",min:0,max:4,step:.5,defaultValue:1,hidden:(s,root)=>saveeOn(s,root)||styleOf(s)===\"none\"},// Shared by every style\n    radius:{type:ControlType.Number,title:\"Radius\",min:0,max:999,step:1,defaultValue:999},inset:{type:ControlType.Padding,title:\"Padding\",defaultValue:(defaults.padding??5)+\"px\"},shadow:{type:ControlType.Number,title:\"Shadow\",min:0,max:.6,step:.01,defaultValue:.12}}});const gridControlSet={show:{type:ControlType.Boolean,title:\"Show\",defaultValue:true},position:{type:ControlType.Enum,title:\"Position\",options:[\"right\",\"left\"],optionTitles:[\"Right\",\"Left\"],displaySegmentedControl:true,defaultValue:\"right\"},spacing:{type:ControlType.Number,title:\"Spacing\",min:0,max:80,step:.1,unit:\"px\",defaultValue:12,description:\"Exact space between the categories and the grid icons.\"},divider:{type:ControlType.Boolean,title:\"Divider\",defaultValue:true},dividerInset:{type:ControlType.Number,title:\"Divider Inset\",min:0,max:30,step:1,unit:\"px\",defaultValue:7,hidden:g=>g&&g.divider===false},style:{type:ControlType.Enum,title:\"Icon Style\",options:[\"site\",\"blocks\",\"outline\",\"dots\",\"bars\",\"numbers\"],optionTitles:[\"Same as page\",\"Blocks\",\"Outline\",\"Dots\",\"Bars\",\"Numbers\"],defaultValue:\"site\"},size:{type:ControlType.Number,title:\"Icon Size\",min:6,max:40,step:1,unit:\"px\",defaultValue:15},sizeMode:{type:ControlType.Enum,title:\"Button\",options:[\"fixed\",\"padding\"],optionTitles:[\"Fixed Size\",\"Padding\"],displaySegmentedControl:true,defaultValue:\"fixed\"},buttonSize:{type:ControlType.Number,title:\"Button Size\",min:0,max:64,step:1,unit:\"px\",defaultValue:28,hidden:g=>g&&g.sizeMode===\"padding\"},padding:{type:ControlType.Padding,title:\"Button Padding\",defaultValue:\"6px\",hidden:g=>!g||g.sizeMode!==\"padding\"},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:40,step:.1,unit:\"px\",defaultValue:4},groupPadding:{type:ControlType.Padding,title:\"Group Padding\",defaultValue:\"0px\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0, 0, 0, 0)\",description:\"Transparent by default: no colour behind the icons.\"},indicator:{type:ControlType.Enum,title:\"Active\",options:[\"none\",\"pill\"],optionTitles:[\"Colour only\",\"Pill\"],displaySegmentedControl:true,defaultValue:\"none\"},activeColor:{type:ControlType.Color,title:\"Active\",defaultValue:TOKEN_TEXT,hidden:(g,root)=>saveeColoursOn(root)},inactiveColor:{type:ControlType.Color,title:\"Inactive\",defaultValue:TOKEN_LINE,hidden:(g,root)=>saveeColoursOn(root)},indicatorColor:{type:ControlType.Color,title:\"Pill\",defaultValue:TOKEN_SOFT,hidden:(g,root)=>!g||g.indicator!==\"pill\"||saveeColoursOn(root)},icons3:{type:ControlType.String,title:\"Desktop\",defaultValue:\"2, 4, 6\",description:\"Columns each grid icon shows, left to right. Use CxR for a denser grid, e.g. 2x3.\"},iconsTablet:{type:ControlType.String,title:\"Tablet\",defaultValue:\"\",placeholder:\"Same as Desktop\"},iconsPhone:{type:ControlType.String,title:\"Phone\",defaultValue:\"1, 2, 2x3\"},icons2:{type:ControlType.String,title:\"2 Buttons\",defaultValue:\"1, 2\",description:\"Used when the page has 2 grid buttons, or a single toggle.\"}};// Breakpoints — short on purpose. Anything else can also be changed per\n// breakpoint the normal Framer way: select the menu in the Tablet or Phone\n// frame and change the setting there.\nObject.keys(gridControlSet).forEach(k=>{if(k===\"show\")return;const c=gridControlSet[k];const prev=c.hidden;c.hidden=(g,root)=>!!g&&g.show===false||(prev?!!prev(g,root):false);});const showHide={enabledTitle:\"Show\",disabledTitle:\"Hide\"};const responsiveControls={tabletGrid:{type:ControlType.Boolean,title:\"Tablet Grid\",defaultValue:true,...showHide},phoneGrid:{type:ControlType.Boolean,title:\"Phone Grid\",defaultValue:true,...showHide,description:\"Grid icons need your page's own grid buttons on that screen size (Visible: Yes, Opacity 0).\"}};const deviceModes={options:[\"same\",\"bar\",\"dropdown\",\"wheel\",\"stepper\",\"expand\"],optionTitles:[\"Same as Desktop\",\"Bar\",\"Dropdown\",\"Wheel\",\"Stepper\",\"Expand\"]};// Tablet / Phone sizing: Width, Fixed Width, Max Width and Steady on Scroll\n// (iPad and other tablets included), each \"Same\" as Desktop by default.\nconst sizeControls=(d,label)=>{const k=s=>d+s;const widthOf=r=>r&&r[k(\"Width\")]||\"same\";const effective=(r,root)=>{const v=widthOf(r);return v===\"same\"?root&&root.placement&&root.placement.widthMode||\"fit\":v;};return{[k(\"Width\")]:{type:ControlType.Enum,title:label+\" Width\",options:[\"same\",\"fit\",\"fixed\",\"fill\"],optionTitles:[\"Same\",\"Fit\",\"Fixed\",\"Fill\"],displaySegmentedControl:true,defaultValue:\"same\"},[k(\"FixedWidth\")]:{type:ControlType.Number,title:label+\" Fixed W\",min:0,max:1600,step:1,unit:\"px\",defaultValue:0,description:\"0 = same as Desktop.\",hidden:(r,root)=>effective(r,root)!==\"fixed\"},[k(\"Margin\")]:{type:ControlType.Number,title:label+\" Margin\",min:0,max:200,step:1,unit:\"px\",defaultValue:16,hidden:r=>widthOf(r)!==\"fill\"},[k(\"MaxWidth\")]:{type:ControlType.Number,title:label+\" Max W\",min:0,max:1600,step:10,unit:\"px\",defaultValue:0,description:\"0 = same as Desktop.\"},[k(\"Steady\")]:{type:ControlType.Enum,title:label+\" Steady\",options:[\"same\",\"on\",\"off\"],optionTitles:[\"Same\",\"On\",\"Off\"],displaySegmentedControl:true,defaultValue:\"same\",description:\"Steady on Scroll for this size.\"}};};const menuResponsiveControls={tabletMode:{type:ControlType.Enum,title:\"Tablet Layout\",...deviceModes,defaultValue:\"same\"},tabletGrid:responsiveControls.tabletGrid,...sizeControls(\"tablet\",\"Tablet\"),phoneMode:{type:ControlType.Enum,title:\"Phone Layout\",...deviceModes,defaultValue:\"same\"},phoneGrid:responsiveControls.phoneGrid,...sizeControls(\"phone\",\"Phone\")};const interactionControls={type:ControlType.Object,title:\"Interaction\",controls:{touchDrag:{type:ControlType.Boolean,title:\"Touch Dragging\",defaultValue:true,description:\"Swipe the Bar, Stepper and Wheel with a finger. Off = taps only (the page still scrolls).\"},mouseDrag:{type:ControlType.Boolean,title:\"Horizontal Dragging\",defaultValue:true,description:\"Click and drag the Bar sideways with a mouse, or drag the Stepper to change category.\"},wheelScroll:{type:ControlType.Boolean,title:\"Wheel Scrolls Bar\",defaultValue:true},closeDelay:{type:ControlType.Number,title:\"Expand Close\",min:0,max:2e3,step:10,unit:\"ms\",defaultValue:380,description:\"Expand closes this long after the pointer leaves the whole navigation (grid icons included).\"},keepOpen:{type:ControlType.Boolean,title:\"Keep Expanded\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Keep Expanded While Hovering. On: choosing a category never collapses Expand while the pointer is still on the navigation. Off: it collapses after choosing.\"},outsideClose:{type:ControlType.Boolean,title:\"Outside Click\",defaultValue:true,enabledTitle:\"Closes\",disabledTitle:\"Ignore\",description:\"A click / tap outside the navigation collapses Expand.\"}}};const feedbackControls={type:ControlType.Object,title:\"Feel\",controls:{haptics:{type:ControlType.Boolean,title:\"Haptics\",defaultValue:true,description:\"A light tap on iPhone (iOS 18+) and Android when switching. iPads and computers have no vibration motor.\"},strength:{type:ControlType.Enum,title:\"Strength\",options:[\"light\",\"medium\",\"strong\"],optionTitles:[\"Light\",\"Medium\",\"Strong\"],displaySegmentedControl:true,defaultValue:\"light\",description:\"Android only — iPhone uses the system tick.\"},sound:{type:ControlType.Boolean,title:\"Sound\",defaultValue:false},soundStyle:{type:ControlType.Enum,title:\"Sound Style\",options:[\"tick\",\"soft\",\"glass\"],optionTitles:[\"Tick\",\"Soft\",\"Glass\"],displaySegmentedControl:true,defaultValue:\"tick\"},volume:{type:ControlType.Number,title:\"Volume\",min:0,max:1,step:.01,defaultValue:.18},wheelTicks:{type:ControlType.Boolean,title:\"Wheel Ticks\",defaultValue:true,description:\"Wheel layout: a softer tick for every row that passes.\"}}};const sourceControls={anchor:{type:ControlType.String,title:\"List Layer\",defaultValue:\"Center Buttons\",description:\"Name of your existing category list layer. Keep it on the page (Opacity 0 is fine, Visible: No is not).\"},activeName:{type:ControlType.String,title:\"Active Variant\",defaultValue:\"Active\"},preview:{type:ControlType.String,title:\"Canvas Preview\",defaultValue:SAMPLE.join(\", \"),displayTextArea:true}};const workMenuControls={preset:presetControl,mode:{type:ControlType.Enum,title:\"Layout\",options:[\"bar\",\"dropdown\",\"wheel\",\"stepper\",\"expand\"],optionTitles:[\"Bar \\xb7 scroll left/right\",\"Dropdown\",\"Wheel \\xb7 scroll up/down\",\"Stepper \\xb7 arrows & swipe\",\"Expand \\xb7 pill opens\"],defaultValue:\"bar\",description:\"Works with Custom and Savee Glass.\"},responsive:{type:ControlType.Object,title:\"Breakpoints\",description:\"Tablet / Phone layout and grid icons.\",controls:menuResponsiveControls},placement:{type:ControlType.Object,title:\"Placement\",controls:{position:{type:ControlType.Enum,title:\"Position\",options:[\"bottom\",\"top\",\"inline\"],optionTitles:[\"Bottom\",\"Top\",\"Inline\"],displaySegmentedControl:true,defaultValue:\"bottom\",description:\"Bottom / Top float centred on screen. Inline stays where you place the layer.\"},offset:{type:ControlType.Number,title:\"Offset\",min:0,max:200,step:1,unit:\"px\",defaultValue:24},widthMode:{type:ControlType.Enum,title:\"Width\",options:[\"fit\",\"fixed\",\"fill\"],optionTitles:[\"Fit\",\"Fixed\",\"Fill\"],displaySegmentedControl:true,defaultValue:\"fit\",description:\"Fit = hugs the items. Fixed = your width. Fill = full screen minus margins.\"},width:{type:ControlType.Number,title:\"Fixed Width\",min:160,max:1600,step:10,unit:\"px\",defaultValue:560,hidden:pl=>!pl||pl.widthMode!==\"fixed\"},margin:{type:ControlType.Number,title:\"Fill Margin\",min:0,max:200,step:1,unit:\"px\",defaultValue:16,hidden:pl=>!pl||pl.widthMode!==\"fill\"},steadyMobile:{type:ControlType.Boolean,title:\"Steady on Scroll\",defaultValue:true,description:\"Phones and tablets (iPad included): the menu stays put while the browser bars collapse during scrolling.\"},maxWidth:{type:ControlType.Number,title:\"Max Width\",min:0,max:1600,step:10,unit:\"px\",defaultValue:0,description:\"0 = fit content (never wider than the screen).\"},zIndex:{type:ControlType.Number,title:\"Z Index\",min:0,max:9999,step:1,defaultValue:50}}},surface:surfaceControls(),items:{type:ControlType.Object,title:\"Items\",controls:{indicator:{type:ControlType.Enum,title:\"Active Style\",options:[\"pill\",\"underline\",\"dot\",\"none\"],optionTitles:[\"Pill\",\"Underline\",\"Dot\",\"Colour only\"],defaultValue:\"pill\"},activeColor:{type:ControlType.Color,title:\"Active Text\",defaultValue:TOKEN_TEXT,hidden:(it,root)=>saveeColoursOn(root)},inactiveColor:{type:ControlType.Color,title:\"Text\",defaultValue:TOKEN_MUTED,hidden:(it,root)=>saveeColoursOn(root)},hoverColor:{type:ControlType.Color,title:\"Hover Text\",defaultValue:TOKEN_TEXT,hidden:(it,root)=>saveeColoursOn(root)},indicatorColor:{type:ControlType.Color,title:\"Indicator\",defaultValue:TOKEN_SOFT,hidden:(it,root)=>saveeColoursOn(root)},radiusMode:{type:ControlType.Enum,title:\"Item Radius\",options:[\"auto\",\"custom\"],optionTitles:[\"Auto\",\"Custom\"],displaySegmentedControl:true,defaultValue:\"auto\",description:\"Auto = always concentric with the surface (surface radius minus padding).\"},indicatorRadius:{type:ControlType.Number,title:\"Custom Radius\",min:0,max:999,step:1,defaultValue:999,hidden:it=>!it||it.radiusMode!==\"custom\"},align:{type:ControlType.Enum,title:\"Align\",options:[\"start\",\"center\",\"spread\",\"fill\"],optionTitles:[\"Start\",\"Center\",\"Spread\",\"Fill\"],defaultValue:\"start\",description:\"How items sit when the menu is wider than them (Fixed / Fill width).\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"16px 40px 16px 40px\"},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:40,step:.1,unit:\"px\",defaultValue:2,description:\"Exact space between items. 0 = touching, decimals allowed.\"},dots:{type:ControlType.Boolean,title:\"Category Dots\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"The active dot in Dropdown and the ••• hint on the closed Expand pill.\"},fadeEdges:{type:ControlType.Boolean,title:\"Fade Edges\",defaultValue:true}}},icons:{type:ControlType.Object,title:\"Icons & Arrows\",controls:{style:{type:ControlType.Enum,title:\"Arrow Style\",options:[\"chevron\",\"arrow\",\"filled\",\"outline\"],optionTitles:[\"Chevron\",\"Arrow\",\"Filled\",\"Outline\"],defaultValue:\"chevron\"},size:{type:ControlType.Number,title:\"Size\",min:4,max:40,step:.5,unit:\"px\",defaultValue:10},stroke:{type:ControlType.Number,title:\"Stroke\",min:.5,max:4,step:.1,defaultValue:1.3,hidden:i=>!!i&&i.style===\"filled\"},gap:{type:ControlType.Number,title:\"Text ↔ Icon\",min:0,max:60,step:.1,unit:\"px\",defaultValue:10,description:\"Exact space between text and its arrow / icon: Dropdown, Stepper, Wheel arrows, Expand dots.\"},prefixGap:{type:ControlType.Number,title:\"Prefix ↔ Text\",min:0,max:60,step:.1,unit:\"px\",defaultValue:10},pairGap:{type:ControlType.Number,title:\"Arrow ↔ Arrow\",min:0,max:40,step:.1,unit:\"px\",defaultValue:2,description:\"Space inside grouped arrows (Wheel).\"},fixed:{type:ControlType.Boolean,title:\"Keep Icons Fixed\",defaultValue:false,enabledTitle:\"Fixed\",disabledTitle:\"Follow\",description:\"Fixed: arrows / icons never move, whatever the text length. Follow: they glide with the text.\"},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,defaultValue:\"start\",hidden:i=>!i||!i.fixed},align:{type:ControlType.Enum,title:\"Icon Align\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Top\",\"Middle\",\"Bottom\"],displaySegmentedControl:true,defaultValue:\"center\"},x:{type:ControlType.Number,title:\"Icon X\",min:-40,max:40,step:.5,unit:\"px\",defaultValue:0},y:{type:ControlType.Number,title:\"Icon Y\",min:-40,max:40,step:.5,unit:\"px\",defaultValue:0}}},dropdown:{type:ControlType.Object,title:\"Dropdown\",hidden:p=>{const r=p.responsive||{};return p.mode!==\"dropdown\"&&r.tabletMode!==\"dropdown\"&&r.phoneMode!==\"dropdown\";},controls:{style:{type:ControlType.Enum,title:\"Style\",options:[\"panel\",\"expand\"],optionTitles:[\"Panel\",\"Expand Menu\"],displaySegmentedControl:true,defaultValue:\"panel\",description:\"Expand Menu: the menu frame itself grows from its edge and reveals the items inside — one glass, no gap.\"},transition:{type:ControlType.Transition,title:\"Open Motion\",defaultValue:{type:\"spring\",stiffness:380,damping:38,mass:1},description:\"Speed, easing and spring of opening / closing.\"},closeDelay:{type:ControlType.Number,title:\"Close After\",min:0,max:1e3,step:10,unit:\"ms\",defaultValue:140,description:\"How long the chosen item shows before it closes.\"},label:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\",placeholder:\"e.g. Filter\"},direction:{type:ControlType.Enum,title:\"Opens\",options:[\"auto\",\"up\",\"down\"],optionTitles:[\"Auto\",\"Up\",\"Down\"],displaySegmentedControl:true,defaultValue:\"auto\",description:\"Auto picks the side with room.\"},widthMode:{type:ControlType.Enum,title:\"Panel Width\",hidden:d=>!!d&&d.style===\"expand\",options:[\"menu\",\"fit\",\"fixed\"],optionTitles:[\"Menu\",\"Fit\",\"Fixed\"],displaySegmentedControl:true,defaultValue:\"menu\"},width:{type:ControlType.Number,title:\"Fixed Width\",min:80,max:800,step:1,unit:\"px\",defaultValue:260,hidden:d=>!d||d.widthMode!==\"fixed\"},minWidth:{type:ControlType.Number,title:\"Min Width\",min:0,max:600,step:1,unit:\"px\",defaultValue:160,hidden:d=>!d||d.widthMode!==\"fit\"},align:{type:ControlType.Enum,title:\"Align\",hidden:d=>!!d&&d.style===\"expand\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,defaultValue:\"center\"},offset:{type:ControlType.Number,title:\"Gap to Menu\",hidden:d=>!!d&&d.style===\"expand\",min:0,max:80,step:1,unit:\"px\",defaultValue:8},padding:{type:ControlType.Padding,title:\"Panel Padding\",defaultValue:\"6px\"},itemPadding:{type:ControlType.Padding,title:\"Item Padding\",defaultValue:\"10px 14px 10px 14px\"},itemGap:{type:ControlType.Number,title:\"Item Gap\",min:0,max:40,step:.1,unit:\"px\",defaultValue:2},itemAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"start\",\"center\"],optionTitles:[\"Left\",\"Center\"],displaySegmentedControl:true,defaultValue:\"start\"},radius:{type:ControlType.Number,title:\"Panel Radius\",min:0,max:80,step:1,defaultValue:0,description:\"0 = auto (from the menu radius).\"},maxHeight:{type:ControlType.Number,title:\"Max Height\",min:120,max:900,step:10,unit:\"px\",defaultValue:360},check:{type:ControlType.Boolean,title:\"Active Dot\",defaultValue:true},dotSide:{type:ControlType.Enum,title:\"Dot Side\",options:[\"start\",\"end\"],optionTitles:[\"Left\",\"Right\"],displaySegmentedControl:true,defaultValue:\"end\",hidden:d=>d&&d.check===false}}},wheel:{type:ControlType.Object,title:\"Wheel\",hidden:p=>{const r=p.responsive||{};return p.mode!==\"wheel\"&&r.tabletMode!==\"wheel\"&&r.phoneMode!==\"wheel\";},controls:{sizing:{type:ControlType.Enum,title:\"Height\",options:[\"rows\",\"fixed\",\"fill\"],optionTitles:[\"Rows\",\"Fixed\",\"Fill\"],displaySegmentedControl:true,defaultValue:\"rows\",description:\"Rows = Visible Rows. Fixed = your frame height. Fill = the layer's height (Inline). Rows, mask and fade adapt automatically.\"},rows:{type:ControlType.Enum,title:\"Visible Rows\",options:[1,3,5],optionTitles:[\"1\",\"3\",\"5\"],displaySegmentedControl:true,defaultValue:3,hidden:w=>!!w&&!!w.sizing&&w.sizing!==\"rows\"},height:{type:ControlType.Number,title:\"Frame Height\",min:20,max:800,step:1,unit:\"px\",defaultValue:120,hidden:w=>!w||w.sizing!==\"fixed\"},padding:{type:ControlType.Padding,title:\"Row Padding\",defaultValue:\"6px 16px 6px 16px\"},rowHeight:{type:ControlType.Number,title:\"Min Row Height\",min:0,max:80,step:1,unit:\"px\",defaultValue:0,description:\"0 = text height + Row Padding (no extra space). Never smaller than that.\"},width:{type:ControlType.Number,title:\"Width\",min:0,max:600,step:1,unit:\"px\",defaultValue:0,description:\"0 = fits the longest category.\"},fadeIntensity:{type:ControlType.Number,title:\"Fade\",min:0,max:100,step:1,unit:\"%\",defaultValue:100,description:\"How transparent the text gets at the frame edge.\"},fadeStart:{type:ControlType.Number,title:\"Fade Start\",min:0,max:100,step:1,unit:\"%\",defaultValue:25,description:\"Where the fade begins: 0% = centre, 100% = frame edge.\",hidden:w=>!!w&&w.fadeIntensity===0},fadeEnd:{type:ControlType.Number,title:\"Fade End\",min:0,max:100,step:1,unit:\"%\",defaultValue:100,description:\"Fully faded here. 100% = exactly at the frame edge.\",hidden:w=>!!w&&w.fadeIntensity===0},depth:{type:ControlType.Number,title:\"Depth\",min:0,max:.4,step:.01,defaultValue:.06,description:\"Rows shrink slightly away from the centre.\"},sensitivity:{type:ControlType.Number,title:\"Sensitivity\",min:.1,max:4,step:.05,defaultValue:1,description:\"Trackpad and finger travel per row.\"},speed:{type:ControlType.Number,title:\"Snap Speed\",min:.2,max:4,step:.05,defaultValue:1},momentum:{type:ControlType.Number,title:\"Momentum\",min:0,max:1,step:.05,defaultValue:.35,description:\"How far a flick or trackpad glide carries. 0 = stops where you let go. A mouse wheel is always one row per notch.\"},snap:{type:ControlType.Number,title:\"Snap Bounce\",min:0,max:.8,step:.01,defaultValue:.12,description:\"0 = settles precisely, higher = a soft bounce.\"},arrows:{type:ControlType.Enum,title:\"Arrows\",options:[\"none\",\"vertical\",\"horizontal\"],optionTitles:[\"None\",\"↑ ↓\",\"← →\"],displaySegmentedControl:true,defaultValue:\"none\",description:\"Grouped arrows beside the text. Style, size, gaps, alignment and X / Y are in Icons & Arrows.\"},arrowSide:{type:ControlType.Enum,title:\"Arrow Side\",options:[\"start\",\"end\"],optionTitles:[\"Left\",\"Right\"],displaySegmentedControl:true,defaultValue:\"end\",hidden:w=>!w||!w.arrows||w.arrows===\"none\"},arrowsClickable:{type:ControlType.Boolean,title:\"Clickable\",defaultValue:true,hidden:w=>!w||!w.arrows||w.arrows===\"none\"}}},grid:{type:ControlType.Object,title:\"Grid Icons\",controls:gridControlSet},typography:{type:ControlType.Object,title:\"Typography\",controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:15,lineHeight:\"1.2em\",letterSpacing:\"-0.01em\"}},features:{type:ControlType.String,title:\"OpenType\",defaultValue:\"blwf, cv03, cv04, cv09, ss07\",description:\"Feature tags, comma separated (e.g. ss01, cv03, tnum).\"},axes:{type:ControlType.Array,title:\"Variable Axes\",control:{type:ControlType.Object,controls:{tag:{type:ControlType.String,title:\"Axis\",defaultValue:\"wght\"},value:{type:ControlType.Number,title:\"Value\",min:-1e3,max:1e3,step:1,defaultValue:430}}},defaultValue:[{tag:\"slnt\",value:0},{tag:\"wght\",value:430}]},activeWeight:{type:ControlType.Number,title:\"Active wght\",min:0,max:1e3,step:1,defaultValue:0,description:\"0 = same weight as the rest.\"},transform:{type:ControlType.Enum,title:\"Case\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],optionTitles:[\"As is\",\"UPPER\",\"lower\",\"Title\"],defaultValue:\"none\"}}},motion:{type:ControlType.Object,title:\"Motion\",controls:{transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:DEFAULT_TRANSITION},appear:{type:ControlType.Boolean,title:\"Appear Effect\",defaultValue:true},hideOnScroll:{type:ControlType.Boolean,title:\"Hide on Scroll Down\",defaultValue:false},hideStyle:{type:ControlType.Enum,title:\"Hide Style\",options:[\"none\",\"fade\",\"slideDown\",\"slideUp\",\"slideLeft\",\"slideRight\",\"slideFade\",\"scale\"],optionTitles:[\"None\",\"Fade\",\"Slide Down\",\"Slide Up\",\"Slide Left\",\"Slide Right\",\"Slide + Fade\",\"Subtle Scale\"],defaultValue:\"slideFade\",hidden:m=>!m||!m.hideOnScroll},hideDistance:{type:ControlType.Number,title:\"Distance\",min:0,max:600,step:1,unit:\"px\",defaultValue:0,description:\"0 = auto (just off screen).\",hidden:m=>!m||!m.hideOnScroll||[\"none\",\"fade\",\"scale\"].includes(m.hideStyle)},hideScale:{type:ControlType.Number,title:\"Scale\",min:0,max:.5,step:.01,defaultValue:.06,description:\"How much it shrinks while fading.\",hidden:m=>!m||!m.hideOnScroll||m.hideStyle!==\"scale\"},hideThreshold:{type:ControlType.Number,title:\"Hide After\",min:0,max:400,step:1,unit:\"px\",defaultValue:24,description:\"Scroll down this far (in one go) before it hides. Higher = less sensitive.\",hidden:m=>!m||!m.hideOnScroll},revealOn:{type:ControlType.Enum,title:\"Show\",options:[\"up\",\"top\"],optionTitles:[\"On Scroll Up\",\"At Top Only\"],displaySegmentedControl:true,defaultValue:\"up\",hidden:m=>!m||!m.hideOnScroll},showThreshold:{type:ControlType.Number,title:\"Show After Up\",min:0,max:400,step:1,unit:\"px\",defaultValue:8,hidden:m=>!m||!m.hideOnScroll||m.revealOn===\"top\"},topZone:{type:ControlType.Number,title:\"Top Zone\",min:0,max:1e3,step:1,unit:\"px\",defaultValue:80,description:\"Always shown this close to the top of the page.\",hidden:m=>!m||!m.hideOnScroll},hideTransition:{type:ControlType.Transition,title:\"Hide Motion\",defaultValue:{type:\"tween\",duration:.32,ease:[.4,0,.2,1]},hidden:m=>!m||!m.hideOnScroll||m.hideStyle===\"none\"},showTransition:{type:ControlType.Transition,title:\"Show Motion\",defaultValue:DEFAULT_TRANSITION,hidden:m=>!m||!m.hideOnScroll},showAfter:{type:ControlType.Number,title:\"Show After\",min:0,max:3e3,step:10,unit:\"px\",defaultValue:0,description:\"Appears after scrolling this far (0 = always).\"},scrollToGrid:{type:ControlType.Boolean,title:\"Scroll to Grid\",defaultValue:true,description:\"After choosing, glide back up to the top of the grid when you are further down.\"},scrollOffset:{type:ControlType.Number,title:\"Scroll Offset\",min:0,max:400,step:1,unit:\"px\",defaultValue:120}}},interaction:interactionControls,feedback:feedbackControls,source:{type:ControlType.Object,title:\"Source\",controls:sourceControls}};// ---------------------------------------------------------------------------\n// Panel organisation: clear sections, and only the settings the chosen\n// layout (on any breakpoint) actually uses.\n// ---------------------------------------------------------------------------\nconst modesOf=root=>{const r=root&&root.responsive||{};const base=root&&root.mode||\"bar\";const pick=m=>m&&m!==\"same\"?m:base;return[base,pick(r.tabletMode),pick(r.phoneMode)];};const uses=(root,...modes)=>modesOf(root).some(m=>modes.indexOf(m)>-1);// Nested control: hidden(value, root). Keeps any existing rule.\nconst showIf=(c,test)=>{if(!c)return;const prev=c.hidden;c.hidden=(v,root)=>!test(v||{},root||{})||(prev?!!prev(v,root):false);};// Section: hidden(props).\nconst sectionIf=(c,test)=>{if(!c)return;const prev=c.hidden;c.hidden=root=>!test(root||{})||(prev?!!prev(root):false);};(()=>{const W=workMenuControls;const fixedPos=root=>(root.placement&&root.placement.position||\"bottom\")!==\"inline\";// Canvas Preview — every state, visible on the canvas.\nW.canvas={type:ControlType.Object,title:\"Canvas Preview\",description:\"Canvas only. Never changes the live site.\",controls:{state:{type:ControlType.Enum,title:\"State\",options:[\"default\",\"open\",\"hover\",\"hidden\"],optionTitles:[\"Default\",\"Open\",\"Hover\",\"Hidden\"],displaySegmentedControl:true,defaultValue:\"default\",description:\"Open = Dropdown / Expand opened. Hover = next item hovered. Hidden = the hide-on-scroll look.\"},active:{type:ControlType.Number,title:\"Active Item\",min:1,max:30,step:1,defaultValue:1,displayStepper:true},grid:{type:ControlType.Number,title:\"Active Grid\",min:1,max:6,step:1,defaultValue:3,displayStepper:true},device:{type:ControlType.Enum,title:\"Device\",options:[\"auto\",\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Auto\",\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"auto\",description:\"Auto = the breakpoint frame it sits in.\"},labels:{type:ControlType.String,title:\"Labels\",defaultValue:SAMPLE.join(\", \"),displayTextArea:true}}};if(W.source&&W.source.controls)delete W.source.controls.preview;// Separate Frames — menu and grid icons in their own frames.\nW.frames={type:ControlType.Object,title:\"Separate Frames\",controls:{separate:{type:ControlType.Boolean,title:\"Separate\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"On: the menu and the grid icons each get their own glass frame.\"},gap:{type:ControlType.Number,title:\"Frame Gap\",min:0,max:80,step:.1,unit:\"px\",defaultValue:8},menuPadding:{type:ControlType.Padding,title:\"Menu Padding\",defaultValue:\"5px\"},gridPadding:{type:ControlType.Padding,title:\"Grid Padding\",defaultValue:\"5px\"},gridRadius:{type:ControlType.Number,title:\"Grid Radius\",min:0,max:999,step:1,defaultValue:999},gridStyle:{type:ControlType.Enum,title:\"Grid Glass\",options:[\"same\",\"glass\",\"savee\",\"frosted\",\"solid\",\"outline\",\"none\"],optionTitles:[\"Same as Menu\",\"Glass\",\"Savee Glass\",\"Frosted\",\"Solid\",\"Outline\",\"None\"],defaultValue:\"same\"},gridTint:{type:ControlType.Color,title:\"Grid Tint\",defaultValue:TOKEN_BG,hidden:f=>!f||[\"glass\",\"frosted\",\"solid\"].indexOf(f.gridStyle)<0}}};[\"gap\",\"menuPadding\",\"gridPadding\",\"gridRadius\",\"gridStyle\",\"gridTint\"].forEach(k=>showIf(W.frames.controls[k],f=>!!f.separate));sectionIf(W.frames,root=>!(root.grid&&root.grid.show===false));// Expand — everything for the Expand layout in one place.\nW.expand={type:ControlType.Object,title:\"Expand\",controls:{keepOpen:{type:ControlType.Boolean,title:\"Keep Expanded\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"On: choosing a category never collapses it while the pointer is on the navigation. Off: it collapses after choosing.\"},outsideClose:{type:ControlType.Boolean,title:\"Outside Click\",defaultValue:true,enabledTitle:\"Closes\",disabledTitle:\"Ignore\"},closeDelay:{type:ControlType.Number,title:\"Close After\",min:0,max:2e3,step:10,unit:\"ms\",defaultValue:380,description:\"After the pointer leaves the navigation.\"},pillCustom:{type:ControlType.Boolean,title:\"Pill Padding\",defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Items\"},pillPadding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"8px 14px 8px 14px\",hidden:e=>!e||!e.pillCustom},dotSize:{type:ControlType.Number,title:\"Dot Size\",min:0,max:10,step:.5,unit:\"px\",defaultValue:3},dotGap:{type:ControlType.Number,title:\"Dot Gap\",min:0,max:12,step:.1,unit:\"px\",defaultValue:3}}};sectionIf(W.expand,root=>uses(root,\"expand\"));// Interaction — drag / swipe only; Expand settings moved to Expand.\nconst IX=W.interaction.controls;delete IX.closeDelay;delete IX.keepOpen;delete IX.outsideClose;IX.swipe={type:ControlType.Boolean,title:\"Swipe to Change\",defaultValue:true,description:\"Swipe left / right on the Dropdown button or the closed Expand pill to go to the next / previous category.\"};showIf(IX.swipe,(v,root)=>uses(root,\"dropdown\",\"expand\"));showIf(IX.wheelScroll,(v,root)=>uses(root,\"bar\",\"expand\"));showIf(IX.mouseDrag,(v,root)=>uses(root,\"bar\",\"stepper\",\"wheel\",\"expand\"));// Arrows & Icons — every arrow setting together.\nconst IC=W.icons.controls;const WH=W.wheel.controls;delete WH.arrows;delete WH.arrowSide;delete WH.arrowsClickable;W.icons.title=\"Arrows & Icons\";const wheelArrowsOn=(i,root)=>uses(root,\"wheel\")&&!!i.wheelArrows&&i.wheelArrows!==\"none\";const iconsControls={wheelArrows:{type:ControlType.Enum,title:\"Wheel Arrows\",options:[\"none\",\"vertical\",\"horizontal\"],optionTitles:[\"None\",\"↑ ↓\",\"← →\"],displaySegmentedControl:true,defaultValue:\"none\",description:\"↑ ↓ stacked, or ← → side by side, beside the Wheel.\"},wheelSide:{type:ControlType.Enum,title:\"Arrow Side\",options:[\"start\",\"end\"],optionTitles:[\"Left\",\"Right\"],displaySegmentedControl:true,defaultValue:\"end\"},wheelClickable:{type:ControlType.Boolean,title:\"Clickable\",defaultValue:true},style:IC.style,size:IC.size,stroke:IC.stroke,gap:IC.gap,pairGap:IC.pairGap,prefixGap:IC.prefixGap,fixed:IC.fixed,textAlign:IC.textAlign,align:IC.align,x:IC.x,y:IC.y};showIf(iconsControls.wheelArrows,(i,root)=>uses(root,\"wheel\"));showIf(iconsControls.wheelSide,wheelArrowsOn);showIf(iconsControls.wheelClickable,wheelArrowsOn);showIf(iconsControls.pairGap,wheelArrowsOn);showIf(iconsControls.prefixGap,(i,root)=>uses(root,\"dropdown\"));showIf(iconsControls.fixed,(i,root)=>uses(root,\"dropdown\",\"stepper\"));showIf(iconsControls.textAlign,(i,root)=>uses(root,\"dropdown\",\"stepper\"));W.icons.controls=iconsControls;sectionIf(W.icons,root=>uses(root,\"dropdown\",\"stepper\",\"wheel\",\"expand\"));// Wheel: optional snapping.\nconst wheelControls={};Object.keys(WH).forEach(k=>{wheelControls[k]=WH[k];if(k===\"momentum\")wheelControls.snapping={type:ControlType.Boolean,title:\"Snapping\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Off: the wheel glides and slows down naturally, the row nearest the centre is chosen.\"};});showIf(wheelControls.snap,v=>v.snapping!==false);W.wheel.controls=wheelControls;// Items\nconst IT=W.items.controls;showIf(IT.fadeEdges,(v,root)=>uses(root,\"bar\",\"expand\"));showIf(IT.dots,(v,root)=>uses(root,\"dropdown\",\"expand\"));// Placement\nconst PL=W.placement.controls;showIf(PL.offset,(v,root)=>fixedPos(root));showIf(PL.zIndex,(v,root)=>fixedPos(root));showIf(PL.steadyMobile,v=>(v.position||\"bottom\")===\"bottom\");// Grid icons: spacing / divider only when they share one frame.\nconst G=W.grid.controls;[\"spacing\",\"divider\",\"dividerInset\"].forEach(k=>showIf(G[k],(v,root)=>!(root.frames&&root.frames.separate)));// Motion → Motion (appear, transition) + Scroll (hide on scroll).\nconst MC=W.motion.controls;const scrollControls={};[\"hideOnScroll\",\"hideStyle\",\"hideDistance\",\"hideScale\",\"hideThreshold\",\"revealOn\",\"showThreshold\",\"topZone\",\"hideTransition\",\"showTransition\",\"showAfter\"].forEach(k=>{if(MC[k]){scrollControls[k]=MC[k];delete MC[k];}});scrollControls.hideOnScroll.title=\"Hide on Scroll\";scrollControls.hideStyle.optionTitles=[\"Hide\",\"Fade\",\"Slide Down\",\"Slide Up\",\"Slide Left\",\"Slide Right\",\"Slide + Fade\",\"Subtle Scale\"];scrollControls.hideStyle.description=\"Hide = instant. All others use Hide Motion / Show Motion (duration, easing, spring).\";W.scroll={type:ControlType.Object,title:\"Scroll\",controls:scrollControls};sectionIf(W.scroll,fixedPos);showIf(MC.scrollOffset,v=>v.scrollToGrid!==false);// ---- Simplify: one folder per topic, nothing duplicated -----------------\n// Preset is now just a Glass style (Savee Glass is the default).\ndelete W.preset;// Glass (was Surface): looks only. Padding moved to Spacing.\nW.surface={...W.surface,controls:{...W.surface.controls}};const GL=W.surface.controls;W.surface.title=\"Glass\";GL.style.defaultValue=\"savee\";GL.style.title=\"Glass\";delete GL.inset;const sepOn=(v,root)=>!!(root.spacing&&root.spacing.separate);const FRC=W.frames&&W.frames.controls||{};GL.gridStyle={...FRC.gridStyle,title:\"Grid Glass\",hidden:undefined};GL.gridTint={...FRC.gridTint,hidden:(v,root)=>!sepOn(v,root)||[\"glass\",\"frosted\",\"solid\"].indexOf(v&&v.gridStyle)<0};GL.gridRadius={...FRC.gridRadius,title:\"Grid Radius\",hidden:undefined};showIf(GL.gridStyle,sepOn);showIf(GL.gridRadius,sepOn);delete W.frames;// Spacing: every padding and gap in one place, exact from 0 px.\nW.items={...W.items,controls:{...W.items.controls}};W.grid={...W.grid,controls:{...W.grid.controls}};const IT2=W.items.controls;const G2=W.grid.controls;const gridShown=(v,root)=>!(root.grid&&root.grid.show===false);const numCtl=(title,def,max=80,extra={})=>({type:ControlType.Number,title,min:0,max,step:.1,unit:\"px\",defaultValue:def,...extra});W.spacing={type:ControlType.Object,title:\"Spacing\",controls:{framePadding:{type:ControlType.Padding,title:\"Frame Padding\",defaultValue:\"5px\",description:\"Frame edge → everything inside (items, arrows, grid icons). Link or set each side.\"},itemPadding:{...IT2.padding,hidden:undefined,title:\"Item Padding\",description:\"Inside each category (and its active pill).\"},itemGap:numCtl(\"Item Gap\",2,40,{description:\"Between categories. 0 = touching.\"}),gridSpacing:numCtl(\"Menu ↔ Grid\",12),iconGap:numCtl(\"Icon Gap\",4,40,{description:\"Between grid icons.\"}),divider:{...G2.divider,title:\"Divider\",hidden:undefined},dividerInset:numCtl(\"Divider Inset\",7,30),separate:{type:ControlType.Boolean,title:\"Separate Frames\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Menu and grid icons each get their own frame (style it in Glass).\"},frameGap:numCtl(\"Frame Gap\",8),paddingMode:{type:ControlType.Enum,title:\"Frames Padding\",options:[\"same\",\"separate\"],optionTitles:[\"Same\",\"Each\"],displaySegmentedControl:true,defaultValue:\"same\",description:\"Same: Frame Padding for both frames. Each: its own padding per frame.\"},menuPadding:{type:ControlType.Padding,title:\"Menu Padding\",defaultValue:\"5px\"},gridPadding:{type:ControlType.Padding,title:\"Grid Padding\",defaultValue:\"5px\"}}};const SP=W.spacing.controls;const sepV=v=>!!v.separate;showIf(SP.gridSpacing,(v,root)=>gridShown(v,root)&&!sepV(v));showIf(SP.iconGap,gridShown);showIf(SP.divider,(v,root)=>gridShown(v,root)&&!sepV(v));showIf(SP.dividerInset,(v,root)=>gridShown(v,root)&&!sepV(v)&&v.divider!==false);showIf(SP.separate,gridShown);showIf(SP.frameGap,(v,root)=>gridShown(v,root)&&sepV(v));showIf(SP.paddingMode,(v,root)=>gridShown(v,root)&&sepV(v));showIf(SP.menuPadding,(v,root)=>gridShown(v,root)&&sepV(v)&&v.paddingMode===\"separate\");showIf(SP.gridPadding,(v,root)=>gridShown(v,root)&&sepV(v)&&v.paddingMode===\"separate\");delete IT2.padding;delete IT2.gap;delete G2.spacing;delete G2.gap;delete G2.divider;delete G2.dividerInset;delete G2.groupPadding;// Items: where the active category sits in a scrolling Bar.\nIT2.activeAlign={type:ControlType.Enum,title:\"Active Item\",options:[\"start\",\"center\",\"end\",\"none\"],optionTitles:[\"Left\",\"Center\",\"Right\",\"Off\"],displaySegmentedControl:true,defaultValue:\"center\",description:\"Where the chosen category scrolls to in the Bar.\"};showIf(IT2.activeAlign,(v,root)=>uses(root,\"bar\",\"expand\"));// Arrows & Icons: Expand dots live here with the other icons.\nconst EXC=W.expand.controls;W.icons.controls.dotSize={...EXC.dotSize,title:\"Dot Size\"};W.icons.controls.dotGap={...EXC.dotGap,title:\"Dot Gap\"};showIf(W.icons.controls.dotSize,(v,root)=>uses(root,\"expand\"));showIf(W.icons.controls.dotGap,(v,root)=>uses(root,\"expand\"));delete EXC.dotSize;delete EXC.dotGap;// Position (was Placement): where it sits, how wide, steady on scroll.\nconst PL2=W.placement.controls;W.placement.title=\"Position\";const position={position:PL2.position,align:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,defaultValue:\"center\"},sideOffset:{type:ControlType.Number,title:\"Side Offset\",min:0,max:200,step:1,unit:\"px\",defaultValue:12,hidden:v=>!v||!v.align||v.align===\"center\"},offset:{...PL2.offset,title:\"Edge Offset\"},widthMode:PL2.widthMode,width:PL2.width,margin:PL2.margin,maxWidth:PL2.maxWidth,steadyMobile:PL2.steadyMobile,browserBar:{type:ControlType.Enum,title:\"Browser Bar\",options:[\"auto\",\"top\",\"bottom\"],optionTitles:[\"Auto\",\"Top\",\"Bottom\"],displaySegmentedControl:true,defaultValue:\"auto\",description:\"Auto: iPhone = bottom, iPad / Android = top. The menu stays on the edge that never moves.\",hidden:v=>!v||(v.position||\"bottom\")!==\"bottom\"||v.steadyMobile===false},zIndex:PL2.zIndex};W.placement.controls=position;// Scroll: fewer knobs (thresholds use sensible defaults).\ndelete W.scroll.controls.showThreshold;delete W.scroll.controls.topZone;W.scroll.controls.endZone={type:ControlType.Number,title:\"Hide Near End\",min:0,max:95,step:1,unit:\"%\",defaultValue:60,description:\"How much of the screen the section after the grid may fill before the bar fades out. Higher = the bar stays longer.\"};// Dropdown: remove rarely used extras.\ndelete W.dropdown.controls.minWidth;delete W.dropdown.controls.dotSide;// Section order: what you set first, at the top.\nconst order=[\"mode\",\"canvas\",\"responsive\",\"placement\",\"spacing\",\"surface\",\"items\",\"typography\",\"icons\",\"dropdown\",\"wheel\",\"expand\",\"grid\",\"motion\",\"scroll\",\"interaction\",\"feedback\",\"source\"];const ordered={};order.forEach(k=>{if(W[k])ordered[k]=W[k];});Object.keys(W).forEach(k=>{if(!ordered[k])ordered[k]=W[k];});W.__ordered=ordered;})();// ---------------------------------------------------------------------------\n// Right panel — simple and organised. Folders, top to bottom:\n//   Position · Spacing · Style · Grid Icons · Layout Options · Motion ·\n//   Interaction · Canvas Preview · Source\n// Each breakpoint (Desktop / Tablet / Phone) has its own instance, so\n// every setting can differ per breakpoint the normal Framer way.\n// ---------------------------------------------------------------------------\nconst layoutOf=root=>root&&root.mode||\"bar\";const isLayout=(root,...m)=>m.indexOf(layoutOf(root))>-1;const pxCtl=(title,def,max=80,step=.5,extra={})=>({type:ControlType.Number,title,min:0,max,step,unit:\"px\",defaultValue:def,...extra});const seg=(title,options,titles,def,extra={})=>({type:ControlType.Enum,title,options,optionTitles:titles,displaySegmentedControl:true,defaultValue:def,...extra});const bool=(title,def,extra={})=>({type:ControlType.Boolean,title,defaultValue:def,...extra});const simpleControls={mode:{type:ControlType.Enum,title:\"Layout\",options:[\"bar\",\"dropdown\",\"wheel\",\"stepper\",\"expand\"],optionTitles:[\"Bar\",\"Dropdown\",\"Wheel\",\"Stepper\",\"Expand\"],defaultValue:\"bar\"},place:{type:ControlType.Object,title:\"Position\",controls:{position:seg(\"Position\",[\"bottom\",\"top\",\"inline\"],[\"Bottom\",\"Top\",\"Inline\"],\"bottom\"),align:seg(\"Align\",[\"left\",\"center\",\"right\"],[\"Left\",\"Center\",\"Right\"],\"center\"),offset:pxCtl(\"Offset\",24,200,1,{description:\"From the screen edge (and the side, when Left / Right).\",hidden:v=>!!v&&v.position===\"inline\"}),width:seg(\"Width\",[\"fit\",\"fixed\",\"fill\"],[\"Fit\",\"Fixed\",\"Fill\"],\"fit\"),fixedWidth:pxCtl(\"Fixed Width\",560,1600,1,{hidden:v=>!v||v.width!==\"fixed\"}),maxWidth:pxCtl(\"Max Width\",0,1600,1,{description:\"0 = no limit. Expand + Fixed + Open Width Fit All: the exact width it opens to.\"}),steady:bool(\"Steady on Scroll\",true,{description:\"Phones & tablets: the menu stays still while the browser bar hides.\",hidden:v=>!!v&&(v.position||\"bottom\")!==\"bottom\"})}},spacing:{type:ControlType.Object,title:\"Spacing\",controls:{separate:bool(\"Frames\",false,{enabledTitle:\"Two\",disabledTitle:\"One\",description:\"One frame for everything, or two: menu + grid icons.\"}),padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"5px\",description:\"Frame edge → content. With Two: the menu frame.\"},gap:pxCtl(\"Gap\",4,60,.5,{description:\"Between categories and icons. With Two: the menu frame.\"}),gridPadding:{type:ControlType.Padding,title:\"Grid Padding\",defaultValue:\"5px\",hidden:v=>!v||!v.separate},gridGap:pxCtl(\"Grid Gap\",4,60,.5,{hidden:v=>!v||!v.separate}),framesGap:pxCtl(\"Frames Gap\",8,80,.5,{description:\"Space between the two frames.\",hidden:v=>!v||!v.separate}),itemPadding:{type:ControlType.Padding,title:\"Item Padding\",defaultValue:\"8px 14px 8px 14px\",description:\"Inside each category — the size of the active pill.\"}}},look:{type:ControlType.Object,title:\"Style\",controls:{glass:{type:ControlType.Enum,title:\"Glass\",options:[\"savee\",\"glass\",\"frosted\",\"solid\",\"outline\",\"none\"],optionTitles:[\"Savee Glass\",\"Glass\",\"Frosted\",\"Solid\",\"Outline\",\"None\"],defaultValue:\"savee\"},tint:{type:ControlType.Color,title:\"Tint\",defaultValue:TOKEN_BG,hidden:v=>!v||[\"glass\",\"frosted\",\"solid\"].indexOf(v.glass)<0},blur:pxCtl(\"Blur\",40,120,1,{hidden:v=>!!v&&[\"solid\",\"outline\",\"none\"].indexOf(v.glass)>-1}),radius:pxCtl(\"Radius\",999,999,1),border:{type:ControlType.Color,title:\"Border\",defaultValue:\"rgba(255, 255, 255, 0)\",hidden:v=>!!v&&v.glass===\"none\"},shadow:{type:ControlType.Number,title:\"Shadow\",min:0,max:.6,step:.01,defaultValue:.12,hidden:v=>!!v&&[\"outline\",\"none\"].indexOf(v.glass)>-1},active:seg(\"Active\",[\"pill\",\"underline\",\"dot\",\"none\"],[\"Pill\",\"Line\",\"Dot\",\"Text\"],\"pill\"),colors:bool(\"Colours\",false,{enabledTitle:\"Custom\",disabledTitle:\"Auto\",description:\"Auto: light / dark colours that match the glass.\"}),text:{type:ControlType.Color,title:\"Text\",defaultValue:TOKEN_MUTED,hidden:v=>!v||!v.colors},activeText:{type:ControlType.Color,title:\"Active Text\",defaultValue:TOKEN_TEXT,hidden:v=>!v||!v.colors},pill:{type:ControlType.Color,title:\"Pill\",defaultValue:TOKEN_SOFT,hidden:v=>!v||!v.colors||v.active===\"none\"},divider:bool(\"Divider\",true,{description:\"Line between the menu and the grid icons (one frame).\",hidden:(v,root)=>root&&root.spacing&&root.spacing.separate||root&&root.grid&&root.grid.show===false}),font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:15,lineHeight:\"1.2em\",letterSpacing:\"-0.01em\"}},activeWeight:{type:ControlType.Number,title:\"Active Weight\",min:0,max:1e3,step:10,defaultValue:0,description:\"0 = same as the font.\"}}},grid:{type:ControlType.Object,title:\"Grid Icons\",controls:{show:bool(\"Show\",true),side:seg(\"Side\",[\"left\",\"right\"],[\"Left\",\"Right\"],\"right\",{hidden:v=>!!v&&v.show===false}),icons:{type:ControlType.Enum,title:\"Icons\",options:[\"site\",\"blocks\",\"outline\",\"dots\",\"bars\",\"numbers\"],optionTitles:[\"Same as Page\",\"Blocks\",\"Outline\",\"Dots\",\"Bars\",\"Numbers\"],defaultValue:\"site\",hidden:v=>!!v&&v.show===false},size:pxCtl(\"Icon Size\",15,40,.5,{hidden:v=>!!v&&v.show===false}),button:pxCtl(\"Tap Size\",28,64,1,{description:\"Each icon's button. 0 = as small as the icon.\",hidden:v=>!!v&&v.show===false}),columns:{type:ControlType.String,title:\"Columns\",defaultValue:\"\",placeholder:\"Auto\",description:\"Columns per icon, left → right (e.g. 2, 4, 6 or 1, 2, 2x3). Empty = auto.\",hidden:v=>!!v&&v.show===false}}},options:{type:ControlType.Object,title:\"Layout Options\",description:\"Only what the chosen Layout uses.\",hidden:root=>isLayout(root,\"bar\"),controls:{ddStyle:seg(\"Opens As\",[\"panel\",\"expand\"],[\"Panel\",\"Expand\"],\"panel\",{description:\"Expand: the menu frame itself grows and shows the items.\",hidden:(v,root)=>!isLayout(root,\"dropdown\")}),ddButton:seg(\"Button\",[\"fit\",\"fill\"],[\"Fit\",\"Fill\"],\"fit\",{description:\"Fill: the button spans the whole menu — text on the left, arrow on the right.\",hidden:(v,root)=>!isLayout(root,\"dropdown\")}),opens:seg(\"Direction\",[\"auto\",\"up\",\"down\"],[\"Auto\",\"Up\",\"Down\"],\"auto\",{hidden:(v,root)=>!isLayout(root,\"dropdown\")}),prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\",placeholder:\"e.g. Filter\",hidden:(v,root)=>!isLayout(root,\"dropdown\")},rows:{type:ControlType.Enum,title:\"Rows\",options:[1,3,5],optionTitles:[\"1\",\"3\",\"5\"],displaySegmentedControl:true,defaultValue:3,hidden:(v,root)=>!isLayout(root,\"wheel\")},snapping:bool(\"Snapping\",true,{hidden:(v,root)=>!isLayout(root,\"wheel\")}),momentum:{type:ControlType.Number,title:\"Momentum\",min:0,max:1,step:.05,defaultValue:.35,hidden:(v,root)=>!isLayout(root,\"wheel\")},fade:{type:ControlType.Number,title:\"Edge Fade\",min:0,max:100,step:1,unit:\"%\",defaultValue:100,hidden:(v,root)=>!isLayout(root,\"wheel\")},wheelArrows:seg(\"Arrows\",[\"none\",\"vertical\",\"horizontal\"],[\"None\",\"↑ ↓\",\"← →\"],\"none\",{hidden:(v,root)=>!isLayout(root,\"wheel\")}),keepOpen:bool(\"Keep Open\",true,{description:\"Stays open while the pointer is on the menu.\",hidden:(v,root)=>!isLayout(root,\"expand\")}),openWidth:seg(\"Open Width\",[\"fit\",\"fixed\"],[\"Fit All\",\"Fixed\"],\"fit\",{description:\"Width = Fixed: grows while open, then back to the fixed width. Fit All fits every category, or exactly Position → Max Width when it is set.\",hidden:(v,root)=>!isLayout(root,\"expand\")||!root.place||root.place.width!==\"fixed\"}),openText:seg(\"Open Text\",[\"natural\",\"spread\",\"fill\"],[\"Natural\",\"Spread\",\"Fill\"],\"natural\",{description:\"How the categories use the open width (e.g. Max Width). Spread: first and last reach the edges. Fill: every category grows to share the width.\",hidden:(v,root)=>!isLayout(root,\"expand\")}),closeAfter:{type:ControlType.Number,title:\"Close After\",min:0,max:2e3,step:10,unit:\"ms\",defaultValue:380,hidden:(v,root)=>!isLayout(root,\"expand\")},arrowStyle:{type:ControlType.Enum,title:\"Arrow\",options:[\"chevron\",\"arrow\",\"filled\",\"outline\"],optionTitles:[\"Chevron\",\"Arrow\",\"Filled\",\"Outline\"],defaultValue:\"chevron\",hidden:(v,root)=>!(isLayout(root,\"dropdown\",\"stepper\")||isLayout(root,\"wheel\")&&v&&v.wheelArrows&&v.wheelArrows!==\"none\")},arrowSize:pxCtl(\"Arrow Size\",10,40,.5,{hidden:(v,root)=>!(isLayout(root,\"dropdown\",\"stepper\")||isLayout(root,\"wheel\")&&v&&v.wheelArrows&&v.wheelArrows!==\"none\")}),arrowY:pxCtl(\"Arrow Y\",0,20,.5,{min:-20,description:\"Moves the arrow up (−) or down (+).\",hidden:(v,root)=>!(isLayout(root,\"dropdown\",\"stepper\",\"expand\")||isLayout(root,\"wheel\")&&v&&v.wheelArrows&&v.wheelArrows!==\"none\")}),arrowGap:pxCtl(\"Arrow Gap\",10,60,.5,{description:\"Text ↔ arrow.\",hidden:(v,root)=>!(isLayout(root,\"dropdown\",\"stepper\",\"expand\")||isLayout(root,\"wheel\")&&v&&v.wheelArrows&&v.wheelArrows!==\"none\")}),fixedArrows:bool(\"Fixed Arrows\",false,{description:\"Arrows never move, whatever the text length.\",hidden:(v,root)=>!isLayout(root,\"dropdown\",\"stepper\")})}},motion:{type:ControlType.Object,title:\"Motion\",controls:{transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:DEFAULT_TRANSITION},appear:bool(\"Appear\",true),hideOnScroll:bool(\"Hide on Scroll\",false,{hidden:(v,root)=>!!(root&&root.place&&root.place.position===\"inline\")}),hideStyle:{type:ControlType.Enum,title:\"Hide Style\",options:[\"none\",\"fade\",\"slideDown\",\"slideUp\",\"slideFade\",\"scale\"],optionTitles:[\"Hide\",\"Fade\",\"Slide Down\",\"Slide Up\",\"Slide + Fade\",\"Scale\"],defaultValue:\"slideFade\",hidden:v=>!v||!v.hideOnScroll},hideTransition:{type:ControlType.Transition,title:\"Hide Motion\",defaultValue:{type:\"tween\",duration:.32,ease:[.4,0,.2,1]},hidden:v=>!v||!v.hideOnScroll||v.hideStyle===\"none\"},scrollToGrid:bool(\"Scroll to Grid\",true,{description:\"After choosing, glide back to the top of the grid.\"}),farSwitch:{type:ControlType.Enum,title:\"From Far\",options:[\"fade\",\"scroll\"],optionTitles:[\"Fade\",\"Glide\"],defaultValue:\"fade\",displaySegmentedControl:true,description:\"Choosing a category: Fade applies after even a small scroll below the grid start. At the grid top it switches without fading.\",hidden:v=>!v||v.scrollToGrid===false},continuousMedia:{type:ControlType.Boolean,title:\"Continuous Media\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Videos and GIFs keep playing through a grid switch. Off = the smoothest, lightest grid transitions.\"}}},interaction:{type:ControlType.Object,title:\"Interaction\",controls:{touchDrag:bool(\"Touch Drag\",true),mouseDrag:bool(\"Mouse Drag\",true,{hidden:(v,root)=>isLayout(root,\"dropdown\")}),swipe:bool(\"Swipe\",true,{description:\"Swipe left / right to change category.\",hidden:(v,root)=>!isLayout(root,\"dropdown\",\"expand\")}),haptics:bool(\"Haptics\",true),sound:bool(\"Sound\",false)}},canvas:{type:ControlType.Object,title:\"Canvas Preview\",description:\"Canvas only. Never changes the live site.\",controls:{state:seg(\"State\",[\"default\",\"open\",\"hover\",\"hidden\"],[\"Default\",\"Open\",\"Hover\",\"Hidden\"],\"default\"),active:{type:ControlType.Number,title:\"Active Item\",min:1,max:30,step:1,defaultValue:1,displayStepper:true},labels:{type:ControlType.String,title:\"Labels\",defaultValue:SAMPLE.join(\", \"),displayTextArea:true}}},source:{type:ControlType.Object,title:\"Source\",description:\"Your page's original category list (keep it on the page, Opacity 0).\",controls:{anchor:{type:ControlType.String,title:\"List Layer\",defaultValue:\"Center Buttons\"},activeName:{type:ControlType.String,title:\"Active Variant\",defaultValue:\"Active\"}}}};(()=>{const L=simpleControls.look.controls;[\"tint\",\"border\",\"colors\",\"text\",\"activeText\",\"pill\"].forEach(k=>delete L[k]);// Dots: the dot beside the chosen category (Dropdown) and the •••\n// hint on the closed Expand pill.\nconst styleOrdered={};Object.keys(L).forEach(k=>{styleOrdered[k]=L[k];if(k===\"active\")styleOrdered.dots={type:ControlType.Boolean,title:\"Dots\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"The dot beside the chosen category, and the ••• on the Expand pill.\"};});simpleControls.look.controls=styleOrdered;const glassIs=(root,...g)=>g.indexOf(root&&root.look&&root.look.glass||\"savee\")>-1;const custom=v=>!!v&&!!v.custom;const colour=(title,def,hidden)=>({type:ControlType.Color,title,defaultValue:def,...hidden?{hidden}:null});const colours={type:ControlType.Object,title:\"Colours\",controls:{glassLight:colour(\"Glass Light\",\"rgba(228, 228, 228, 0.6)\",(v,root)=>!glassIs(root,\"savee\")),glassDark:colour(\"Glass Dark\",\"rgba(30, 30, 30, 0.6)\",(v,root)=>!glassIs(root,\"savee\")),tint:colour(\"Glass\",TOKEN_BG,(v,root)=>!glassIs(root,\"glass\",\"frosted\",\"solid\")),border:colour(\"Border\",\"rgba(255, 255, 255, 0)\",(v,root)=>glassIs(root,\"none\")),highlightLight:colour(\"Highlight Light\",\"rgba(10, 10, 10, 0.07)\",(v,root)=>!!root&&!!root.look&&!!root.look.active&&root.look.active!==\"pill\"),highlightDark:colour(\"Highlight Dark\",\"rgba(255, 255, 255, 0.09)\",(v,root)=>!!root&&!!root.look&&!!root.look.active&&root.look.active!==\"pill\"),custom:{type:ControlType.Boolean,title:\"Text & Icons\",defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Auto\",description:\"Auto: light / dark colours that match the glass.\"},text:colour(\"Text\",TOKEN_MUTED,v=>!custom(v)),activeText:colour(\"Active Text\",TOKEN_TEXT,v=>!custom(v)),hover:colour(\"Hover Text\",TOKEN_TEXT,v=>!custom(v)),gridIcon:colour(\"Grid Icons\",TOKEN_LINE,v=>!custom(v)),gridActive:colour(\"Grid Active\",TOKEN_TEXT,v=>!custom(v)),divider:colour(\"Divider\",TOKEN_LINE,v=>!custom(v))}};// Place Colours right after Style.\nconst ordered={};Object.keys(simpleControls).forEach(k=>{ordered[k]=simpleControls[k];if(k===\"look\")ordered.colours=colours;});Object.keys(simpleControls).forEach(k=>delete simpleControls[k]);Object.assign(simpleControls,ordered);})();(()=>{const L=simpleControls.look.controls;const next={};Object.keys(L).forEach(k=>{next[k]=L[k];if(k===\"font\"){next.textAlign={type:ControlType.Enum,title:\"Text Align\",options:[\"auto\",\"left\",\"center\",\"right\"],optionTitles:[\"Auto\",\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,defaultValue:\"auto\",description:\"Auto: each layout's natural alignment.\"};next.optical={type:ControlType.Boolean,title:\"Optical Center\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Measures the font so the text sits exactly in the middle — equal space above and below.\"};next.textY={type:ControlType.Number,title:\"Text Y\",min:-10,max:10,step:.25,unit:\"px\",defaultValue:0,description:\"Fine vertical nudge (negative = up).\"};}});simpleControls.look.controls=next;})();(()=>{const C=simpleControls;const BR=ControlType.BorderRadius||ControlType.Padding;const never=()=>true;const twoFrames=root=>!!root&&!!root.spacing&&!!root.spacing.separate;const hlOff=root=>!!root&&!!root.highlight&&root.highlight.show===\"hidden\";const hide=(folder,key)=>{if(folder&&folder.controls&&folder.controls[key])folder.controls[key]={...folder.controls[key],hidden:never};};hide(C.look,\"radius\");hide(C.look,\"active\");hide(C.colours,\"highlightLight\");hide(C.colours,\"highlightDark\");hide(C.place,\"steady\");const pct=(title,hidden)=>({type:ControlType.Number,title,min:0,max:100,step:1,unit:\"%\",defaultValue:60,hidden});const corners={type:ControlType.Object,title:\"Corner Styling\",controls:{shape:seg(\"Shape\",[\"round\",\"squircle\"],[\"Round\",\"Squircle\"],\"round\",{description:\"Squircle: smooth, continuous corners (like iOS). Shows when the radius is less than half the height.\"}),radius:{type:BR,title:\"Radius\",defaultValue:\"999px\",description:\"All corners, or each corner on its own. With Two frames: the menu frame.\"},smoothing:pct(\"Smoothing\",v=>!v||v.shape!==\"squircle\"),gridRadius:{type:BR,title:\"Grid Radius\",defaultValue:\"999px\",description:\"999 = the same corners as Radius.\",hidden:(v,root)=>!twoFrames(root)},gridSmoothing:pct(\"Grid Smoothing\",(v,root)=>!v||v.shape!==\"squircle\"||!twoFrames(root))}};const pillOn=v=>!v||v.show!==\"hidden\"&&(!v.style||v.style===\"pill\");const colourCtl=(title,def)=>({type:ControlType.Color,title,defaultValue:def,hidden:v=>!!v&&(v.show===\"hidden\"||!!v.style&&v.style!==\"pill\")});const highlight={type:ControlType.Object,title:\"Highlight\",controls:{show:seg(\"Show\",[\"always\",\"open\",\"hidden\"],[\"Always\",\"When Open\",\"Hidden\"],\"always\",{description:\"When Open: only inside the open Dropdown panel or Expand bar. Hidden: labels only (Label Gap in Spacing).\"}),others:seg(\"Bar / Wheel\",[\"always\",\"hover\"],[\"Always\",\"On Hover\"],\"always\",{description:\"Bar, Wheel and Stepper never open: keep the highlight, or show it only while the pointer (or a finger) is on the menu.\",hidden:v=>!v||v.show!==\"open\"}),style:seg(\"Style\",[\"pill\",\"underline\",\"dot\"],[\"Pill\",\"Line\",\"Dot\"],\"pill\",{hidden:v=>!!v&&v.show===\"hidden\"}),light:colourCtl(\"Light Mode\",\"rgba(10, 10, 10, 0.07)\"),dark:colourCtl(\"Dark Mode\",\"rgba(255, 255, 255, 0.09)\"),corners:seg(\"Corners\",[\"auto\",\"custom\"],[\"Auto\",\"Custom\"],\"auto\",{description:\"Auto: follows the frame's corners. Custom: set the radius, all corners or each one.\",hidden:v=>!pillOn(v)}),radius:{type:BR,title:\"Radius\",defaultValue:\"8px\",hidden:v=>!pillOn(v)||!v||v.corners!==\"custom\"},shape:seg(\"Shape\",[\"round\",\"squircle\"],[\"Round\",\"Squircle\"],\"round\",{hidden:v=>!pillOn(v)}),smoothing:pct(\"Smoothing\",v=>!pillOn(v)||!v||v.shape!==\"squircle\"),growX:{type:ControlType.Number,title:\"Width\",min:-40,max:40,step:.5,unit:\"px\",defaultValue:0,description:\"Grows (+) or shrinks (−) the highlight around the category, the same in every layout. The menu makes room for it. 0 = exact fit.\",hidden:v=>!pillOn(v)},growY:{type:ControlType.Number,title:\"Height\",min:-40,max:40,step:.5,unit:\"px\",defaultValue:0,hidden:v=>!pillOn(v)}}};// Highlight: Show · Style · Size · Corners · Shape · Colours.\nconst HC=highlight.controls;const hNext={};[\"show\",\"others\",\"style\",\"growX\",\"growY\",\"corners\",\"radius\",\"shape\",\"smoothing\",\"light\",\"dark\"].forEach(k=>{if(HC[k])hNext[k]=HC[k];});Object.keys(HC).forEach(k=>{if(!hNext[k])hNext[k]=HC[k];});highlight.controls=hNext;// Spacing: Label Gap (Highlight Hidden), right after Gap.\nconst SP=C.spacing.controls;const spNext={};Object.keys(SP).forEach(k=>{spNext[k]=SP[k];if(k===\"gap\")spNext.labelGap=pxCtl(\"Label Gap\",12,80,.5,{description:\"Category ↔ category when Highlight is Hidden (from 0).\",hidden:(v,root)=>!hlOff(root)});});if(spNext.itemPadding)spNext.itemPadding={...spNext.itemPadding,description:\"Inside each category: the size of the highlight. Highlight Hidden: only top / bottom are used.\"};C.spacing.controls=spNext;// Behavior: Steady on Scroll + hide on scroll + scroll to grid.\nC.motion.title=\"Behavior\";C.motion.controls={steady:bool(\"Steady on Scroll\",true,{description:\"iPhone: the menu stays still while Safari's bar shrinks and grows. iPad and desktop are always steady.\",hidden:(v,root)=>!!root&&!!root.place&&(root.place.position||\"bottom\")!==\"bottom\"}),...C.motion.controls};const order=[\"mode\",\"options\",\"place\",\"spacing\",\"corners\",\"highlight\",\"look\",\"colours\",\"grid\",\"motion\",\"interaction\",\"canvas\",\"source\"];const all={...C,corners,highlight};Object.keys(C).forEach(k=>delete C[k]);order.forEach(k=>{if(all[k])C[k]=all[k];});Object.keys(all).forEach(k=>{if(!C[k])C[k]=all[k];});})();simpleControls.source={type:ControlType.Object,title:\"CMS Categories\",description:\"Connected to the separate Work Categories CMS layer. Add, rename and reorder records in that CMS collection. New categories appear automatically.\",controls:{sort:{type:ControlType.Enum,title:\"Order\",options:[\"cms\",\"title\"],optionTitles:[\"CMS Order\",\"Alphabetical\"],defaultValue:\"cms\"},hide:{type:ControlType.String,title:\"Hide Categories\",defaultValue:\"\",displayTextArea:true,description:\"Optional: comma-separated CMS slugs or titles. Leave empty to show every category.\"}}};simpleControls.cmsCategories={type:ControlType.ComponentInstance,title:\"CMS Category\",description:\"Native Work Categories Collection List. Kept mounted at opacity 0 inside the menu.\"};addPropertyControls(WorkMenu,simpleControls);const gridSwitchControls={preset:presetControl,grid:{type:ControlType.Object,title:\"Grid Icons\",controls:(()=>{const{show,position,divider,dividerInset,spacing,...rest}=gridControlSet;return rest;})()},surface:surfaceControls({style:\"none\",padding:3}),responsive:{type:ControlType.Object,title:\"Breakpoints\",controls:responsiveControls},feedback:feedbackControls,transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:DEFAULT_TRANSITION},source:{type:ControlType.Object,title:\"Source\",controls:(()=>{const{preview,...rest}=sourceControls;return rest;})()}};gridSwitchControls.source=simpleControls.source;addPropertyControls(WorkGridSwitch,gridSwitchControls)// Category fades are scoped to project cards.\n// Retain native entrances during category transactions.\n// Stage retained positions and outgoing snapshots before paint.\n// Shared-card movement is owned solely by Framer layout projection.\n;\nexport const __FramerMetadata__ = {\"exports\":{\"WorkGridSwitch\":{\"type\":\"reactComponent\",\"name\":\"WorkGridSwitch\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"110\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"32\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"WorkMenu\",\"slots\":[\"cmsCategories\"],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"520\",\"framerIntrinsicHeight\":\"52\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}