{"version":3,"file":"HandleButton.BeLPUpnQ.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/iwFcYXwaQ9IMmyRdSRUJ/AZTR5mH1LCX4RVCKpFlz/HandleButton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useRef,useState}from\"react\";/**\n * HANDLE — Button\n * The one filled pill on the page, plus its ghost and on-ink variants.\n * Carries the magnetic pointer offset (0.16x horizontal, 0.28x vertical) that\n * every primary CTA in the template uses.\n *\n * IT RESIZES ITSELF AT TABLET AND PHONE, and that is deliberate rather than\n * left to Framer's breakpoints. A code component is ONE element across every\n * breakpoint — a buyer cannot give it a different height on phone the way they\n * can with a native frame. Without this, a 52px pill with 26px of padding and a\n * 15px label sits on a 390px screen at desktop proportions, which is the single\n * most common way a template looks unfinished on a phone.\n *\n * Scale is a percentage rather than three sets of numbers because height,\n * padding and label have to move TOGETHER. Shrink the height alone and the pill\n * turns into a slot; shrink the text alone and the padding swallows it. One\n * dial keeps the proportion the design was drawn at.\n *\n * FULL WIDTH ON PHONE is separate, because it is not a scale — it is a\n * different layout decision. A primary CTA that spans the column is right on a\n * phone and wrong on a desktop.\n *\n * The breakpoints match the project's own: 810 and 600. They are props, so a\n * buyer who changes Framer's breakpoints can match them here.\n *\n * COLOUR AND FACE fall back to the page theme. Every default below is\n * var(--handle-…, <today's literal>), so an untouched pill follows the theme\n * and the moment a buyer picks a colour their literal wins outright.\n *\n * SHAPE — radius, the label/icon gap and the icon's own size — used to be\n * numbers buried in the render. They're controls now (`radius`, `iconGap`,\n * `iconSize`) so a buyer can square the pill off, tighten the icon in, or\n * scale the arrow without touching code. Defaults reproduce the original\n * 100 / 0.6em / 12px exactly, so an untouched button is pixel-identical.\n *\n * SCROLL TO A SECTION ON THIS PAGE — `sectionTarget`. Framer's own Link\n * control supports a \"scroll to section\" mode (a JSON value carrying a page\n * id and a target node id), but that JSON cannot currently be written onto\n * this component's `link` prop through the Framer MCP plugin's XML tool — it\n * is rejected outright, the same way this project's other custom Array props\n * are. Rather than leave every CTA that should jump to a section on the same\n * page dead (a bare `href=\"#\"`, which does nothing but jump to the top),\n * `sectionTarget` gives an alternative, code-owned path to the same result:\n * a plain layer-name string, resolved and smooth-scrolled to on click,\n * exactly like `HandleNavLinks` and `HandleMobileMenu` already do for the\n * nav bar and its mobile menu. When `sectionTarget` is set it takes over the\n * click entirely (`preventDefault`, then scroll) and `link`/`newTab` are\n * ignored; when it is left blank, this component behaves exactly as before —\n * a normal link, or an inert `#` if none is set.\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function HandleButton(props){const{label,link,newTab,sectionTarget,variant,size,arrow,magnetic,fill,fillHover,textColor,borderColor,font,radius,iconGap,iconSize,responsive,tabletAt,phoneAt,tabletScale,phoneScale,fullWidthOnPhone,style}=props;const ref=useRef(null);const[hover,setHover]=useState(false);const[offset,setOffset]=useState({x:0,y:0});const onCanvas=RenderTarget.current()===RenderTarget.canvas;// \"desktop\" | \"tablet\" | \"phone\". Read from the viewport, not from Framer's\n// breakpoint, because a code component has no access to which breakpoint it\n// is being rendered inside.\nconst[screen,setScreen]=useState(\"desktop\");useEffect(()=>{if(!responsive||typeof window===\"undefined\")return;const read=()=>{const w=window.innerWidth;setScreen(w<=phoneAt?\"phone\":w<=tabletAt?\"tablet\":\"desktop\");};read();window.addEventListener(\"resize\",read);return()=>window.removeEventListener(\"resize\",read);},[responsive,tabletAt,phoneAt]);const scale=!responsive||screen===\"desktop\"?1:screen===\"tablet\"?tabletScale/100:phoneScale/100;const isSolid=variant===\"solid\";const height=Math.round((size===\"small\"?42:52)*scale);const padding=Math.round((size===\"small\"?20:26)*scale);// The small variant has always rendered one step below the regular label\n// size. Keep that relationship whatever size the Font control is set to.\nconst baseFontSize=typeof font?.fontSize===\"number\"?font.fontSize:15;const fontSize=Math.round((size===\"small\"?baseFontSize-1:baseFontSize)*scale*10)/10;const stretched=responsive&&fullWidthOnPhone&&screen===\"phone\";const onMove=e=>{// magnetism is a pointer affordance; a finger has no hover, and the\n// offset would just fight the tap\nif(!magnetic||onCanvas||screen===\"phone\")return;const r=e.currentTarget.getBoundingClientRect();setOffset({x:(e.clientX-r.left-r.width/2)*.16,y:(e.clientY-r.top-r.height/2)*.28});};// See \"SCROLL TO A SECTION ON THIS PAGE\" above. Same forgiving\n// layer-name resolution HandleNavLinks/HandleMobileMenu use: exact\n// data-framer-name match first, then a normalised comparison, so a\n// target that no longer resolves is skipped rather than throwing.\nconst hasSectionTarget=typeof sectionTarget===\"string\"&&sectionTarget.trim().length>0;const onClick=e=>{if(!hasSectionTarget)return;if(onCanvas||typeof document===\"undefined\"||typeof window===\"undefined\")return;e.preventDefault();const target=sectionTarget.trim();const escape=v=>typeof window!==\"undefined\"&&window.CSS?.escape?window.CSS.escape(v):v.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"');let el=document.querySelector(`[data-framer-name=\"${escape(target)}\"]`);if(!el){const normalize=v=>v.toLowerCase().replace(/[^a-z0-9]/g,\"\");const wanted=normalize(target);const named=document.querySelectorAll(\"[data-framer-name]\");for(const node of named){const name=node.getAttribute(\"data-framer-name\");if(name&&normalize(name)===wanted){el=node;break;}}}if(!el)return;const reduced=window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;const NAV_CLEARANCE=72;window.requestAnimationFrame(()=>{const top=el.getBoundingClientRect().top+window.scrollY-NAV_CLEARANCE;window.scrollTo({top,behavior:reduced?\"auto\":\"smooth\"});});};const background=isSolid?hover?fillHover:fill:\"transparent\";const color=isSolid?textColor:hover?fill:textColor;return /*#__PURE__*/_jsxs(\"a\",{ref:ref,href:hasSectionTarget?`#${sectionTarget.trim()}`:link||\"#\",target:!hasSectionTarget&&newTab?\"_blank\":undefined,rel:!hasSectionTarget&&newTab?\"noopener noreferrer\":undefined,onClick:onClick,onPointerMove:onMove,onPointerLeave:()=>{setOffset({x:0,y:0});setHover(false);},onPointerEnter:()=>setHover(true),style:{display:stretched?\"flex\":\"inline-flex\",width:stretched?\"100%\":undefined,alignItems:\"center\",justifyContent:\"center\",gap:`${iconGap}em`,height,padding:`0 ${padding}px`,borderRadius:radius,textDecoration:\"none\",whiteSpace:\"nowrap\",fontFamily:\"var(--handle-body, Inter, sans-serif)\",fontWeight:500,letterSpacing:\"-0.01em\",...font||{},fontSize,background:!isSolid&&hover?textColor:background,color:!isSolid&&hover?fill:color,border:isSolid?\"none\":`1px solid ${borderColor}`,transform:`translate(${offset.x.toFixed(2)}px, ${offset.y.toFixed(2)}px)`,transition:\"background .35s cubic-bezier(.22,.61,.28,1), color .35s cubic-bezier(.22,.61,.28,1), border-color .35s cubic-bezier(.22,.61,.28,1), transform .5s cubic-bezier(.16,1,.3,1)\",willChange:\"transform\",...style},children:[label,arrow!==\"none\"&&/*#__PURE__*/_jsx(\"svg\",{width:iconSize,height:iconSize,viewBox:\"0 0 12 12\",fill:\"none\",\"aria-hidden\":\"true\",style:{transform:hover?arrow===\"diagonal\"?\"translate(3px,-3px)\":arrow===\"down\"?\"translateY(3px)\":\"translateX(4px)\":\"none\",transition:\"transform .45s cubic-bezier(.16,1,.3,1)\"},children:/*#__PURE__*/_jsx(\"path\",{d:arrow===\"diagonal\"?\"M1 11 11 1M4 1h7v7\":arrow===\"down\"?\"M6 1v10M2 7l4 4 4-4\":\"M1 6h10M7 2l4 4-4 4\",stroke:\"currentColor\",strokeWidth:\"1.2\"})})]});}HandleButton.defaultProps={label:\"Work With Me\",variant:\"solid\",size:\"regular\",arrow:\"none\",magnetic:true,newTab:false,sectionTarget:\"\",fill:\"var(--handle-ink, #111111)\",fillHover:\"var(--handle-accent-hi, #3A3A36)\",textColor:\"var(--handle-ivory, #F5F3EE)\",borderColor:\"var(--handle-rule, rgba(17,17,17,0.13))\",radius:100,iconGap:.6,iconSize:12,responsive:true,tabletAt:810,phoneAt:600,tabletScale:94,phoneScale:88,fullWidthOnPhone:false};addPropertyControls(HandleButton,{label:{type:ControlType.String,title:\"Label\"},link:{type:ControlType.Link,title:\"Link\",description:\"Ignored when a Section target below is set.\"},sectionTarget:{type:ControlType.String,title:\"Section target\",placeholder:\"SectionContact\",description:\"Optional. The LAYER NAME of a section on this page — set this to smooth-scroll there on click instead of using Link above.\"},newTab:{type:ControlType.Boolean,title:\"Target\",enabledTitle:\"New tab\",disabledTitle:\"Same tab\",hidden:p=>!!p.sectionTarget},variant:{type:ControlType.Enum,title:\"Variant\",options:[\"solid\",\"ghost\"],optionTitles:[\"Solid\",\"Ghost\"],displaySegmentedControl:true},size:{type:ControlType.Enum,title:\"Size\",options:[\"regular\",\"small\"],optionTitles:[\"Regular\",\"Small\"],displaySegmentedControl:true},arrow:{type:ControlType.Enum,title:\"Arrow\",options:[\"none\",\"right\",\"diagonal\",\"down\"],optionTitles:[\"None\",\"Right\",\"Diagonal\",\"Down\"]},iconSize:{type:ControlType.Number,title:\"Icon size\",min:8,max:24,step:1,unit:\"px\",hidden:p=>p.arrow===\"none\"},magnetic:{type:ControlType.Boolean,title:\"Magnetic\",enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Pointer only — it never runs on a phone.\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:15,variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:100,step:1,unit:\"px\",description:\"100 is a full pill. Lower it to square the button off.\"},iconGap:{type:ControlType.Number,title:\"Icon gap\",min:0,max:2,step:.05,unit:\"em\",description:\"Space between the label and the arrow.\",hidden:p=>p.arrow===\"none\"},responsive:{type:ControlType.Boolean,title:\"Responsive\",enabledTitle:\"Scale\",disabledTitle:\"Fixed\",description:\"Height, padding and label scale together at tablet and phone.\"},tabletScale:{type:ControlType.Number,title:\"Tablet\",min:60,max:100,step:1,unit:\"%\",hidden:p=>!p.responsive},phoneScale:{type:ControlType.Number,title:\"Phone\",min:60,max:100,step:1,unit:\"%\",hidden:p=>!p.responsive},fullWidthOnPhone:{type:ControlType.Boolean,title:\"Phone width\",enabledTitle:\"Full\",disabledTitle:\"Auto\",description:\"A primary CTA usually wants the whole column on a phone.\",hidden:p=>!p.responsive},tabletAt:{type:ControlType.Number,title:\"Tablet below\",min:600,max:1400,step:10,unit:\"px\",description:\"Match your Framer breakpoints if you change them.\",hidden:p=>!p.responsive},phoneAt:{type:ControlType.Number,title:\"Phone below\",min:320,max:900,step:10,unit:\"px\",hidden:p=>!p.responsive},fill:{type:ControlType.Color,title:\"Fill\"},fillHover:{type:ControlType.Color,title:\"Fill hover\"},textColor:{type:ControlType.Color,title:\"Label colour\"},borderColor:{type:ControlType.Color,title:\"Border\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HandleButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HandleButton.map"],"mappings":"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"}