{"version":3,"file":"JMButton.B2R0LXO2.mjs","names":["_Fragment"],"sources":["https:/framerusercontent.com/modules/krHZGMhllJwb2dcItnw5/xxeFVvLOcxkFKhzq0kNz/JMButton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";// ============================================================================\n// BRAND TOKENS (Jake Morrison v1.0)\n// ============================================================================\nconst tokens={navy:\"#0F274B\",navyHover:\"#091B36\",teal:\"#1D7A6B\",tealHover:\"#165E51\",white:\"#FFFFFF\",offWhite:\"#FAF7F2\",mist:\"#E6E1D6\",disabledBg:\"#EDE8DE\",disabledText:\"#8F8A7D\"};// ============================================================================\n// SITE CONFIGURATION — CHANGE THIS IF DOMAIN CHANGES\n// ============================================================================\nconst SITE_URL=\"https://jakemorrison.co.uk\";// ============================================================================\n// COMPONENT\n// ============================================================================\nexport default function Button(props){const{label=\"Book a call\",showArrow=true,variant=\"primary\",size=\"md\",background=\"light\",linkType=\"none\",pagePath=\"\",externalUrl=\"\",disabled=false,fullWidth=false,style}=props;const isDark=background===\"navy\";// Size configurations (WCAG compliant: min 44px tap target)\nconst sizes={sm:{padding:\"8px 14px\",fontSize:\"13px\",radius:\"6px\"},md:{padding:\"11px 18px\",fontSize:\"15px\",radius:\"8px\"},lg:{padding:\"14px 22px\",fontSize:\"16px\",radius:\"10px\"}};// Get styles based on variant and background\nconst getStyles=()=>{if(disabled){return{background:tokens.disabledBg,color:tokens.disabledText,border:\"1px solid transparent\"};}// Light background variants\nif(!isDark){switch(variant){case\"primary\":return{background:tokens.navy,color:tokens.white,border:\"1px solid transparent\"};case\"secondary\":return{background:\"transparent\",color:tokens.navy,border:`1px solid ${tokens.navy}`};case\"tertiary\":return{background:tokens.white,color:tokens.navy,border:`1px solid ${tokens.mist}`};case\"link\":return{background:\"transparent\",color:tokens.navy,border:\"none\",padding:variant===\"link\"?\"11px 0\":undefined,borderRadius:0,textDecoration:\"none\"};}}// Navy background variants (inverse)\nswitch(variant){case\"primary\":return{background:tokens.white,color:tokens.navy,border:\"1px solid transparent\"};case\"secondary\":return{background:\"transparent\",color:tokens.white,border:`1px solid rgba(255, 255, 255, 0.35)`};case\"tertiary\":return{background:\"rgba(255, 255, 255, 0.08)\",color:tokens.white,border:`1px solid rgba(255, 255, 255, 0.2)`};case\"link\":return{background:\"transparent\",color:tokens.white,border:\"none\",padding:variant===\"link\"?\"11px 0\":undefined,borderRadius:0};}};// Hover states\nconst getHoverStyles=()=>{if(disabled)return{};if(!isDark){switch(variant){case\"primary\":return{background:tokens.navyHover};case\"secondary\":return{background:tokens.navy,color:tokens.white};case\"tertiary\":return{borderColor:tokens.navy};case\"link\":return{color:tokens.tealHover,textDecoration:\"underline\",textUnderlineOffset:\"4px\"};}}// Navy background hover states\nswitch(variant){case\"primary\":return{background:tokens.offWhite};case\"secondary\":return{background:\"rgba(255, 255, 255, 0.08)\",borderColor:\"rgba(255, 255, 255, 0.6)\"};case\"tertiary\":return{background:\"rgba(255, 255, 255, 0.15)\",borderColor:\"rgba(255, 255, 255, 0.4)\"};case\"link\":return{color:tokens.offWhite,textDecoration:\"underline\",textUnderlineOffset:\"4px\"};}};// Focus ring (WCAG 2.1 AA compliant)\nconst focusRing={outline:\"none\",boxShadow:isDark?`0 0 0 2px ${tokens.navy}, 0 0 0 4px ${tokens.teal}`:`0 0 0 2px ${tokens.offWhite}, 0 0 0 4px ${tokens.teal}`};const baseStyles={fontFamily:\"'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif\",fontWeight:600,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",gap:\"6px\",lineHeight:1,letterSpacing:\"-0.005em\",cursor:disabled?\"not-allowed\":\"pointer\",transition:\"all 150ms cubic-bezier(0.2, 0.6, 0.2, 1)\",whiteSpace:\"nowrap\",WebkitFontSmoothing:\"antialiased\",width:fullWidth?\"100%\":\"auto\",...sizes[size],borderRadius:variant===\"link\"?0:sizes[size].radius,...getStyles(),...style};// Arrow icon\nconst Arrow=()=>/*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M12 5l7 7-7 7\"})});const External=()=>/*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14 21 3\"})});// ========================================================================\n// NAVIGATION HANDLER — FIXED FOR JAKEMORRISON.CO.UK\n// ========================================================================\nconst handleClick=()=>{if(disabled)return;if(linkType===\"page\"&&pagePath){// Build the full URL correctly\nlet path=pagePath.trim();// Remove any leading slashes for consistent handling\nif(path.startsWith(\"/\")){path=path.substring(1);}// Construct full URL\nconst fullUrl=`${SITE_URL}/${path}`;// Navigate\nwindow.location.href=fullUrl;}else if(linkType===\"url\"&&externalUrl){// External URLs — open in new tab for external links\nif(externalUrl.startsWith(\"http\")){window.open(externalUrl,\"_blank\",\"noopener,noreferrer\");}else{// If someone forgets https://, add it\nwindow.open(`https://${externalUrl}`,\"_blank\",\"noopener,noreferrer\");}}};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                @import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');\n                \n                /* Reduced motion support */\n                @media (prefers-reduced-motion: reduce) {\n                    * { transition-duration: 0.01ms !important; }\n                }\n            `}),/*#__PURE__*/_jsxs(motion.button,{style:baseStyles,onClick:handleClick,disabled:disabled,whileHover:disabled?{}:getHoverStyles(),whileTap:disabled?{}:{scale:.97},whileFocus:focusRing,transition:{duration:.15,ease:[.2,.6,.2,1]},\"aria-disabled\":disabled,// For link variants, also support keyboard navigation\nrole:linkType!==\"none\"?\"link\":undefined,children:[label,showArrow&&linkType===\"url\"&&/*#__PURE__*/_jsx(External,{}),showArrow&&linkType!==\"url\"&&/*#__PURE__*/_jsx(Arrow,{})]})]});}// ============================================================================\n// PROPERTY CONTROLS (Concise labels for Framer sidebar)\n// ============================================================================\naddPropertyControls(Button,{label:{type:ControlType.String,title:\"Text\",defaultValue:\"Book a call\",placeholder:\"Button text\"},showArrow:{type:ControlType.Boolean,title:\"Arrow\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},variant:{type:ControlType.Enum,title:\"Style\",defaultValue:\"primary\",options:[\"primary\",\"secondary\",\"tertiary\",\"link\"],optionTitles:[\"Primary\",\"Secondary\",\"Tertiary\",\"Link\"],displaySegmentedControl:false},size:{type:ControlType.Enum,title:\"Size\",defaultValue:\"md\",options:[\"sm\",\"md\",\"lg\"],optionTitles:[\"Small\",\"Medium\",\"Large\"],displaySegmentedControl:true},background:{type:ControlType.Enum,title:\"On\",defaultValue:\"light\",options:[\"light\",\"navy\"],optionTitles:[\"Light bg\",\"Navy bg\"],displaySegmentedControl:true},linkType:{type:ControlType.Enum,title:\"Link\",defaultValue:\"none\",options:[\"none\",\"page\",\"url\"],optionTitles:[\"None\",\"Page\",\"URL\"],displaySegmentedControl:true},pagePath:{type:ControlType.String,title:\"Path\",defaultValue:\"\",placeholder:\"contact\",hidden:props=>props.linkType!==\"page\",description:\"e.g., 'contact' or 'services/mediation'\"},externalUrl:{type:ControlType.String,title:\"URL\",defaultValue:\"\",placeholder:\"calendly.com/...\",hidden:props=>props.linkType!==\"url\",description:\"Full URL with https://\"},fullWidth:{type:ControlType.Boolean,title:\"Width\",defaultValue:false,enabledTitle:\"Fill\",disabledTitle:\"Auto\"},disabled:{type:ControlType.Boolean,title:\"Disabled\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Button\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./JMButton.map"],"mappings":"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"}