{"version":3,"file":"FloatingContacts.BPLXhRhg.mjs","names":["useRef","useState","useMemo","useCallback","React","c"],"sources":["https:/framerusercontent.com/modules/1wOYIgoQMIeX9cRswiLs/QrTQgEico9cX8JnZWezl/FloatingContacts.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";import React,{useState,useRef,useEffect,useCallback,useMemo}from\"react\";// ─── Font (system font stack — no external dependency) ─────────────────\nconst DEFAULT_FONT=\"-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', system-ui, sans-serif\";// ─── Icon SVGs ─────────────────────────────────────────────────────────\nconst ICONS={phone:(s,c)=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z\"})}),email:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"22,6 12,13 2,6\"})]}),whatsapp:(s,c)=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:c,stroke:\"none\",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 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-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 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.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 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413z\"})}),calendar:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"4\",width:\"18\",height:\"18\",rx:\"2\",ry:\"2\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"16\",y1:\"2\",x2:\"16\",y2:\"6\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"8\",y1:\"2\",x2:\"8\",y2:\"6\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"3\",y1:\"10\",x2:\"21\",y2:\"10\"})]}),map:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"10\",r:\"3\"})]}),chat:(s,c)=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"})}),link:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"})]}),instagram:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"2\",y:\"2\",width:\"20\",height:\"20\",rx:\"5\",ry:\"5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"17.5\",y1:\"6.5\",x2:\"17.51\",y2:\"6.5\"})]}),sms:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"8\",y1:\"9\",x2:\"16\",y2:\"9\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"8\",y1:\"13\",x2:\"14\",y2:\"13\"})]}),// Trigger icons\nplus:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2.5,strokeLinecap:\"round\",children:[/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"5\",x2:\"12\",y2:\"19\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"5\",y1:\"12\",x2:\"19\",y2:\"12\"})]}),headset:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:c,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M3 18v-6a9 9 0 0 1 18 0v6\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"})]}),dots:(s,c)=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:c,stroke:\"none\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"5\",r:\"2\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"2\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"19\",r:\"2\"})]})};const ACTION_ICON_KEYS=[\"phone\",\"email\",\"whatsapp\",\"calendar\",\"map\",\"chat\",\"link\",\"instagram\",\"sms\"];const ACTION_ICON_TITLES=[\"Phone\",\"Email\",\"WhatsApp\",\"Calendar / Booking\",\"Map / Location\",\"Chat / Messenger\",\"Link / URL\",\"Instagram\",\"SMS\"];const TRIGGER_ICON_KEYS=[\"chat\",\"plus\",\"phone\",\"headset\",\"dots\"];const TRIGGER_ICON_TITLES=[\"Chat\",\"Plus\",\"Phone\",\"Headset\",\"Dots\"];const presets={midnight:{fabBg:\"linear-gradient(135deg, #3b82f6 0%, #6366f1 100%)\",fabIcon:\"#ffffff\",fabShadow:\"0 6px 24px rgba(59, 130, 246, 0.4)\",panelBg:\"#0c0c14\",itemHoverBg:\"rgba(255, 255, 255, 0.05)\",iconColor:\"#818cf8\",labelColor:\"#e8eaf0\",sublabelColor:\"rgba(255, 255, 255, 0.4)\",dividerColor:\"rgba(255, 255, 255, 0.05)\",headerColor:\"rgba(255, 255, 255, 0.35)\",panelBorder:\"1px solid rgba(255, 255, 255, 0.06)\",panelShadow:\"0 24px 64px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255,255,255,0.04)\"},dark:{fabBg:\"linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%)\",fabIcon:\"#ffffff\",fabShadow:\"0 6px 24px rgba(99, 102, 241, 0.45)\",panelBg:\"#1a1a2e\",itemHoverBg:\"rgba(255, 255, 255, 0.06)\",iconColor:\"#a5b4fc\",labelColor:\"#f1f5f9\",sublabelColor:\"rgba(255, 255, 255, 0.45)\",dividerColor:\"rgba(255, 255, 255, 0.06)\",headerColor:\"rgba(255, 255, 255, 0.4)\",panelBorder:\"1px solid rgba(255, 255, 255, 0.08)\",panelShadow:\"0 20px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.05)\"},light:{fabBg:\"linear-gradient(135deg, #6366f1 0%, #818cf8 100%)\",fabIcon:\"#ffffff\",fabShadow:\"0 6px 24px rgba(99, 102, 241, 0.35)\",panelBg:\"#ffffff\",itemHoverBg:\"rgba(99, 102, 241, 0.04)\",iconColor:\"#6366f1\",labelColor:\"#0f172a\",sublabelColor:\"#64748b\",dividerColor:\"rgba(0, 0, 0, 0.07)\",headerColor:\"#64748b\",panelBorder:\"1px solid rgba(0, 0, 0, 0.1)\",panelShadow:\"0 20px 60px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(0,0,0,0.05)\"},ocean:{fabBg:\"linear-gradient(135deg, #0ea5e9 0%, #06b6d4 100%)\",fabIcon:\"#ffffff\",fabShadow:\"0 6px 24px rgba(14, 165, 233, 0.4)\",panelBg:\"#0b1929\",itemHoverBg:\"rgba(14, 165, 233, 0.08)\",iconColor:\"#38bdf8\",labelColor:\"#e0f2fe\",sublabelColor:\"rgba(186, 230, 253, 0.5)\",dividerColor:\"rgba(56, 189, 248, 0.08)\",headerColor:\"rgba(186, 230, 253, 0.45)\",panelBorder:\"1px solid rgba(56, 189, 248, 0.1)\",panelShadow:\"0 20px 60px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(56,189,248,0.06)\"},glass:{fabBg:\"linear-gradient(135deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.08) 100%)\",fabIcon:\"#ffffff\",fabShadow:\"0 6px 24px rgba(0, 0, 0, 0.25)\",fabPulseColor:\"rgba(255, 255, 255, 0.4)\",panelBg:\"rgba(255, 255, 255, 0.08)\",itemHoverBg:\"rgba(255, 255, 255, 0.08)\",iconColor:\"#ffffff\",labelColor:\"#ffffff\",sublabelColor:\"rgba(255, 255, 255, 0.5)\",dividerColor:\"rgba(255, 255, 255, 0.08)\",headerColor:\"rgba(255, 255, 255, 0.45)\",panelBorder:\"1px solid rgba(255, 255, 255, 0.12)\",panelShadow:\"0 20px 60px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255,255,255,0.08)\"},custom:{fabBg:\"#6366f1\",fabIcon:\"#ffffff\",fabShadow:\"0 6px 24px rgba(99, 102, 241, 0.45)\",panelBg:\"#1a1a2e\",itemHoverBg:\"rgba(255, 255, 255, 0.06)\",iconColor:\"#a5b4fc\",labelColor:\"#f1f5f9\",sublabelColor:\"rgba(255, 255, 255, 0.45)\",dividerColor:\"rgba(255, 255, 255, 0.06)\",headerColor:\"rgba(255, 255, 255, 0.4)\",panelBorder:\"1px solid rgba(255, 255, 255, 0.08)\",panelShadow:\"0 20px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.05)\"}};const POSITION_CONFIGS={\"bottom-right\":{containerStyle:{position:\"fixed\",bottom:24,right:24,top:\"auto\",left:\"auto\"},panelOrigin:\"bottom right\",panelOffset:{bottom:\"calc(100% + 12px)\",right:0}},\"bottom-left\":{containerStyle:{position:\"fixed\",bottom:24,left:24,top:\"auto\",right:\"auto\"},panelOrigin:\"bottom left\",panelOffset:{bottom:\"calc(100% + 12px)\",left:0}},\"top-right\":{containerStyle:{position:\"fixed\",top:24,right:24,bottom:\"auto\",left:\"auto\"},panelOrigin:\"top right\",panelOffset:{top:\"calc(100% + 12px)\",right:0}},\"top-left\":{containerStyle:{position:\"fixed\",top:24,left:24,bottom:\"auto\",right:\"auto\"},panelOrigin:\"top left\",panelOffset:{top:\"calc(100% + 12px)\",left:0}}};const DEFAULT_ITEMS=[{icon:\"phone\",label:\"Call Us\",sublabel:\"+1 (555) 123–4567\",url:\"tel:+15551234567\"},{icon:\"email\",label:\"Email\",sublabel:\"hello@example.com\",url:\"mailto:hello@example.com\"},{icon:\"whatsapp\",label:\"WhatsApp\",sublabel:\"Chat on WhatsApp\",url:\"https://wa.me/15551234567\"},{icon:\"calendar\",label:\"Book a Call\",sublabel:\"Schedule a meeting\",url:\"https://calendly.com\"}];// ─── Animation Presets ─────────────────────────────────────────────────\nconst SPRING_CONFIGS={spring:{type:\"spring\",stiffness:400,damping:28,mass:.8},smooth:{type:\"tween\",duration:.25,ease:[.4,0,.2,1]},bounce:{type:\"spring\",stiffness:500,damping:20,mass:.6}};// ─── Pulse Keyframes CSS (scoped per-instance) ────────────────────────\n// Rendered as a <style> tag inside the component's own subtree\n// to avoid global DOM mutations.\nlet fcInstanceCounter=0;function useScopedId(){const idRef=useRef(\"\");if(!idRef.current){idRef.current=`fc-${++fcInstanceCounter}`;}return idRef.current;}function buildPulseCSS(scopeId){return`\n@keyframes ${scopeId}-pulse {\n    0% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.5); }\n    70% { box-shadow: 0 0 0 12px rgba(99, 102, 241, 0); }\n    100% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0); }\n}\n@keyframes ${scopeId}-pulse-white {\n    0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.15); }\n    70% { box-shadow: 0 0 0 10px rgba(255, 255, 255, 0); }\n    100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }\n}\n`;}const ContactRow=/*#__PURE__*/React.memo(function ContactRow({item,isHovered,onHoverStart,onHoverEnd,onItemClick,iconColor,labelColor,sublabelColor,itemHoverBg,labelFontFamily,labelFontWeight,sublabelFontFamily,sublabelFontWeight}){const iconKey=item.icon||\"link\";const iconRenderer=ICONS[iconKey]||ICONS.link;// Per-item icon color — WhatsApp gets its brand green, others use theme\nconst itemIconBg=iconKey===\"whatsapp\"?\"rgba(37, 211, 102, 0.12)\":`${iconColor}12`;const itemIconColor=iconKey===\"whatsapp\"?\"#25D366\":iconColor;return /*#__PURE__*/_jsxs(motion.div,{initial:false,animate:{backgroundColor:isHovered?itemHoverBg:\"rgba(0,0,0,0)\"},transition:{duration:.15},onHoverStart:onHoverStart,onHoverEnd:onHoverEnd,onClick:onItemClick,style:{display:\"flex\",alignItems:\"center\",gap:12,padding:\"10px 16px\",cursor:\"pointer\",textDecoration:\"none\",userSelect:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:40,height:40,borderRadius:12,background:itemIconBg,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0},children:iconRenderer(20,itemIconColor)}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:labelFontFamily,fontWeight:labelFontWeight||600,fontSize:14,color:labelColor,lineHeight:1.3,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\"},children:item.label||\"Contact\"}),item.sublabel&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:sublabelFontFamily,fontWeight:sublabelFontWeight||400,fontSize:12,color:sublabelColor,lineHeight:1.3,marginTop:1,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\"},children:item.sublabel})]}),/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,opacity:isHovered?1:.3,transform:isHovered?\"translateX(2px)\":\"translateX(0)\",transition:\"opacity 0.15s ease, transform 0.15s ease\"},children:/*#__PURE__*/_jsx(\"svg\",{width:14,height:14,viewBox:\"0 0 24 24\",fill:\"none\",stroke:labelColor,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"polyline\",{points:\"9 18 15 12 9 6\"})})})]});});// ─── Main Component ────────────────────────────────────────────────────\n/**\n * @framerDisableUnlink\n * @framerIntrinsicWidth 64\n * @framerIntrinsicHeight 64\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function FloatingContacts(props){const{items=DEFAULT_ITEMS,preset=\"midnight\",position=\"bottom-right\",trigger={},panel={},animationStyle=\"spring\",colors={},closeOnOutsideClick=true,headerFont,labelFont,sublabelFont,style}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const isStatic=useIsStaticRenderer();const scopeId=useScopedId();// ── Theme ───────────────────────────────────────────────────────\nconst theme=presets[preset]||presets.midnight;const isCustom=preset===\"custom\";// ── Trigger ─────────────────────────────────────────────────────\nconst fabSize=trigger.size??60;const fabShape=trigger.shape??\"circle\";const fabIcon=trigger.icon??\"chat\";const fabPulse=trigger.pulse??true;// ── Panel ───────────────────────────────────────────────────────\nconst panelWidth=panel.width??280;const panelRadius=panel.borderRadius??16;const showHeader=panel.showHeader??true;const headerText=panel.headerText??\"Get in touch\";// ── Animation ───────────────────────────────────────────────────\nconst springConfig=SPRING_CONFIGS[animationStyle]||SPRING_CONFIGS.spring;// ── Colors ──────────────────────────────────────────────────────\nconst fabBgColor=isCustom&&colors.fabBg?colors.fabBg:theme.fabBg;const fabIconColor=isCustom&&colors.fabIcon?colors.fabIcon:theme.fabIcon;const panelBgColor=isCustom&&colors.panelBg?colors.panelBg:theme.panelBg;const iconColor=isCustom&&colors.iconColor?colors.iconColor:theme.iconColor;const labelColor=isCustom&&colors.labelColor?colors.labelColor:theme.labelColor;const sublabelColor=isCustom&&colors.sublabelColor?colors.sublabelColor:theme.sublabelColor;const headerColor=isCustom&&colors.headerColor?colors.headerColor:theme.headerColor;const dividerColor=isCustom&&colors.dividerColor?colors.dividerColor:theme.dividerColor;const itemHoverBg=isCustom&&colors.itemHoverBg?colors.itemHoverBg:theme.itemHoverBg;// ── Fonts ───────────────────────────────────────────────────────\nconst headerFontFamily=headerFont?.fontFamily?`${headerFont.fontFamily}, ${DEFAULT_FONT}`:DEFAULT_FONT;const headerFontWeight=headerFont?.fontWeight||600;const labelFontFamily=labelFont?.fontFamily?`${labelFont.fontFamily}, ${DEFAULT_FONT}`:DEFAULT_FONT;const labelFontWeight=labelFont?.fontWeight||500;const sublabelFontFamily=sublabelFont?.fontFamily?`${sublabelFont.fontFamily}, ${DEFAULT_FONT}`:DEFAULT_FONT;const sublabelFontWeight=sublabelFont?.fontWeight||400;// ── State ───────────────────────────────────────────────────────\nconst[isOpen,setIsOpen]=useState(false);const[hoveredIndex,setHoveredIndex]=useState(null);const containerRef=useRef(null);// ── Items ───────────────────────────────────────────────────────\nconst safeItems=useMemo(()=>{const valid=items&&items.length>0?items:DEFAULT_ITEMS;return valid.slice(0,8);},[items]);// ── Position ────────────────────────────────────────────────────\nconst isSticky=position!==\"canvas\";const posConfig=isSticky?POSITION_CONFIGS[position]:null;// ── Click outside ───────────────────────────────────────────────\nuseEffect(()=>{if(!isOpen||isCanvas||!closeOnOutsideClick)return;const handleClickOutside=e=>{if(containerRef.current&&!containerRef.current.contains(e.target)){setIsOpen(false);}};const handleEscape=e=>{if(e.key===\"Escape\")setIsOpen(false);};document.addEventListener(\"mousedown\",handleClickOutside);document.addEventListener(\"keydown\",handleEscape);return()=>{document.removeEventListener(\"mousedown\",handleClickOutside);document.removeEventListener(\"keydown\",handleEscape);};},[isOpen,isCanvas,closeOnOutsideClick]);// ── Item click handler ──────────────────────────────────────────\nconst handleItemClick=useCallback(item=>{if(item.url&&item.url.trim()!==\"\"){const url=item.url.trim();if(url.startsWith(\"tel:\")||url.startsWith(\"mailto:\")||url.startsWith(\"sms:\")){window.location.href=url;}else{window.open(url,\"_blank\",\"noopener,noreferrer\");}}},[]);// ── Panel direction (above or below the FAB) ────────────────────\nconst panelAbove=position===\"bottom-right\"||position===\"bottom-left\"||position===\"canvas\";const panelOrigin=posConfig?.panelOrigin||\"bottom right\";// ── FAB styles ──────────────────────────────────────────────────\nconst fabBorderRadius=fabShape===\"circle\"?\"50%\":`${fabSize*.25}px`;const fabStyle={width:fabSize,height:fabSize,borderRadius:fabBorderRadius,background:fabBgColor,border:\"none\",outline:\"none\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",boxShadow:theme.fabShadow,padding:0,position:\"relative\",zIndex:10,flexShrink:0,animation:fabPulse&&!isOpen&&!isStatic?theme.fabPulseColor?`${scopeId}-pulse-white 2s infinite`:`${scopeId}-pulse 2s infinite`:\"none\"};// ── Glass backdrop for glass preset ──────────────────────────────\nconst isGlass=preset===\"glass\";const panelStyle={position:\"absolute\",width:panelWidth,borderRadius:panelRadius,background:panelBgColor,border:isCustom?`1px solid ${dividerColor}`:theme.panelBorder,boxShadow:theme.panelShadow,overflow:\"hidden\",transformOrigin:panelOrigin,...isGlass?{backdropFilter:\"blur(24px)\",WebkitBackdropFilter:\"blur(24px)\"}:{},...posConfig?.panelOffset||{},...position===\"canvas\"?{bottom:\"calc(100% + 12px)\",right:0}:{}};// ── Scoped pulse keyframes CSS ────────────────────────────────\nconst pulseStyleTag=fabPulse&&!isStatic?/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:buildPulseCSS(scopeId)}}):null;// ── Static / Canvas Preview ──────────────────────────────────────\n// useIsStaticRenderer() covers exports, thumbnails, and all non-interactive\n// rendering contexts — providing a clean, non-animated fallback.\nif(isCanvas||isStatic){return /*#__PURE__*/_jsxs(\"div\",{style:{...style||{},width:fabSize,height:fabSize,position:\"relative\",isolation:\"isolate\",zIndex:0},children:[pulseStyleTag,/*#__PURE__*/_jsx(\"div\",{style:fabStyle,children:ICONS[fabIcon]?.(fabSize*.4,fabIconColor)})]});}// ── Live Container Style ────────────────────────────────────────\nconst containerStyle=isSticky?{...posConfig?.containerStyle||{},width:fabSize,height:fabSize,isolation:\"isolate\",zIndex:9999}:{...style||{},position:\"relative\",width:fabSize,height:fabSize,isolation:\"isolate\",zIndex:0};// ── Live Render ─────────────────────────────────────────────────\nreturn /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:containerStyle,children:[pulseStyleTag,/*#__PURE__*/_jsx(AnimatePresence,{children:isOpen&&/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0,scale:.85,y:panelAbove?10:-10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.85,y:panelAbove?10:-10},transition:springConfig,style:panelStyle,children:[showHeader&&/*#__PURE__*/_jsx(\"div\",{style:{padding:\"14px 16px 8px\",fontFamily:headerFontFamily,fontWeight:headerFontWeight,fontSize:11,color:headerColor,textTransform:\"uppercase\",letterSpacing:\"0.08em\"},children:headerText}),showHeader&&/*#__PURE__*/_jsx(\"div\",{style:{height:1,background:dividerColor,margin:\"0 16px 4px\"}}),/*#__PURE__*/_jsx(\"div\",{style:{padding:\"4px 0 8px\"},children:safeItems.map((item,index)=>/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{...springConfig,delay:index*.04},children:/*#__PURE__*/_jsx(ContactRow,{item:item,index:index,isHovered:hoveredIndex===index,onHoverStart:()=>setHoveredIndex(index),onHoverEnd:()=>setHoveredIndex(null),onItemClick:()=>handleItemClick(item),iconColor:iconColor,labelColor:labelColor,sublabelColor:sublabelColor,itemHoverBg:itemHoverBg,labelFontFamily:labelFontFamily,labelFontWeight:labelFontWeight,sublabelFontFamily:sublabelFontFamily,sublabelFontWeight:sublabelFontWeight})}),index<safeItems.length-1&&/*#__PURE__*/_jsx(\"div\",{style:{height:1,background:dividerColor,margin:\"0 16px\"}})]},index))})]},\"panel\")}),/*#__PURE__*/_jsx(motion.button,{onClick:()=>setIsOpen(!isOpen),whileHover:{scale:1.08},whileTap:{scale:.94},transition:{type:\"spring\",stiffness:400,damping:22},style:fabStyle,\"aria-label\":isOpen?\"Close contact menu\":\"Open contact menu\",children:/*#__PURE__*/_jsx(AnimatePresence,{mode:\"wait\",initial:false,children:isOpen?/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,rotate:-90,scale:.5},animate:{opacity:1,rotate:0,scale:1},exit:{opacity:0,rotate:90,scale:.5},transition:{duration:.15},style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsxs(\"svg\",{width:fabSize*.36,height:fabSize*.36,viewBox:\"0 0 24 24\",fill:\"none\",stroke:fabIconColor,strokeWidth:2.5,strokeLinecap:\"round\",children:[/*#__PURE__*/_jsx(\"line\",{x1:\"18\",y1:\"6\",x2:\"6\",y2:\"18\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"6\",y1:\"6\",x2:\"18\",y2:\"18\"})]})},\"close\"):/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,rotate:90,scale:.5},animate:{opacity:1,rotate:0,scale:1},exit:{opacity:0,rotate:-90,scale:.5},transition:{duration:.15},style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:ICONS[fabIcon]?.(fabSize*.4,fabIconColor)},\"icon\")})})]});}// ─── Default Props ─────────────────────────────────────────────────────\nFloatingContacts.defaultProps={items:DEFAULT_ITEMS,preset:\"midnight\",position:\"bottom-right\",trigger:{size:60,shape:\"circle\",icon:\"chat\",pulse:true},panel:{width:280,borderRadius:16,showHeader:true,headerText:\"Get in touch\"},animationStyle:\"spring\",closeOnOutsideClick:true};// ─── Property Controls ─────────────────────────────────────────────────\naddPropertyControls(FloatingContacts,{// ═══════════════════════════════════════════════════════════════════\n// CONTACT ITEMS\n// ═══════════════════════════════════════════════════════════════════\nitems:{type:ControlType.Array,title:\"Contacts\",control:{type:ControlType.Object,controls:{icon:{type:ControlType.Enum,title:\"Icon\",options:ACTION_ICON_KEYS,optionTitles:ACTION_ICON_TITLES,defaultValue:\"phone\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"Contact\"},sublabel:{type:ControlType.String,title:\"Sublabel\",defaultValue:\"\",description:\"Secondary text below the label (e.g. phone number, email)\"},url:{type:ControlType.Link,title:\"URL / Action\",description:\"Supports tel:, mailto:, sms:, or any web URL\"}}},defaultValue:DEFAULT_ITEMS,maxCount:8,description:\" \"},// ═══════════════════════════════════════════════════════════════════\n// THEME & POSITION\n// ═══════════════════════════════════════════════════════════════════\npreset:{type:ControlType.Enum,title:\"Theme\",options:[\"midnight\",\"dark\",\"light\",\"ocean\",\"glass\",\"custom\"],optionTitles:[\"Midnight\",\"Dark\",\"Light\",\"Ocean\",\"Glass\",\"Custom\"],defaultValue:\"midnight\"},position:{type:ControlType.Enum,title:\"Position\",options:[\"canvas\",\"bottom-right\",\"bottom-left\",\"top-right\",\"top-left\"],optionTitles:[\"Canvas (inline)\",\"Bottom Right\",\"Bottom Left\",\"Top Right\",\"Top Left\"],defaultValue:\"bottom-right\",description:\"Sticky positions fix the button to the viewport edge. Canvas keeps it inline.\"},// ═══════════════════════════════════════════════════════════════════\n// TRIGGER BUTTON (Collapsible)\n// ═══════════════════════════════════════════════════════════════════\ntrigger:{type:ControlType.Object,title:\"Trigger Button\",icon:\"interact\",controls:{size:{type:ControlType.Number,title:\"Size\",min:40,max:80,defaultValue:60,unit:\"px\"},shape:{type:ControlType.Enum,title:\"Shape\",options:[\"circle\",\"rounded-square\"],optionTitles:[\"Circle\",\"Rounded\"],defaultValue:\"circle\",displaySegmentedControl:true},icon:{type:ControlType.Enum,title:\"Icon\",options:TRIGGER_ICON_KEYS,optionTitles:TRIGGER_ICON_TITLES,defaultValue:\"chat\"},pulse:{type:ControlType.Boolean,title:\"Pulse Animation\",defaultValue:true,description:\"Attention-grabbing pulse ring when the menu is closed\"}}},// ═══════════════════════════════════════════════════════════════════\n// PANEL STYLE (Collapsible)\n// ═══════════════════════════════════════════════════════════════════\npanel:{type:ControlType.Object,title:\"Panel\",icon:\"object\",controls:{width:{type:ControlType.Number,title:\"Width\",min:200,max:400,defaultValue:280,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:32,defaultValue:16,unit:\"px\"},showHeader:{type:ControlType.Boolean,title:\"Show Header\",defaultValue:true},headerText:{type:ControlType.String,title:\"Header Text\",defaultValue:\"Get in touch\",hidden:props=>!props.panel?.showHeader}}},// ═══════════════════════════════════════════════════════════════════\n// ANIMATION STYLE (Standalone — single property, no group needed)\n// ═══════════════════════════════════════════════════════════════════\nanimationStyle:{type:ControlType.Enum,title:\"Animation\",options:[\"spring\",\"smooth\",\"bounce\"],optionTitles:[\"Spring\",\"Smooth\",\"Bounce\"],defaultValue:\"spring\",description:\" \"},// ═══════════════════════════════════════════════════════════════════\n// CUSTOM COLORS (Collapsible, only when theme = custom)\n// ═══════════════════════════════════════════════════════════════════\ncolors:{type:ControlType.Object,title:\"Custom Colors\",icon:\"color\",controls:{fabBg:{type:ControlType.Color,title:\"Button BG\",defaultValue:\"#6366f1\"},fabIcon:{type:ControlType.Color,title:\"Button Icon\",defaultValue:\"#ffffff\"},panelBg:{type:ControlType.Color,title:\"Panel BG\",defaultValue:\"#1a1a2e\"},iconColor:{type:ControlType.Color,title:\"Action Icons\",defaultValue:\"#a5b4fc\"},labelColor:{type:ControlType.Color,title:\"Label Text\",defaultValue:\"#f1f5f9\"},sublabelColor:{type:ControlType.Color,title:\"Sublabel Text\",defaultValue:\"rgba(255,255,255,0.45)\"},headerColor:{type:ControlType.Color,title:\"Header Text\",defaultValue:\"rgba(255,255,255,0.4)\"},dividerColor:{type:ControlType.Color,title:\"Dividers\",defaultValue:\"rgba(255,255,255,0.06)\"},itemHoverBg:{type:ControlType.Color,title:\"Row Hover BG\",defaultValue:\"rgba(255,255,255,0.06)\"}},hidden:props=>props.preset!==\"custom\"},// ═══════════════════════════════════════════════════════════════════\n// BEHAVIOR\n// ═══════════════════════════════════════════════════════════════════\ncloseOnOutsideClick:{type:ControlType.Boolean,title:\"Close on Outside Click\",defaultValue:true},// ═══════════════════════════════════════════════════════════════════\n// FONTS\n// ═══════════════════════════════════════════════════════════════════\nheaderFont:{type:ControlType.Font,title:\"Header Font\",controls:\"basic\"},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"basic\"},sublabelFont:{type:ControlType.Font,title:\"Sublabel Font\",controls:\"basic\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FloatingContacts\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"64\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 64\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FloatingContacts.map"],"mappings":"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"}