{"version":3,"file":"gVIoxPDZS.CuGRXO2L.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/3ANwPxdsZZf3qpScojBv/4vU8xfrFkiD7ZgZ1aWMN/BorderReveal_1.js","https:/framerusercontent.com/modules/52y8o1MZabgejgdIPSGA/KvZ6wG1bNhlaKMQeEaji/gVIoxPDZS.js"],"sourcesContent":["// Animated border that transforms from left to right or top to bottom when in view, with arrow icon control for direction and full Framer animation control. Only triggers on layer in view.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * BorderReveal\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n */export default function BorderReveal(props){const{direction=\"leftToRight\",transition={type:\"tween\",ease:\"easeInOut\",duration:.7,delay:0},borderColor,size,borderRadius,replay=false,style}=props;const ref=useRef(null);const[inView,setInView]=useState(false);const[hasAnimated,setHasAnimated]=useState(false);const isStatic=useIsStaticRenderer();useEffect(()=>{if(isStatic){setInView(true);return;}const node=ref.current;if(!node)return;let observer=null;observer=new window.IntersectionObserver(([entry])=>{if(replay){startTransition(()=>setInView(entry.isIntersecting));}else{if(entry.isIntersecting&&!hasAnimated){startTransition(()=>setInView(true));setHasAnimated(true);}}},{threshold:0});observer.observe(node);return()=>{if(observer&&node)observer.unobserve(node);};},[isStatic,replay,hasAnimated]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...style,position:\"relative\",width:direction===\"leftToRight\"?\"100%\":size,height:direction===\"leftToRight\"?size:\"100%\",minWidth:5,minHeight:5,overflow:\"hidden\",borderRadius,background:\"transparent\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:direction===\"leftToRight\"?0:undefined,top:direction===\"topToBottom\"?0:undefined,width:direction===\"leftToRight\"?inView?\"100%\":0:size,height:direction===\"topToBottom\"?inView?\"100%\":0:size,background:borderColor,borderRadius,transition:transition.type===\"tween\"?`${direction===\"leftToRight\"?\"width\":\"height\"} ${transition.duration??.7}s ${transition.ease===\"linear\"?\"linear\":transition.ease===\"easeIn\"?\"cubic-bezier(0.4,0,1,1)\":transition.ease===\"easeOut\"?\"cubic-bezier(0,0,0.2,1)\":transition.ease===\"easeInOut\"?\"cubic-bezier(0.4,0,0.2,1)\":\"cubic-bezier(0.4,0,0.2,1)\"} ${transition.delay??0}s`:transition.type===\"spring\"?undefined:undefined},\"aria-hidden\":\"true\"})});}addPropertyControls(BorderReveal,{direction:{type:ControlType.Enum,title:\"Direction\",options:[\"leftToRight\",\"topToBottom\"],optionTitles:[\"→\",\"↓\"],defaultValue:\"leftToRight\",displaySegmentedControl:true},replay:{type:ControlType.Boolean,title:\"Replay\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},transition:{type:ControlType.Transition,title:\"Animation\"},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#222\"},size:{type:ControlType.Number,title:\"Size\",defaultValue:4,min:1,max:40,step:1,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:2,min:0,max:20,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BorderReveal\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BorderReveal_1.map","// Generated by Framer (9e04080)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Geist-600\",\"GF;Geist-900\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v3/gyBhhwUxId8gMGYQMKR3pzfaWI_RQuQ4mJPby1QNtA.woff2\",weight:\"600\"},{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v3/gyBhhwUxId8gMGYQMKR3pzfaWI_RNeQ4mJPby1QNtA.woff2\",weight:\"900\"}]}];export const css=['.framer-hUwwJ .framer-styles-preset-1uhvlif:not(.rich-text-wrapper), .framer-hUwwJ .framer-styles-preset-1uhvlif.rich-text-wrapper h3 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 32px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 900; --framer-letter-spacing: -0.05em; --framer-line-height: 100%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-fdc773ac-5972-4166-bcbd-b2c1ab05ab27, #cacaca); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-hUwwJ .framer-styles-preset-1uhvlif:not(.rich-text-wrapper), .framer-hUwwJ .framer-styles-preset-1uhvlif.rich-text-wrapper h3 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 26px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 900; --framer-letter-spacing: -0.05em; --framer-line-height: 100%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-fdc773ac-5972-4166-bcbd-b2c1ab05ab27, #cacaca); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-hUwwJ .framer-styles-preset-1uhvlif:not(.rich-text-wrapper), .framer-hUwwJ .framer-styles-preset-1uhvlif.rich-text-wrapper h3 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 24px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 900; --framer-letter-spacing: -0.05em; --framer-line-height: 100%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-fdc773ac-5972-4166-bcbd-b2c1ab05ab27, #cacaca); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-hUwwJ\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"uNAMG,SAAwB,EAAa,EAAM,CAAC,GAAK,CAAC,YAAU,cAAc,aAAW,CAAC,KAAK,QAAQ,KAAK,YAAY,SAAS,GAAG,MAAM,EAAE,CAAC,cAAY,OAAK,eAAa,SAAO,GAAM,SAAO,EAAY,EAAIA,EAAO,KAAK,CAAM,CAAC,EAAO,GAAWC,EAAS,GAAM,CAAM,CAAC,EAAY,GAAgBA,EAAS,GAAM,CAAO,EAAS,GAAqB,CAA6c,OAA5c,MAAc,CAAC,GAAG,EAAS,CAAC,EAAU,GAAK,CAAC,OAAQ,IAAM,EAAK,EAAI,QAAQ,GAAG,CAAC,EAAK,OAAO,IAAI,EAAS,KAA2Q,MAAtQ,GAAS,IAAI,EAAO,sBAAsB,CAAC,KAAS,CAAI,EAAQ,MAAoB,EAAU,EAAM,eAAe,CAAC,CAAU,EAAM,gBAAgB,CAAC,IAAa,MAAoB,EAAU,GAAK,CAAC,CAAC,EAAe,GAAK,GAAK,CAAC,UAAU,EAAE,CAAC,CAAC,EAAS,QAAQ,EAAK,KAAW,CAAI,GAAU,GAAK,EAAS,UAAU,EAAK,GAAK,CAAC,EAAS,EAAO,EAAY,CAAC,CAAqB,EAAK,MAAM,CAAK,MAAI,MAAM,CAAC,GAAG,EAAM,SAAS,WAAW,MAAM,IAAY,cAAc,OAAO,EAAK,OAAO,IAAY,cAAc,EAAK,OAAO,SAAS,EAAE,UAAU,EAAE,SAAS,SAAS,eAAa,WAAW,cAAc,CAAC,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,IAAY,cAAc,EAAE,IAAA,GAAU,IAAI,IAAY,cAAc,EAAE,IAAA,GAAU,MAAM,IAAY,cAAc,EAAO,OAAO,EAAE,EAAK,OAAO,IAAY,cAAc,EAAO,OAAO,EAAE,EAAK,WAAW,EAAY,eAAa,WAAW,EAAW,OAAO,QAAQ,GAAG,IAAY,cAAc,QAAQ,SAAS,GAAG,EAAW,UAAU,GAAG,IAAI,EAAW,OAAO,SAAS,SAAS,EAAW,OAAO,SAAS,0BAA0B,EAAW,OAAO,UAAU,2BAA0B,EAAW,KAAmB,6BAAwD,GAAG,EAAW,OAAO,EAAE,IAAG,EAAW,KAAgB,IAAA,IAAoB,CAAC,cAAc,OAAO,CAAC,CAAC,CAAC,sBAL1sD,IAA6D,IAAwE,CAKukD,EAAoB,EAAa,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,cAAc,cAAc,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,cAAc,wBAAwB,GAAK,CAAC,OAAO,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAM,aAAa,MAAM,cAAc,KAAK,CAAC,WAAW,CAAC,KAAK,EAAY,WAAW,MAAM,YAAY,CAAC,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,aAAa,OAAO,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,uBCLp1E,GAAU,UAAU,CAAC,eAAe,eAAe,CAAC,CAAc,EAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAc,EAAI,CAAC,0zBAA0zB,g3BAAg3B,62BAA62B,CAAc,EAAU"}