{"version":3,"file":"FeatureLabelTooltip.DQAkXYig.mjs","names":["FeatureLabelTooltipInternal","useId","useRef","useState","Tokens","useCallback"],"sources":["https:/framerusercontent.com/modules/Svub7Wzmv3DQD5SU71Vn/KQqcTprYi95qCxKav17Y/FeatureLabelTooltip.js"],"sourcesContent":["/**\n * FeatureLabelTooltip - Inline feature label paired with an info-icon trigger\n * that reveals a hover/focus tooltip with a description and an optional\n * \"Learn more\" link.\n *\n * Used inside comparison/pricing tables where a feature row needs to expose\n * additional context without taking up extra vertical space. The trigger uses\n * the standard `info-circle` glyph so it reads as \"more info\" across the\n * design system, and the tooltip is rendered through a React portal into\n * `document.body` so it escapes ancestor `overflow: hidden`, `transform`,\n * `filter`, and `backdrop-filter` clipping (any of which create a containing\n * block that would otherwise capture `position: fixed`).\n *\n * The component manages its own show/hide timers so the user can move the\n * cursor from the trigger into the tooltip surface to click the \"Learn more\"\n * link without it disappearing on them.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 40\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{forwardRef,useCallback,useEffect,useId,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";// 2. Framer Motion\nimport{motion,AnimatePresence}from\"framer-motion\";// 3. Framer API\nimport{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{isFramerDesignEnvironment}from\"https://framerusercontent.com/modules/fLnoI6ZB9Br9mhUvxmjW/tWYaqzIJ6baBNTssXrK2/useInViewport.js\";// 4. Design system utilities\nimport Tokens,{useEffectiveBreakpoint,useReducedMotion}from\"https://framerusercontent.com/modules/trqsvmaimtqmRw7lebtr/E4VmuznAXf2PsHoCR0KU/index.js\";// 5. Link helpers\nimport{getLinkUrl,useSmartLinkProps}from\"https://framerusercontent.com/modules/CLxohi7brohCdVDhv4L6/mAvDSabpzPuYydumkiMo/linkHelpers.js\";// 6. Local utilities\nimport{getIcon}from\"https://framerusercontent.com/modules/rVAtXnu2wqjK6JCjDYrr/JWIUKo5FwvBU8MTFb2E1/icons.js\";import{PLACEHOLDER}from\"https://framerusercontent.com/modules/0ETmfateJt5ereSJxi2b/0lyeWd9V5HPMOS522hX2/placeholders.js\";import{PRESERVE_CONTROL_NEWLINES}from\"https://framerusercontent.com/modules/gxwbCuOeX9Iq9kc5MH5p/k0Hn9o8CxLBqVGlxaK9j/controlTextStyles.js\";/** Show/hide delays (ms). The hide delay gives users time to move into the tooltip. */const SHOW_DELAY_MS=80;const HIDE_DELAY_MS=180;/** Estimated tooltip width so we can keep it on-screen near the right edge. */const TOOLTIP_MAX_WIDTH=280;const FeatureLabelTooltipInternal=/*#__PURE__*/forwardRef(function FeatureLabelTooltipInternal(props,ref){const{breakpoint:breakpointProp=\"desktop\",feature=\"\",description,featureLink,learnMoreLabel=\"Learn more\",linkLabel=false,textColor,accentColor,tooltipBgColor,tooltipDescriptionColor,tooltipTitleColor,featureLinkId,learnMoreLinkId,style}=props;const breakpoint=useEffectiveBreakpoint(breakpointProp);const reducedMotion=useReducedMotion();const isStatic=useIsStaticRenderer();const disableMotion=reducedMotion||isStatic;const isCanvas=isFramerDesignEnvironment();const tooltipId=useId();const triggerRef=useRef(null);const tooltipRef=useRef(null);const showTimerRef=useRef(null);const hideTimerRef=useRef(null);const[open,setOpen]=useState(false);const[coords,setCoords]=useState(null);const featureSmartLink=useSmartLinkProps(featureLink);const learnMoreSmartLink=useSmartLinkProps(featureLink);const hasDescription=typeof description===\"string\"&&description.trim().length>0;const hasLearnMore=Boolean(getLinkUrl(featureLink));// Resolve colors with sensible fallbacks. Defaults match\n// `atoms/Tooltip` so the popover reads identically.\nconst resolvedTextColor=textColor??Tokens.getColorValue(\"/Text/text-primary\");const resolvedAccentColor=accentColor??Tokens.getColorValue(\"/Utility colors/utility-success-400\");const tooltipBg=tooltipBgColor??Tokens.getColorValue(\"/Backgrounds/bg-tertiary\");const tooltipTitleCol=tooltipTitleColor??Tokens.getColorValue(\"/Text/text-primary\");const tooltipDescriptionCol=tooltipDescriptionColor??Tokens.getColorValue(\"/Text/text-tertiary\");const clearShowTimer=useCallback(()=>{if(showTimerRef.current){clearTimeout(showTimerRef.current);showTimerRef.current=null;}},[]);const clearHideTimer=useCallback(()=>{if(hideTimerRef.current){clearTimeout(hideTimerRef.current);hideTimerRef.current=null;}},[]);const computePosition=useCallback(()=>{const trigger=triggerRef.current;if(!trigger||typeof window===\"undefined\")return;const rect=trigger.getBoundingClientRect();// Anchor the tooltip just below the trigger and clamp to the\n// viewport so it never spills off-screen on phone widths.\nconst padding=8;const top=rect.bottom+padding;const halfWidth=TOOLTIP_MAX_WIDTH/2;const desiredLeft=rect.left+rect.width/2;const left=Math.max(halfWidth+padding,Math.min(window.innerWidth-halfWidth-padding,desiredLeft));setCoords({left,top});},[]);const scheduleShow=useCallback(()=>{if(!hasDescription||isCanvas)return;clearHideTimer();if(open)return;showTimerRef.current=setTimeout(()=>{computePosition();setOpen(true);},SHOW_DELAY_MS);},[clearHideTimer,computePosition,hasDescription,isCanvas,open]);const scheduleHide=useCallback(()=>{clearShowTimer();hideTimerRef.current=setTimeout(()=>setOpen(false),HIDE_DELAY_MS);},[clearShowTimer]);// Recompute position on scroll/resize while open so the tooltip\n// tracks the trigger if the page reflows under it (e.g. user scrolls\n// a few pixels with the trigger still hovered).\nuseEffect(()=>{if(!open||typeof window===\"undefined\")return;const handle=()=>computePosition();window.addEventListener(\"scroll\",handle,true);window.addEventListener(\"resize\",handle);return()=>{window.removeEventListener(\"scroll\",handle,true);window.removeEventListener(\"resize\",handle);};},[open,computePosition]);// Close on Escape so keyboard users always have an escape hatch even\n// when focus has moved into the tooltip's \"Learn more\" link.\nuseEffect(()=>{if(!open||typeof window===\"undefined\")return;const handle=event=>{if(event.key===\"Escape\"){setOpen(false);triggerRef.current?.focus();}};window.addEventListener(\"keydown\",handle);return()=>window.removeEventListener(\"keydown\",handle);},[open]);useEffect(()=>()=>{clearShowTimer();clearHideTimer();},[clearShowTimer,clearHideTimer]);const labelContent=linkLabel&&hasLearnMore&&featureSmartLink.href?/*#__PURE__*/_jsx(\"a\",{id:featureLinkId,href:featureSmartLink.href,target:featureSmartLink.target,rel:featureSmartLink.rel,style:{...featureSmartLink.style,color:\"inherit\",textDecoration:\"underline\",textUnderlineOffset:Tokens.getSpacing(2)},onClick:featureSmartLink.onClick,children:feature}):/*#__PURE__*/_jsx(\"span\",{children:feature});// Keep the wrapper inline so it composes naturally inside table cells\n// alongside surrounding text. `align-items: center` keeps the icon\n// optically centered to the cap-height of the label. No explicit gap:\n// the 24×24 trigger box already includes ~6px of optical padding\n// around the 12×12 glyph, so an additional gap would read as too\n// generous next to the label.\nconst wrapperStyle={display:\"inline-flex\",alignItems:\"center\",color:resolvedTextColor,...style};// Icon sizing: the design-system `info-circle` SVG has a 12×12 glyph\n// centered in a 24×24 viewBox, so the visible graphic is exactly half\n// of the requested render size. We render at 36 with `opticalInset: 0`\n// to land at a visible ~18×18 glyph, which sits comfortably next to\n// Body MD text without dominating the row. The button hit area matches\n// the SVG box so the trigger feels generous without pushing the label.\nconst iconSize=36;const triggerSize=36;const triggerStyle={display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",width:triggerSize,height:triggerSize,padding:0,margin:0,marginLeft:Tokens.getSpacing(4),border:\"none\",background:\"transparent\",color:resolvedTextColor,opacity:.85,cursor:\"help\",borderRadius:Tokens.getRadius(\"radius-full\"),lineHeight:0,verticalAlign:\"middle\",flex:\"0 0 auto\"};const renderTooltip=()=>{if(typeof document===\"undefined\")return null;const padding=Tokens.getSpacing(16);const tooltipMotionTransition=disableMotion?{duration:0}:Tokens.getFramerTransition(\"quick\");const tooltipStyle={position:\"fixed\",left:coords?.left??0,top:coords?.top??0,transform:\"translateX(-50%)\",maxWidth:TOOLTIP_MAX_WIDTH,width:\"max-content\",backgroundColor:tooltipBg,color:tooltipTitleCol,borderRadius:Tokens.getRadius(\"radius-lg\"),boxShadow:Tokens.getShadow(\"medium\"),padding,zIndex:Tokens.getZIndex(\"tooltip\"),pointerEvents:\"auto\"};const titleStyle={...Tokens.getTypographyStyles(\"/Headline 3XS/Heavy\",breakpoint),color:tooltipTitleCol,margin:0,marginBottom:feature?Tokens.getResponsiveSpacing(6,breakpoint):0,overflowWrap:\"break-word\",wordBreak:\"break-word\",...PRESERVE_CONTROL_NEWLINES};const descStyle={...Tokens.getTypographyStyles(\"/Body SM/Light\",breakpoint),color:tooltipDescriptionCol,margin:0,overflowWrap:\"break-word\",wordBreak:\"break-word\",...PRESERVE_CONTROL_NEWLINES};const learnMoreStyle={...Tokens.getTypographyStyles(\"/Body SM/Heavy\",breakpoint),display:\"inline-flex\",alignItems:\"center\",gap:Tokens.getSpacing(4),marginTop:Tokens.getResponsiveSpacing(8,breakpoint),color:resolvedAccentColor,textDecoration:\"none\",...PRESERVE_CONTROL_NEWLINES};return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(AnimatePresence,{children:open&&coords?/*#__PURE__*/_jsxs(motion.div,{ref:tooltipRef,id:tooltipId,role:\"tooltip\",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:tooltipMotionTransition,style:tooltipStyle,onMouseEnter:clearHideTimer,onMouseLeave:scheduleHide,children:[feature?/*#__PURE__*/_jsx(\"div\",{style:titleStyle,children:feature}):null,/*#__PURE__*/_jsx(\"p\",{style:descStyle,children:description}),hasLearnMore&&learnMoreSmartLink.href?/*#__PURE__*/_jsxs(\"a\",{id:learnMoreLinkId,href:learnMoreSmartLink.href,target:learnMoreSmartLink.target,rel:learnMoreSmartLink.rel,onClick:learnMoreSmartLink.onClick,style:{...learnMoreStyle,...learnMoreSmartLink.style},children:[learnMoreLabel,/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:\"→\"})]}):null]},\"feature-label-tooltip-surface\"):null}),document.body);};return /*#__PURE__*/_jsxs(\"span\",{ref:ref,style:wrapperStyle,children:[labelContent,hasDescription?/*#__PURE__*/_jsx(\"button\",{ref:triggerRef,type:\"button\",\"aria-label\":`More information about ${feature||\"this feature\"}`,\"aria-describedby\":open?tooltipId:undefined,\"aria-expanded\":open,style:triggerStyle,onMouseEnter:scheduleShow,onMouseLeave:scheduleHide,onFocus:scheduleShow,onBlur:scheduleHide,onClick:()=>{// Tap-to-toggle for touch users — hover doesn't\n// exist on touch, so the trigger doubles as a\n// tap target.\nif(open){setOpen(false);}else{computePosition();clearHideTimer();setOpen(true);}},dangerouslySetInnerHTML:{__html:getIcon(\"info-circle\",iconSize,resolvedTextColor,{opticalInset:0})}}):null,renderTooltip()]});});/**\n * FeatureLabelTooltip - Wrapper for Framer compatibility.\n */export default function FeatureLabelTooltip(props){return /*#__PURE__*/_jsx(FeatureLabelTooltipInternal,{...props});}FeatureLabelTooltip.displayName=\"Feature Label Tooltip - Molecule\";addPropertyControls(FeatureLabelTooltip,{// ─── 1. Content ────────────────────────────────────────────────────────────\nfeature:{type:ControlType.String,title:\"Feature\",defaultValue:\"Feature text\",placeholder:\"e.g. Free withdrawals\",description:\"Inline feature label.\"},description:{type:ControlType.String,title:\"Supporting Text\",defaultValue:\"A short description that appears on hover to give a little more context about this feature.\",placeholder:\"Short explanation of the feature\",displayTextArea:true,description:\"Tooltip description shown on hover/focus. Leave empty to hide the trigger.\"},learnMoreLabel:{type:ControlType.String,title:\"Learn More Button Label\",defaultValue:PLACEHOLDER.SECONDARY_BUTTON,placeholder:\"Learn more\",description:\"Text for the in-tooltip Learn more link.\"},// ─── 2. Links ──────────────────────────────────────────────────────────────\nfeatureLink:{type:ControlType.Link,title:\"Feature Link\",defaultValue:\"\",description:\"URL for the feature page. Used by the in-tooltip Learn more link.\"},// ─── 7. Behavior ───────────────────────────────────────────────────────────\nlinkLabel:{type:ControlType.Boolean,title:\"Link Inline Label\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"When enabled, the inline feature label itself is rendered as a link.\"},// ─── 8. Analytics ──────────────────────────────────────────────────────────\nfeatureLinkId:{type:ControlType.String,title:\"Feature Link ID\",defaultValue:\"\",placeholder:\"e.g. pricing-feature-link\",description:\"Analytics ID for the inline label anchor (only used when Link Inline Label is on).\"},learnMoreLinkId:{type:ControlType.String,title:\"Learn More Link ID\",defaultValue:\"\",placeholder:\"e.g. pricing-feature-learn-more\",description:\"Analytics ID for the in-tooltip Learn more anchor.\"},// ─── 10. System ────────────────────────────────────────────────────────────\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],displaySegmentedControl:false,defaultValue:\"desktop\",description:\"Current breakpoint for responsive typography.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FeatureLabelTooltip\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Breakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FeatureLabelTooltipProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}