{"version":3,"file":"BrandButton.C1kmoq_n.mjs","names":["React.useState"],"sources":["https:/framerusercontent.com/modules/wnNoT8G1Ci3gov4J3pGL/AXXChNHfgRZcIk88pl8H/BrandButton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const HEAD_FONT=\"'Montserrat', 'Helvetica Neue', sans-serif\";/**\n * Church Center lives at river-oaks-church.churchcenter.com. An earlier build\n * used riveroaks.churchcenter.com throughout, which belongs to a different\n * organisation and 404s: giving, group signups and registrations all dead-ended.\n *\n * Buttons store their URL on the instance, and instance props cannot be\n * rewritten from the MCP, so correcting the source files alone would leave\n * every already-placed button broken. Rewriting the host here fixes all of\n * them at render time, including any the client pasted from an old document.\n */const CHURCH_CENTER_HOST=\"river-oaks-church.churchcenter.com\";const DEAD_CHURCH_CENTER=/\\/\\/(?:www\\.)?riveroaks\\.churchcenter\\.com/i;// Three slugs moved to the old site's addresses so the search equity carries\n// over. A String link prop stores a literal path per instance, so a retired\n// path can still be stored on a placed button — rewritten here, the same way\n// the dead Church Center subdomain is.\nconst RENAMED_PATHS={\"/visit\":\"/visitriveroaks\",\"/staff\":\"/our-staff\",\"/about\":\"/who-we-are\"};function canonicalPath(path){const cut=path.search(/[#?]/);const base=cut===-1?path:path.slice(0,cut);const tail=cut===-1?\"\":path.slice(cut);return(RENAMED_PATHS[base]||base)+tail;}export function correctHref(url){if(!url)return url;return canonicalPath(url.replace(DEAD_CHURCH_CENTER,`//${CHURCH_CENTER_HOST}`));}// The \"green\" key renders black-on-white (Jack, 2026-08-26: green is a\n// gradient-only colour). The key stays because variant is stored per instance\n// and instance props cannot be rewritten from the MCP.\nconst VARIANTS={primary:{bg:\"#4d9ee9\",hoverBg:\"#3e7fbb\",text:\"#ffffff\"},dark:{bg:\"#000000\",hoverBg:\"#333333\",text:\"#ffffff\"},orange:{bg:\"#ff8200\",hoverBg:\"#CC6800\",text:\"#ffffff\"},green:{bg:\"#000000\",hoverBg:\"#333333\",text:\"#ffffff\"},outlineLight:{bg:\"rgba(255,255,255,0)\",hoverBg:\"#ffffff\",text:\"#ffffff\",hoverText:\"#000000\",border:\"2px solid #ffffff\"},outlineDark:{bg:\"rgba(0,0,0,0)\",hoverBg:\"#000000\",text:\"#000000\",hoverText:\"#ffffff\",border:\"2px solid #000000\"}};/**\n * Reusable River Oaks pill button. The \"gradient\" variant carries the\n * signature blue-green gradient that slides on hover with a shine sweep —\n * reserve it for the highest-value CTAs (Plan Your Visit, Give).\n *\n * linkUrl exists because Framer's Link control refuses URLs it cannot\n * validate as pages (query strings like /groups?category=care, hashes).\n * It is a plain string, wins over the Link picker when set, and is the\n * only way the MCP can point a button at a filtered deep link.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 200\n */export default function BrandButton(props){const{label,link,linkUrl,newTab,variant,size,fullWidth,showArrow,style}=props;const[hover,setHover]=React.useState(false);const isGradient=variant===\"gradient\";const v=VARIANTS[variant]||VARIANTS.primary;const isLg=size===\"lg\";const href=correctHref(linkUrl&&linkUrl.trim()||link||\"#\");const gradientStyles=isGradient?{backgroundImage:\"linear-gradient(100deg, #3e7fbb, #4d9ee9 45%, #3d8c62)\",backgroundSize:\"200% auto\",backgroundPosition:hover?\"100% center\":\"0% center\",backgroundColor:\"#4d9ee9\",position:\"relative\",overflow:\"hidden\"}:{};return /*#__PURE__*/_jsxs(motion.a,{href:href,target:newTab?\"_blank\":undefined,rel:newTab?\"noopener noreferrer\":undefined,onMouseEnter:()=>setHover(true),onMouseLeave:()=>setHover(false),whileHover:{y:-2},whileTap:{scale:.97},className:isGradient?\"ro-btn-gradient\":undefined,style:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,width:fullWidth?\"100%\":\"auto\",padding:isLg?\"18px 36px\":\"14px 26px\",borderRadius:999,background:isGradient?undefined:hover?v.hoverBg:v.bg,color:isGradient?\"#ffffff\":hover&&v.hoverText?v.hoverText:v.text,border:v.border||\"2px solid rgba(0,0,0,0)\",fontFamily:HEAD_FONT,fontWeight:700,fontSize:isLg?16:15,lineHeight:1,letterSpacing:\"0.01em\",textDecoration:\"none\",cursor:\"pointer\",whiteSpace:\"nowrap\",transition:isGradient?\"background-position 0.45s ease\":\"background 0.25s ease, color 0.25s ease\",boxShadow:hover&&isGradient?\"0 8px 22px rgba(62,127,187,0.3)\":undefined,boxSizing:\"border-box\",...gradientStyles,...style},children:[isGradient?/*#__PURE__*/_jsx(\"style\",{children:`\n                    .ro-btn-gradient::before {\n                        content: \"\";\n                        position: absolute;\n                        inset: 0;\n                        background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.28) 50%, transparent 70%);\n                        transform: translateX(-130%) skewX(-18deg);\n                        transition: transform 0.55s ease;\n                        pointer-events: none;\n                    }\n                    .ro-btn-gradient:hover::before { transform: translateX(130%) skewX(-18deg); }\n                    @media (prefers-reduced-motion: reduce) {\n                        .ro-btn-gradient::before { display: none; }\n                    }\n                `}):null,/*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",zIndex:1,display:\"inline-flex\",alignItems:\"center\",gap:8},children:[label,showArrow?/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,style:{display:\"inline-block\",transform:hover?\"translateX(3px)\":\"translateX(0)\",transition:\"transform 0.25s ease\"},children:\"→\"}):null]})]});}addPropertyControls(BrandButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Plan Your Visit\"},link:{type:ControlType.Link,title:\"Link\"},linkUrl:{type:ControlType.String,title:\"Link URL\",defaultValue:\"\",description:\"Overrides Link when set; accepts query strings and #hashes\"},newTab:{type:ControlType.Boolean,title:\"New Tab\",defaultValue:false},variant:{type:ControlType.Enum,title:\"Style\",options:[\"primary\",\"gradient\",\"dark\",\"orange\",\"green\",\"outlineLight\",\"outlineDark\"],optionTitles:[\"Blue\",\"Gradient\",\"Black\",\"Orange\",\"Black (Alt)\",\"Outline Light\",\"Outline Dark\"],defaultValue:\"primary\"},size:{type:ControlType.Enum,title:\"Size\",options:[\"md\",\"lg\"],optionTitles:[\"Medium\",\"Large\"],defaultValue:\"md\"},fullWidth:{type:ControlType.Boolean,title:\"Full Width\",defaultValue:false},showArrow:{type:ControlType.Boolean,title:\"Arrow\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BrandButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"correctHref\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BrandButton.map"],"mappings":"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"}