{"version":3,"file":"WhatsAppChat.YFrMPO2w.mjs","names":["useState","useState"],"sources":["https:/framerusercontent.com/modules/YvVrS9RK0CwJY21dd0AW/Xx0aKQ8V0vXGDAL8V7mG/ScrollReveal.js","https:/framerusercontent.com/modules/4qmlqyD59HLDAYrahmuZ/yOOS6mdCiRtNWOsY250b/WhatsAppChat.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect,useState}from\"react\";// Le widget apparait une fois le hero passe.\n// 0.25 = quand il ne reste plus qu'un quart du hero a l'ecran.\nconst HERO_LEFT=.25;export function withScrollReveal(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[shown,setShown]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return;const compute=()=>{const vh=window.innerHeight||0;const hero=document.querySelector('[data-framer-name=\"Hero\"]');const past=hero?hero.getBoundingClientRect().bottom<=vh*HERO_LEFT:window.scrollY>vh*.8;setShown(past);};compute();window.addEventListener(\"scroll\",compute,{passive:true});window.addEventListener(\"resize\",compute);const id=setInterval(compute,250);return()=>{window.removeEventListener(\"scroll\",compute);window.removeEventListener(\"resize\",compute);clearInterval(id);};},[]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props,style:{...props.style,opacity:shown?1:0,pointerEvents:shown?\"auto\":\"none\",transition:\"opacity 0.35s ease\"}});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withScrollReveal\":{\"type\":\"reactHoc\",\"name\":\"withScrollReveal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollReveal.map","// Chat on WhatsApp component with customizable message, phone number and icon\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect}from\"react\";// Force un SVG collé à remplir son conteneur (supprime width/height d'origine)\nfunction normalizeSvg(svg){return svg.trim().replace(/<svg\\b([^>]*)>/i,(_match,attrs)=>{const cleaned=attrs.replace(/\\s(width|height)\\s*=\\s*(\"[^\"]*\"|'[^']*')/gi,\"\");return`<svg${cleaned} width=\"100%\" height=\"100%\">`;});}function WhatsAppIcon({size}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",style:{flexShrink:0},children:/*#__PURE__*/_jsx(\"path\",{d:\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893A11.821 11.821 0 0020.465 3.488\"})});}/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function WhatsAppChat(props){const{message,phoneNumber,bookingUrl=\"\",buttonText,backgroundColor,textColor,borderRadius,borderWidth=1,borderColor=\"#303131\",showIcon,iconOnly,iconType=\"whatsapp\",customImage,customSvg=\"\",size,font,responsive}=props;const[screenSize,setScreenSize]=useState(\"desktop\");useEffect(()=>{if(!responsive||typeof window===\"undefined\")return;const updateScreenSize=()=>{const width=window.innerWidth;if(width<768){setScreenSize(\"mobile\");}else if(width<1024){setScreenSize(\"tablet\");}else{setScreenSize(\"desktop\");}};updateScreenSize();window.addEventListener(\"resize\",updateScreenSize);return()=>window.removeEventListener(\"resize\",updateScreenSize);},[responsive]);const handleClick=()=>{if(typeof window!==\"undefined\"&&bookingUrl)return void window.open(bookingUrl,\"_blank\");if(typeof window!==\"undefined\"){const encodedMessage=encodeURIComponent(message);const cleanPhoneNumber=phoneNumber.replace(/[^\\d+]/g,\"\");const whatsappUrl=`https://wa.me/${cleanPhoneNumber}?text=${encodedMessage}`;window.open(whatsappUrl,\"_blank\");}};// Size configurations\nconst sizeConfig={small:{padding:\"10px 20px\",iconSize:20,gap:\"8px\",fontSize:\"16px\",iconOnlyPadding:\"10px\"},medium:{padding:\"14px 28px\",iconSize:24,gap:\"10px\",fontSize:\"18px\",iconOnlyPadding:\"14px\"},large:{padding:\"18px 32px\",iconSize:28,gap:\"12px\",fontSize:\"20px\",iconOnlyPadding:\"18px\"},\"x-large\":{padding:\"24px 40px\",iconSize:32,gap:\"14px\",fontSize:\"24px\",iconOnlyPadding:\"24px\"}};// Responsive size mapping\nconst getResponsiveSize=()=>{if(!responsive)return size;const responsiveMapping={mobile:{small:\"small\",medium:\"small\",large:\"medium\",\"x-large\":\"medium\"},tablet:{small:\"small\",medium:\"medium\",large:\"medium\",\"x-large\":\"large\"},desktop:{small:\"small\",medium:\"medium\",large:\"large\",\"x-large\":\"x-large\"}};return responsiveMapping[screenSize][size];};const currentSize=sizeConfig[getResponsiveSize()];const isFixedWidth=props?.style&&props.style.width===\"100%\";// Rendu de l'icône selon la source choisie\nconst renderIcon=()=>{const iconSize=currentSize.iconSize;const boxStyle={width:iconSize,height:iconSize,flexShrink:0};if(iconType===\"image\"&&customImage?.src){return /*#__PURE__*/_jsx(\"img\",{src:customImage.src,srcSet:customImage.srcSet,alt:\"\",\"aria-hidden\":\"true\",style:{...boxStyle,display:\"block\",objectFit:\"contain\"}});}if(iconType===\"svg\"&&/^\\s*<svg\\b/i.test(customSvg)){return /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{...boxStyle,display:\"flex\"},dangerouslySetInnerHTML:{__html:normalizeSvg(customSvg)}});}// Par défaut (ou si aucune image / SVG valide n'est fourni)\nreturn /*#__PURE__*/_jsx(WhatsAppIcon,{size:iconSize});};return /*#__PURE__*/_jsxs(\"button\",{onClick:handleClick,\"aria-label\":\"Contacter sur WhatsApp\",style:{...props.style,...isFixedWidth?{...props?.style}:{minWidth:\"max-content\"},backgroundColor,color:textColor,borderRadius,border:borderWidth>0?`${borderWidth}px solid ${borderColor}`:\"none\",boxSizing:\"border-box\",padding:iconOnly?currentSize.iconOnlyPadding:currentSize.padding,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:iconOnly?\"center\":\"flex-start\",gap:showIcon&&!iconOnly?currentSize.gap:\"0px\",transition:\"all 0.2s ease\",boxShadow:\"0 2px 8px rgba(0,0,0,0.1)\",...font,fontSize:currentSize.fontSize},onMouseEnter:e=>{e.currentTarget.style.opacity=\"0.9\";},onMouseLeave:e=>{e.currentTarget.style.opacity=\"1\";},onMouseDown:e=>{e.currentTarget.style.transform=\"translateY(0px)\";},onMouseUp:e=>{e.currentTarget.style.transform=\"translateY(-1px)\";},children:[(showIcon||iconOnly)&&renderIcon(),!iconOnly&&/*#__PURE__*/_jsx(\"span\",{children:buttonText})]});}const iconHidden=props=>!props.showIcon&&!props.iconOnly;addPropertyControls(WhatsAppChat,{buttonText:{type:ControlType.String,title:\"Button Text\",defaultValue:\"Chat on WhatsApp\",hidden:({iconOnly})=>iconOnly},size:{type:ControlType.Enum,title:\"Size\",options:[\"small\",\"medium\",\"large\",\"x-large\"],optionTitles:[\"Small\",\"Medium\",\"Large\",\"X-Large\"],defaultValue:\"medium\",displaySegmentedControl:true},responsive:{type:ControlType.Boolean,title:\"Responsive\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},phoneNumber:{type:ControlType.String,title:\"Phone Number\",defaultValue:\"+1234567890\",placeholder:\"+1234567890\"},bookingUrl:{type:ControlType.String,title:\"Booking URL\",defaultValue:\"https://cal.com/kroma-xwzcmq/30min\",placeholder:\"https://cal.com/...\"},message:{type:ControlType.String,title:\"Pre-filled Message\",defaultValue:\"Hello! I'm interested in your services.\",displayTextArea:true},iconOnly:{type:ControlType.Boolean,title:\"Icon Only\",defaultValue:false,enabledTitle:\"Icon Only\",disabledTitle:\"With Text\"},showIcon:{type:ControlType.Boolean,title:\"Show Icon\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden:({iconOnly})=>iconOnly},iconType:{type:ControlType.Enum,title:\"Icon\",options:[\"whatsapp\",\"image\",\"svg\"],optionTitles:[\"WhatsApp\",\"Image\",\"SVG\"],defaultValue:\"whatsapp\",displaySegmentedControl:true,hidden:iconHidden},customImage:{type:ControlType.ResponsiveImage,title:\"Icon Image\",hidden:props=>iconHidden(props)||props.iconType!==\"image\"},customSvg:{type:ControlType.String,title:\"Icon SVG\",defaultValue:\"\",placeholder:'<svg viewBox=\"0 0 24 24\">…</svg>',displayTextArea:true,hidden:props=>iconHidden(props)||props.iconType!==\"svg\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"#1A1B1B\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#FFFFFF\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:100,min:0,max:100,unit:\"px\"},borderWidth:{type:ControlType.Number,title:\"Border Width\",defaultValue:1,min:0,max:8,step:.5,unit:\"px\"},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#303131\",hidden:({borderWidth})=>borderWidth===0},font:{type:ControlType.Font,title:\"Font\",defaultValue:{variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"},controls:\"basic\",defaultFontType:\"sans-serif\",hidden:({iconOnly})=>iconOnly}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"WhatsAppChat\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WhatsAppChat.map"],"mappings":"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"}