{"version":3,"file":"shared-lib.1FaP4fLK.mjs","names":["useMemo","useRef","useState","useCallback","bw","sides","AnimatedDashedBorder","React.useContext","React.useMemo","React.Fragment","useRef","React.useId"],"sources":["https:/framerusercontent.com/modules/XBWSgdKr3syOFOYW80i8/4FKsp3EPd3QDaqVONEJD/DashedBorder.js","https:/framerusercontent.com/modules/dzZ5bwHEav38sUluM5ue/1AV1JcN1v2zFOdPZzFTk/ywmXeNfxF.js","https:/framerusercontent.com/modules/u2nyr4xQYzjZW8kTnLxZ/2HJdGCCN1vIwQrszuKql/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useMemo,useCallback}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * Animated Dashed Border Frame\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 250\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function DashedBorderFrame(props){// --- Default props moved outside for stability ---\nconst defaultProps=useMemo(()=>({borderColor:\"#0099FF\",borderWidth:3,borderRadius:16,dashLength:12,gapLength:8,animation:{animated:true,speed:2,direction:\"clockwise\"},top:true,right:true,bottom:true,left:true}),[]);const{borderColor=defaultProps.borderColor,borderWidth=defaultProps.borderWidth,borderRadius=defaultProps.borderRadius,dashLength=defaultProps.dashLength,gapLength=defaultProps.gapLength,animation=defaultProps.animation,style={}}=props;const{animated,speed,direction}=animation;// --- Unique animation name per instance ---\nconst uniqueIdRef=useRef(Math.random().toString(36).substr(2,9));const animName=`dash-anim-${direction}-${uniqueIdRef.current}`;// --- Animation duration ---\nconst minDuration=.1;const animationDuration=`${Math.max(minDuration,2/Math.max(.01,speed))}s`;// --- Responsive sizing ---\nconst containerRef=useRef(null);const resizeObserverRef=useRef(null);const[size,setSize]=useState({width:400,height:250});// Function to get size (memoized)\nconst getCurrentSize=useCallback(()=>{let w=200,h=100;if(!containerRef.current)return{width:w,height:h};if(RenderTarget.current()===RenderTarget.canvas||RenderTarget.current()===RenderTarget.thumbnail){if(props.style&&typeof props.style.width===\"number\")w=props.style.width;else w=containerRef.current.offsetWidth;if(props.style&&typeof props.style.height===\"number\")h=props.style.height;else h=containerRef.current.offsetHeight;}else{const rect=containerRef.current.getBoundingClientRect();w=rect.width;h=rect.height;}return{width:w,height:h};},[props.style?.width,props.style?.height]);// --- ResizeObserver with memory leak fix and redundant state update fix ---\nuseEffect(()=>{if(!containerRef.current)return;const updateSize=()=>{const{width:w,height:h}=getCurrentSize();setSize(prev=>prev.width!==w||prev.height!==h?{width:w,height:h}:prev);};updateSize();if(resizeObserverRef.current){resizeObserverRef.current.disconnect();}resizeObserverRef.current=new window.ResizeObserver(updateSize);resizeObserverRef.current.observe(containerRef.current);return()=>{if(resizeObserverRef.current){resizeObserverRef.current.disconnect();resizeObserverRef.current=null;}};},[getCurrentSize]);const width=size.width;const height=size.height;const bw=Math.max(1,Math.min(16,borderWidth));// --- Border radius calculation (robust, keeps correct roundness on resize) ---\nconst normalizedRadius=useMemo(()=>{if(typeof borderRadius===\"number\")return borderRadius;if(typeof borderRadius===\"string\"){if(borderRadius.endsWith(\"px\"))return parseFloat(borderRadius);if(borderRadius.endsWith(\"%\")){// % is based on the smaller of width/height, divided by 2 for proper rounding\nconst ratio=parseFloat(borderRadius)/100;return Math.max(0,ratio*Math.min(width,height)/2);}return parseFloat(borderRadius);}return 0;},[borderRadius,width,height]);const half=bw/2;// --- Sides control, memoized ---\nconst sides=useMemo(()=>({top:props.top??true,right:props.right??true,bottom:props.bottom??true,left:props.left??true}),[props.top,props.right,props.bottom,props.left]);// --- Perimeter calculation, memoized ---\nconst perimeter=useMemo(()=>{// Clamp r to max possible\nconst maxR=Math.min(width-bw,height-bw)/2;const cr=Math.max(0,Math.min(normalizedRadius,maxR));return 2*(width-bw+height-bw-4*cr)+2*Math.PI*cr;},[width,height,bw,normalizedRadius]);const patternLength=dashLength+gapLength;const animOffset=direction===\"clockwise\"?-patternLength:patternLength;// --- getBorderPath, memoized and simplified ---\nconst getBorderPath=useCallback((w,h,bw,r,sides)=>{const half=bw/2;const maxR=Math.min(r,(w-bw)/2,(h-bw)/2);if(!sides.top&&!sides.right&&!sides.bottom&&!sides.left)return\"\";if(sides.top&&sides.right&&sides.bottom&&sides.left){return[`M${half+maxR},${half}`,`H${w-half-maxR}`,`A${maxR},${maxR} 0 0 1 ${w-half},${half+maxR}`,`V${h-half-maxR}`,`A${maxR},${maxR} 0 0 1 ${w-half-maxR},${h-half}`,`H${half+maxR}`,`A${maxR},${maxR} 0 0 1 ${half},${h-half-maxR}`,`V${half+maxR}`,`A${maxR},${maxR} 0 0 1 ${half+maxR},${half}`,\"Z\"].join(\" \");}let d=\"\";// Top\nif(sides.top){d+=`M${half+maxR},${half} H${w-half-maxR} `;// Top-right corner\nif(sides.right&&maxR>0){d+=`A${maxR},${maxR} 0 0 1 ${w-half},${half+maxR} `;}}// Right\nif(sides.right){d+=`M${w-half},${half+maxR} V${h-half-maxR} `;// Bottom-right corner\nif(sides.bottom&&maxR>0){d+=`A${maxR},${maxR} 0 0 1 ${w-half-maxR},${h-half} `;}}// Bottom\nif(sides.bottom){d+=`M${w-half-maxR},${h-half} H${half+maxR} `;// Bottom-left corner\nif(sides.left&&maxR>0){d+=`A${maxR},${maxR} 0 0 1 ${half},${h-half-maxR} `;}}// Left\nif(sides.left){d+=`M${half},${h-half-maxR} V${half+maxR} `;// Top-left corner\nif(sides.top&&maxR>0){d+=`A${maxR},${maxR} 0 0 1 ${half+maxR},${half} `;}}return d.trim();},[]);const borderPath=useMemo(()=>getBorderPath(width,height,bw,normalizedRadius,sides),[width,height,bw,normalizedRadius,sides,getBorderPath]);// --- Animation ready state ---\nconst[animationReady,setAnimationReady]=useState(false);// --- Keyframes injection with cleanup ---\nuseEffect(()=>{setAnimationReady(false);const styleId=`dashed-border-keyframes-${direction}-${uniqueIdRef.current}`;let styleEl=null;if(typeof document!==\"undefined\"){styleEl=document.getElementById(styleId);if(!styleEl){styleEl=document.createElement(\"style\");styleEl.id=styleId;document.head.appendChild(styleEl);}styleEl.innerHTML=`\n                @keyframes ${animName} {\n                    100% {\n                        stroke-dashoffset: ${animOffset};\n                    }\n                }\n            `;setTimeout(()=>setAnimationReady(true),0);}// Cleanup: remove style tag on unmount or change\nreturn()=>{if(styleEl&&styleEl.parentNode){styleEl.parentNode.removeChild(styleEl);}};},[direction,animName,animOffset]);// --- Visibility logic (unchanged, but could be simplified further) ---\nconst[visible,setVisible]=useState(false);useEffect(()=>{const loaded=props.borderColor!==defaultProps.borderColor||props.borderWidth!==defaultProps.borderWidth||props.borderRadius!==defaultProps.borderRadius||props.dashLength!==defaultProps.dashLength||props.gapLength!==defaultProps.gapLength||props.animation&&(props.animation.animated!==defaultProps.animation.animated||props.animation.speed!==defaultProps.animation.speed||props.animation.direction!==defaultProps.animation.direction)||props.top!==defaultProps.top||props.right!==defaultProps.right||props.bottom!==defaultProps.bottom||props.left!==defaultProps.left;if(loaded&&!visible){setTimeout(()=>setVisible(true),10);}},[props.borderColor,props.borderWidth,props.borderRadius,props.dashLength,props.gapLength,props.animation,props.top,props.right,props.bottom,props.left,visible,defaultProps]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,minWidth:20,minHeight:20,width:\"100%\",height:\"100%\",position:\"relative\",background:\"transparent\",borderRadius:borderRadius,overflow:\"visible\",pointerEvents:\"none\",opacity:visible?1:0,transition:visible?\"opacity 0.4s cubic-bezier(.4,0,.2,1)\":undefined},children:/*#__PURE__*/_jsx(\"svg\",{width:width,height:height,viewBox:`0 0 ${width} ${height}`,style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\"},\"aria-hidden\":\"true\",preserveAspectRatio:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:borderPath,fill:\"none\",stroke:borderColor,strokeWidth:bw,strokeDasharray:`${dashLength},${gapLength}`,strokeDashoffset:0,style:{animation:!animated||RenderTarget.current()===RenderTarget.canvas||RenderTarget.current()===RenderTarget.thumbnail||!animationReady?\"none\":`${animName} ${animationDuration} linear infinite`}})})});}DashedBorderFrame.displayName=\"Animated Dashed Border\";addPropertyControls(DashedBorderFrame,{borderColor:{type:ControlType.Color,title:\"Dash Color\",defaultValue:\"#0099FF\"},borderWidth:{type:ControlType.Number,title:\"Thickness\",defaultValue:3,min:1,max:16,step:1,displayStepper:true},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:16,min:0,max:200,step:1,displayStepper:false},dashLength:{type:ControlType.Number,title:\"Dash\",defaultValue:12,min:2,max:40,step:1},gapLength:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,max:40,step:1},top:{type:ControlType.Boolean,title:\"Top\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},right:{type:ControlType.Boolean,title:\"Right\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},bottom:{type:ControlType.Boolean,title:\"Bottom\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},left:{type:ControlType.Boolean,title:\"Left\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},animation:{type:ControlType.Object,title:\"Animation\",controls:{animated:{type:ControlType.Boolean,title:\"Animated\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:2,min:.1,max:10,step:.1,hidden:obj=>!obj.animated},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"clockwise\",\"counterclockwise\"],optionTitles:[\"Clockwise\",\"Counterclockwise\"],defaultValue:\"clockwise\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:obj=>!obj.animated}},defaultValue:{animated:true,speed:2,direction:\"clockwise\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DashedBorderFrame\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"* @framerIntrinsicWidth 400\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"250\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DashedBorder.map","// Generated by Framer (20dc3ed)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import AnimatedDashedBorder from\"https://framerusercontent.com/modules/XBWSgdKr3syOFOYW80i8/4FKsp3EPd3QDaqVONEJD/DashedBorder.js\";const AnimatedDashedBorderFonts=getFonts(AnimatedDashedBorder);const cycleOrder=[\"dNbszlCS9\",\"yzIFdYlxZ\",\"tETbP_pro\",\"oSdwqWnmP\",\"NmV6whLcj\",\"PsAciZ2BM\",\"CLljGfTtP\",\"dmlAwRaBe\",\"HWEDASjkO\",\"yQxqYG67k\"];const serializationHash=\"framer-X1mxQ\";const variantClassNames={CLljGfTtP:\"framer-v-1mlrwuf\",dmlAwRaBe:\"framer-v-yl5zu4\",dNbszlCS9:\"framer-v-z8k7b0\",HWEDASjkO:\"framer-v-8evypz\",NmV6whLcj:\"framer-v-1nqlqan\",oSdwqWnmP:\"framer-v-1qeerv\",PsAciZ2BM:\"framer-v-guq2e5\",tETbP_pro:\"framer-v-p1jozm\",yQxqYG67k:\"framer-v-1ffme69\",yzIFdYlxZ:\"framer-v-1arqcmi\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:0,delay:0,duration:.4,type:\"spring\"};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 humanReadableVariantMap={\"Left Right\":\"yQxqYG67k\",\"Right Bottom\":\"yzIFdYlxZ\",\"Top Bottom\":\"HWEDASjkO\",\"Top Left\":\"dNbszlCS9\",All:\"CLljGfTtP\",Bottom:\"oSdwqWnmP\",Left:\"tETbP_pro\",Right:\"NmV6whLcj\",Top:\"PsAciZ2BM\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"dNbszlCS9\"};};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({cycleOrder,defaultVariant:\"dNbszlCS9\",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-z8k7b0\",className,classNames),\"data-framer-name\":\"Top Left\",layoutDependency:layoutDependency,layoutId:\"dNbszlCS9\",ref:refBinding,style:{...style},...addPropertyOverrides({CLljGfTtP:{\"data-framer-name\":\"All\"},dmlAwRaBe:{\"data-framer-name\":\"Left Right\"},HWEDASjkO:{\"data-framer-name\":\"Top Bottom\"},NmV6whLcj:{\"data-framer-name\":\"Right\"},oSdwqWnmP:{\"data-framer-name\":\"Bottom\"},PsAciZ2BM:{\"data-framer-name\":\"Top\"},tETbP_pro:{\"data-framer-name\":\"Left\"},yQxqYG67k:{\"data-framer-name\":\"Left Right\"},yzIFdYlxZ:{\"data-framer-name\":\"Right Bottom\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ugmoae-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"EHPmwsEKd-container\",nodeId:\"EHPmwsEKd\",rendersWithMotion:true,scopeId:\"ywmXeNfxF\",children:/*#__PURE__*/_jsx(AnimatedDashedBorder,{animation:{animated:true,direction:\"clockwise\",speed:2},borderColor:\"var(--token-ab91763a-bd8d-4b8f-92c1-f89e2462855c, rgb(28, 28, 28))\",borderRadius:0,borderWidth:1,bottom:false,dashLength:12,gapLength:6,height:\"100%\",id:\"EHPmwsEKd\",layoutId:\"EHPmwsEKd\",left:true,right:false,style:{height:\"100%\",width:\"100%\"},top:true,width:\"100%\",...addPropertyOverrides({CLljGfTtP:{bottom:true,right:true},dmlAwRaBe:{right:true,top:false},HWEDASjkO:{bottom:true,left:false},NmV6whLcj:{left:false,right:true,top:false},oSdwqWnmP:{bottom:true,left:false,top:false},PsAciZ2BM:{left:false},tETbP_pro:{top:false},yQxqYG67k:{right:true,top:false},yzIFdYlxZ:{bottom:true,left:false,right:true,top:false}},baseVariant,gestureVariant)})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-X1mxQ.framer-6eel1k, .framer-X1mxQ .framer-6eel1k { display: block; }\",\".framer-X1mxQ.framer-z8k7b0 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 360px; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 499px; }\",\".framer-X1mxQ .framer-ugmoae-container { flex: 1 0 0px; height: 100%; pointer-events: none; position: relative; width: 1px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 360\n * @framerIntrinsicWidth 499\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"yzIFdYlxZ\":{\"layout\":[\"fixed\",\"fixed\"]},\"tETbP_pro\":{\"layout\":[\"fixed\",\"fixed\"]},\"oSdwqWnmP\":{\"layout\":[\"fixed\",\"fixed\"]},\"NmV6whLcj\":{\"layout\":[\"fixed\",\"fixed\"]},\"PsAciZ2BM\":{\"layout\":[\"fixed\",\"fixed\"]},\"CLljGfTtP\":{\"layout\":[\"fixed\",\"fixed\"]},\"dmlAwRaBe\":{\"layout\":[\"fixed\",\"fixed\"]},\"HWEDASjkO\":{\"layout\":[\"fixed\",\"fixed\"]},\"yQxqYG67k\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerywmXeNfxF=withCSS(Component,css,\"framer-X1mxQ\");export default FramerywmXeNfxF;FramerywmXeNfxF.displayName=\"Main Site Grid Border\";FramerywmXeNfxF.defaultProps={height:360,width:499};addPropertyControls(FramerywmXeNfxF,{variant:{options:[\"dNbszlCS9\",\"yzIFdYlxZ\",\"tETbP_pro\",\"oSdwqWnmP\",\"NmV6whLcj\",\"PsAciZ2BM\",\"CLljGfTtP\",\"dmlAwRaBe\",\"HWEDASjkO\",\"yQxqYG67k\"],optionTitles:[\"Top Left\",\"Right Bottom\",\"Left\",\"Bottom\",\"Right\",\"Top\",\"All\",\"Left Right\",\"Top Bottom\",\"Left Right\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerywmXeNfxF,[{explicitInter:true,fonts:[]},...AnimatedDashedBorderFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerywmXeNfxF\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"yzIFdYlxZ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"tETbP_pro\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"oSdwqWnmP\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"NmV6whLcj\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"PsAciZ2BM\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"CLljGfTtP\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"dmlAwRaBe\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"HWEDASjkO\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"yQxqYG67k\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"360\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"499\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ywmXeNfxF.map","// Generated by Framer (8c094e5)\nexport default function metadata(params,activeLocale){return{description:\"Turn devices and robotic systems into on-chain yield with lightweight nodes, proofs, and automated compounding, building on Base for a scalable device economy.\",favicon:\"https://framerusercontent.com/assets/aszv47JV7FmyinLqK3HgOWKEVM.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/ooAvb3HohjVv6RHFlyrW2yUMAA.png\",title:\"VOLM is the decentralized backbone for robotics and IoT\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"yXAQG,SAAwB,EAAkB,EAAM,CACnD,IAAM,EAAaA,OAAa,CAAC,YAAY,UAAU,YAAY,EAAE,aAAa,GAAG,WAAW,GAAG,UAAU,EAAE,UAAU,CAAC,SAAS,GAAK,MAAM,EAAE,UAAU,YAAY,CAAC,IAAI,GAAK,MAAM,GAAK,OAAO,GAAK,KAAK,GAAK,EAAE,EAAE,CAAC,CAAM,CAAC,cAAY,EAAa,YAAY,cAAY,EAAa,YAAY,eAAa,EAAa,aAAa,aAAW,EAAa,WAAW,YAAU,EAAa,UAAU,YAAU,EAAa,UAAU,QAAM,EAAE,EAAE,EAAW,CAAC,WAAS,QAAM,aAAW,EAC7d,EAAYC,EAAO,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAO,EAAS,aAAa,EAAU,GAAG,EAAY,UAC3F,EAAkB,GAAG,KAAK,IAAnC,GAAmD,EAAE,KAAK,IAAI,IAAI,EAAM,CAAC,CAAC,GACtF,EAAaA,EAAO,KAAK,CAAO,EAAkBA,EAAO,KAAK,CAAM,CAAC,EAAK,GAASC,EAAS,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,CACnH,EAAeC,MAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAa,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAa,SAAS,GAAG,EAAa,QAAQ,EAAa,SAAS,GAAG,EAAa,UAAW,AAA6E,EAA1E,EAAM,OAAO,OAAO,EAAM,MAAM,OAAQ,SAAW,EAAM,MAAM,MAAa,EAAa,QAAQ,YAAY,AAA+E,EAA5E,EAAM,OAAO,OAAO,EAAM,MAAM,QAAS,SAAW,EAAM,MAAM,OAAc,EAAa,QAAQ,iBAAkB,CAAC,IAAM,EAAK,EAAa,QAAQ,uBAAuB,CAAC,EAAE,EAAK,MAAM,EAAE,EAAK,OAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAG,CAAC,EAAM,OAAO,MAAM,EAAM,OAAO,OAAO,CAAC,CAC3kB,MAAc,CAAC,GAAG,CAAC,EAAa,QAAQ,OAAO,IAAM,MAAe,CAAC,GAAK,CAAC,MAAM,EAAE,OAAO,GAAG,GAAgB,CAAC,EAAQ,GAAM,EAAK,QAAQ,GAAG,EAAK,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAK,EAA8M,OAA3M,GAAY,CAAI,EAAkB,SAAS,EAAkB,QAAQ,YAAY,CAAE,EAAkB,QAAQ,IAAI,EAAO,eAAe,EAAW,CAAC,EAAkB,QAAQ,QAAQ,EAAa,QAAQ,KAAW,CAAC,AAAqE,EAAkB,WAAzD,EAAkB,QAAQ,YAAY,CAA2B,QAAU,CAAC,EAAe,CAAC,CAAC,IAAM,EAAM,EAAK,MAAY,EAAO,EAAK,OAAa,EAAG,KAAK,IAAI,EAAE,KAAK,IAAI,GAAG,EAAY,CAAC,CAC/lB,EAAiBH,MAAY,CAAC,GAAG,OAAO,GAAe,SAAS,OAAO,EAAa,GAAG,OAAO,GAAe,SAAS,CAAC,GAAG,EAAa,SAAS,KAAK,CAAC,OAAO,WAAW,EAAa,CAAC,GAAG,EAAa,SAAS,IAAI,CAAC,CAC1N,IAAM,EAAM,WAAW,EAAa,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE,EAAM,KAAK,IAAI,EAAM,EAAO,CAAC,EAAE,CAAE,OAAO,WAAW,EAAa,CAAE,MAAO,IAAI,CAAC,EAAa,EAAM,EAAO,CAAC,CAAY,EAAG,EACnL,IAAM,EAAMA,OAAa,CAAC,IAAI,EAAM,KAAK,GAAK,MAAM,EAAM,OAAO,GAAK,OAAO,EAAM,QAAQ,GAAK,KAAK,EAAM,MAAM,GAAK,EAAE,CAAC,EAAM,IAAI,EAAM,MAAM,EAAM,OAAO,EAAM,KAAK,CAAC,CACxJ,MAAY,CAC5B,IAAM,EAAK,KAAK,IAAI,EAAM,EAAG,EAAO,EAAG,CAAC,EAAQ,EAAG,KAAK,IAAI,EAAE,KAAK,IAAI,EAAiB,EAAK,CAAC,CAAC,MAAO,IAAG,EAAM,EAAG,EAAO,EAAG,EAAE,GAAI,EAAE,KAAK,GAAG,GAAK,CAAC,EAAM,EAAO,EAAG,EAAiB,CAAC,CAAC,IAAM,EAAc,EAAW,EAAgB,EAAW,IAAY,YAAY,CAAC,EAAc,EAChR,EAAcG,GAAa,EAAE,EAAE,EAAG,EAAE,IAAQ,CAAC,IAAM,EAAKC,EAAG,EAAQ,EAAK,KAAK,IAAI,GAAG,EAAEA,GAAI,GAAG,EAAEA,GAAI,EAAE,CAAC,GAAG,CAACC,EAAM,KAAK,CAACA,EAAM,OAAO,CAACA,EAAM,QAAQ,CAACA,EAAM,KAAK,MAAM,GAAG,GAAGA,EAAM,KAAKA,EAAM,OAAOA,EAAM,QAAQA,EAAM,KAAM,MAAM,CAAC,IAAI,EAAK,EAAK,GAAG,IAAO,IAAI,EAAE,EAAK,IAAO,IAAI,EAAK,GAAG,EAAK,SAAS,EAAE,EAAK,GAAG,EAAK,IAAO,IAAI,EAAE,EAAK,IAAO,IAAI,EAAK,GAAG,EAAK,SAAS,EAAE,EAAK,EAAK,GAAG,EAAE,IAAO,IAAI,EAAK,IAAO,IAAI,EAAK,GAAG,EAAK,SAAS,EAAK,GAAG,EAAE,EAAK,IAAO,IAAI,EAAK,IAAO,IAAI,EAAK,GAAG,EAAK,SAAS,EAAK,EAAK,GAAG,IAAO,IAAI,CAAC,KAAK,IAAI,CAAE,IAAI,EAAE,GAQjd,OAPvEA,EAAM,MAAK,GAAG,IAAI,EAAK,EAAK,GAAG,EAAK,IAAI,EAAE,EAAK,EAAK,GACpDA,EAAM,OAAO,EAAK,IAAG,GAAG,IAAI,EAAK,GAAG,EAAK,SAAS,EAAE,EAAK,GAAG,EAAK,EAAK,KACtEA,EAAM,QAAO,GAAG,IAAI,EAAE,EAAK,GAAG,EAAK,EAAK,IAAI,EAAE,EAAK,EAAK,GACxDA,EAAM,QAAQ,EAAK,IAAG,GAAG,IAAI,EAAK,GAAG,EAAK,SAAS,EAAE,EAAK,EAAK,GAAG,EAAE,EAAK,KACzEA,EAAM,SAAQ,GAAG,IAAI,EAAE,EAAK,EAAK,GAAG,EAAE,EAAK,IAAI,EAAK,EAAK,GACzDA,EAAM,MAAM,EAAK,IAAG,GAAG,IAAI,EAAK,GAAG,EAAK,SAAS,EAAK,GAAG,EAAE,EAAK,EAAK,KACrEA,EAAM,OAAM,GAAG,IAAI,EAAK,GAAG,EAAE,EAAK,EAAK,IAAI,EAAK,EAAK,GACrDA,EAAM,KAAK,EAAK,IAAG,GAAG,IAAI,EAAK,GAAG,EAAK,SAAS,EAAK,EAAK,GAAG,EAAK,KAAY,EAAE,MAAM,EAAG,EAAE,CAAC,CAAO,EAAWL,MAAY,EAAc,EAAM,EAAO,EAAG,EAAiB,EAAM,CAAC,CAAC,EAAM,EAAO,EAAG,EAAiB,EAAM,EAAc,CAAC,CACrO,CAAC,EAAe,GAAmBE,EAAS,GAAM,CACvD,MAAc,CAAC,EAAkB,GAAM,CAAC,IAAM,EAAQ,2BAA2B,EAAU,GAAG,EAAY,UAAc,EAAQ,KAOhI,OAPwI,OAAO,SAAW,MAAa,EAAQ,SAAS,eAAe,EAAQ,CAAK,IAAS,EAAQ,SAAS,cAAc,QAAQ,CAAC,EAAQ,GAAG,EAAQ,SAAS,KAAK,YAAY,EAAQ,EAAE,EAAQ,UAAU;6BACjT,EAAS;;6CAEO,EAAW;;;cAG1C,eAAe,EAAkB,GAAK,CAAC,EAAE,MAC7C,CAAI,GAAS,EAAQ,YAAY,EAAQ,WAAW,YAAY,EAAQ,GAAM,CAAC,EAAU,EAAS,EAAW,CAAC,CACxH,GAAK,CAAC,EAAQ,GAAYA,EAAS,GAAM,CAA+yB,OAA9yB,MAAc,EAAc,EAAM,cAAc,EAAa,aAAa,EAAM,cAAc,EAAa,aAAa,EAAM,eAAe,EAAa,cAAc,EAAM,aAAa,EAAa,YAAY,EAAM,YAAY,EAAa,WAAW,EAAM,YAAY,EAAM,UAAU,WAAW,EAAa,UAAU,UAAU,EAAM,UAAU,QAAQ,EAAa,UAAU,OAAO,EAAM,UAAU,YAAY,EAAa,UAAU,YAAY,EAAM,MAAM,EAAa,KAAK,EAAM,QAAQ,EAAa,OAAO,EAAM,SAAS,EAAa,QAAQ,EAAM,OAAO,EAAa,OAAgB,CAAC,GAAS,eAAe,EAAW,GAAK,CAAC,GAAG,EAAI,CAAC,EAAM,YAAY,EAAM,YAAY,EAAM,aAAa,EAAM,WAAW,EAAM,UAAU,EAAM,UAAU,EAAM,IAAI,EAAM,MAAM,EAAM,OAAO,EAAM,KAAK,EAAQ,EAAa,CAAC,CAAqB,EAAK,MAAM,CAAC,IAAI,EAAa,MAAM,CAAC,GAAG,EAAM,SAAS,GAAG,UAAU,GAAG,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,WAAW,cAA2B,eAAa,SAAS,UAAU,cAAc,OAAO,QAAQ,EAAQ,EAAE,EAAE,WAAW,EAAQ,uCAAuC,IAAA,GAAU,CAAC,SAAsB,EAAK,MAAM,CAAO,QAAa,SAAO,QAAQ,OAAO,EAAM,GAAG,IAAS,MAAM,CAAC,SAAS,WAAW,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,OAAO,OAAO,cAAc,OAAO,CAAC,cAAc,OAAO,oBAAoB,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,EAAW,KAAK,OAAO,OAAO,EAAY,YAAY,EAAG,gBAAgB,GAAG,EAAW,GAAG,IAAY,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,GAAU,EAAa,SAAS,GAAG,EAAa,QAAQ,EAAa,SAAS,GAAG,EAAa,WAAW,CAAC,EAAe,OAAO,GAAG,EAAS,GAAG,EAAkB,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAtCzrD,IAAiE,IAAiE,CAsCyjD,EAAkB,YAAY,yBAAyB,EAAoB,EAAkB,CAAC,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,eAAe,GAAK,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,eAAe,GAAM,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAY,QAAQ,MAAM,MAAM,aAAa,GAAK,aAAa,MAAM,cAAc,KAAK,CAAC,MAAM,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,GAAK,aAAa,MAAM,cAAc,KAAK,CAAC,OAAO,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAK,aAAa,MAAM,cAAc,KAAK,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAK,aAAa,MAAM,cAAc,KAAK,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,SAAS,CAAC,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAK,aAAa,KAAK,cAAc,MAAM,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAK,CAAC,EAAI,SAAS,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,YAAY,mBAAmB,CAAC,aAAa,CAAC,YAAY,mBAAmB,CAAC,aAAa,YAAY,wBAAwB,GAAK,0BAA0B,WAAW,OAAO,GAAK,CAAC,EAAI,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,GAAK,MAAM,EAAE,UAAU,YAAY,CAAC,CAAC,CAAC,ICrClwE,SAAS,EAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,2CAAroC,IAA4L,IAAkE,IAA4B,IAA4J,CAAM,EAA0B,EAASI,EAAqB,CAAO,EAAW,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,CAAO,EAAkB,eAAqB,EAAkB,CAAC,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,mBAAmB,CAA8L,EAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAO,GAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS,EAAS,EAAO,OAAOC,EAAe,CAAO,EAAwB,CAAC,aAAa,YAAY,eAAe,YAAY,aAAa,YAAY,WAAW,YAAY,IAAI,YAAY,OAAO,YAAY,KAAK,YAAY,MAAM,YAAY,IAAI,YAAY,CAAO,GAAU,CAAC,SAAO,KAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,QAAQ,EAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAAS,GAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAU3lE,EAAgB,EAV2mE,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,GAAe,CAAyB,GAAsB,CAAC,GAAK,CAAC,QAAM,YAAU,WAAS,UAAQ,GAAG,GAAW,EAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,EAAgB,CAAC,aAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,oBAAkB,CAAC,CAAO,EAAiB,EAAuB,EAAM,EAAS,CAAsC,EAAkB,EAAG,EAA2C,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAK,EAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAK,EAAW,CAAC,MAAM,EAAY,SAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,gBAAgB,EAAU,EAAW,CAAC,mBAAmB,WAA4B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,GAAG,EAAqB,CAAC,UAAU,CAAC,mBAAmB,MAAM,CAAC,UAAU,CAAC,mBAAmB,aAAa,CAAC,UAAU,CAAC,mBAAmB,aAAa,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,mBAAmB,SAAS,CAAC,UAAU,CAAC,mBAAmB,MAAM,CAAC,UAAU,CAAC,mBAAmB,OAAO,CAAC,UAAU,CAAC,mBAAmB,aAAa,CAAC,UAAU,CAAC,mBAAmB,eAAe,CAAC,CAAC,EAAY,EAAe,CAAC,SAAsB,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAA8B,CAAC,UAAU,0BAA0B,iBAAiB,GAAK,iBAAiB,GAAsB,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKL,EAAqB,CAAC,UAAU,CAAC,SAAS,GAAK,UAAU,YAAY,MAAM,EAAE,CAAC,YAAY,qEAAqE,aAAa,EAAE,YAAY,EAAE,OAAO,GAAM,WAAW,GAAG,UAAU,EAAE,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,KAAK,GAAK,MAAM,GAAM,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,IAAI,GAAK,MAAM,OAAO,GAAG,EAAqB,CAAC,UAAU,CAAC,OAAO,GAAK,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,IAAI,GAAM,CAAC,UAAU,CAAC,OAAO,GAAK,KAAK,GAAM,CAAC,UAAU,CAAC,KAAK,GAAM,MAAM,GAAK,IAAI,GAAM,CAAC,UAAU,CAAC,OAAO,GAAK,KAAK,GAAM,IAAI,GAAM,CAAC,UAAU,CAAC,KAAK,GAAM,CAAC,UAAU,CAAC,IAAI,GAAM,CAAC,UAAU,CAAC,MAAM,GAAK,IAAI,GAAM,CAAC,UAAU,CAAC,OAAO,GAAK,KAAK,GAAM,MAAM,GAAK,IAAI,GAAM,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,0PAA0P,gIAAgI,CAUhuK,eAAe,GAAgB,EAAgB,EAAgB,YAAY,wBAAwB,EAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,EAAoB,EAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,WAAW,eAAe,OAAO,SAAS,QAAQ,MAAM,MAAM,aAAa,aAAa,aAAa,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,CAAC,CAAC,EAAS,EAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,GAAG,EAA0B,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICV7oB,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,kKAAkK,QAAQ,sEAAsE,OAAO,0BAA0B,YAAY,sEAAsE,MAAM,0DAA0D"}