{"version":3,"file":"DirectionalUnderline.BNmjZHaZ.mjs","names":["React.forwardRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/3xG9aYcGbpykhj2x3XYS/WtZdd6S8qRXLOv4New15/loQWOJ1Ho.js","https:/framerusercontent.com/modules/AFjIbVibAwBJHQFlF8as/WfZ0x8e5QkUk1Pmdj67w/DirectionalUnderline.js"],"sourcesContent":["// Generated by Framer (8cd6393)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const htQyJXMKW=undefined;const jDue3c8Jy=undefined;const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 16 0 L 0 0\" fill=\"transparent\" height=\"1px\" id=\"bFWUDIFFb\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"miter\" stroke-miterlimit=\"10\" stroke-width=\"var(--fbr8zx, 1.5)\" stroke=\"var(--34440n, rgb(0, 0, 0))\" transform=\"translate(4 12)\" width=\"16px\"/><path d=\"M 0 15.321 L 6.573 8.748 C 6.716 8.606 6.83 8.437 6.908 8.25 C 6.986 8.063 7.026 7.863 7.026 7.661 C 7.026 7.458 6.986 7.258 6.908 7.071 C 6.83 6.885 6.716 6.715 6.573 6.573 L 0 0\" fill=\"transparent\" height=\"15.321179999999998px\" id=\"GILTdJBXg\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--fbr8zx, 1.5)\" stroke=\"var(--34440n, rgb(0, 0, 0))\" transform=\"translate(12.968 4.339)\" width=\"7.026000000000002px\"/></svg>';const getProps=({color,height,id,width,width1,...props})=>{return{...props,htQyJXMKW:width1??props.htQyJXMKW??1.5,jDue3c8Jy:color??props.jDue3c8Jy??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,jDue3c8Jy,htQyJXMKW,...restProps}=getProps(props);const href=useSVGTemplate(\"3284887233\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-uWMck\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--34440n\":jDue3c8Jy,\"--fbr8zx\":htQyJXMKW,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-uWMck { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"jDue3c8Jy\":\"color\",\"htQyJXMKW\":\"width1\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Arrow Right\",\"color\":{\"type\":\"variable\",\"value\":\"34440n\"},\"set\":{\"localId\":\"vectorSet/N6bZIbxLR\",\"id\":\"N6bZIbxLR\",\"moduleId\":\"NCiKiaU9qhVJumKU6JAo\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-uWMck\");Icon.displayName=\"Arrow Right\";export default Icon;addPropertyControls(Icon,{jDue3c8Jy:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},htQyJXMKW:{defaultValue:1.5,displayStepper:true,hidden:false,max:8,min:0,title:\"Width\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"24\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Arrow Right\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"34440n\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/N6bZIbxLR\\\",\\\"id\\\":\\\"N6bZIbxLR\\\",\\\"moduleId\\\":\\\"NCiKiaU9qhVJumKU6JAo\\\"}}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"jDue3c8Jy\\\":\\\"color\\\",\\\"htQyJXMKW\\\":\\\"width1\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";/**\n * Directional underline for Link/Underline (tObi65EMZ).\n *\n * Framer gesture variants are symmetric — the exit always plays the enter in\n * reverse — so a variant-based underline can only ever retract the way it came.\n * This override drives the \"Line In\" bar with CSS instead, swapping\n * transform-origin between states so the line wipes IN from the left and OUT\n * to the right.\n *\n * The bar must be width:100% in every variant; the scale does the animating.\n *\n * Two triggers, one rule each:\n *   *:hover > ...  the bar's direct parent is the component root, so this is\n *                  \"hovering the link itself\"\n *   a:hover ...    any ancestor <a>, so a clickable card lights the underline\n *                  from anywhere on the card (variants cannot do this at all)\n *\n * `scale` is used rather than `transform` so it composes with any transform\n * Framer sets on the node for positioning.\n */const DURATION=\"0.35s\";const EASE=\"cubic-bezier(0.77, 0, 0.46, 1)\";const BAR='[data-framer-name=\"Line In\"]';const CSS=`\n${BAR} {\n    /* Force full width so scale does the animating. !important beats the\n       variant's inline width, which means the variant geometry is left alone —\n       if this selector ever stops matching, the component simply falls back to\n       its old variant-driven behaviour instead of getting stuck visible. */\n    width: 100% !important;\n    scale: 0 1;\n    transform-origin: right center;\n    transition: scale ${DURATION} ${EASE};\n    will-change: scale;\n}\n*:hover > ${BAR},\na:hover ${BAR} {\n    scale: 1 1;\n    transform-origin: left center;\n}\n@media (prefers-reduced-motion: reduce) {\n    ${BAR} { transition-duration: 1ms; }\n}\n`;export function withDirectionalUnderline(Component){return props=>/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsx(Component,{...props})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"withDirectionalUnderline\":{\"type\":\"reactHoc\",\"name\":\"withDirectionalUnderline\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DirectionalUnderline.map"],"mappings":"uRAC0C,IAAqF,IAA4B,EAAyF,EAAK,0BAAgC,EAAkB,EAAW,SAAS,EAAM,EAAI,CAAC,OAAoB,EAAK,MAAM,CAAC,GAAG,EAAU,MAAI,SAAS,EAAM,QAAQ,CAAC,CAAE,CAAC,EAAQ,EAAU,EAAO,OAAO,CAAI,EAAQ,EAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAU,CAAC,GAAG,EAAc,WAAa,MAAa,UAAQ,CAAC,EAAe,EAAK,MAAM,CAAC,GAAG,EAAS,MAAa,UAAQ,CAAC,CAAE,CAAC,EAAQ,EAAI,m0BAAy0B,GAAU,CAAC,QAAM,SAAO,KAAG,QAAM,SAAO,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAQ,EAAM,WAAW,IAAI,UAAU,GAAO,EAAM,WAAW,cAAc,GAUrqD,EAAK,EAVisDA,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,YAAU,WAAS,UAAQ,YAAU,YAAU,GAAG,GAAW,EAAS,CAAK,EAAQ,EAAK,EAAe,aAAa,CAAG,EAAE,OAAoB,EAAK,EAAI,CAAC,GAAG,EAAU,UAAU,EAAG,eAAe,CAAS,EAAW,WAAa,MAAI,KAAK,eAAe,MAAM,CAAC,WAAW,EAAU,WAAW,EAAU,GAAG,CAAK,EAAE,QAAQ,YAAY,SAAsB,EAAK,MAAM,CAAM,MAAI,CAAC,CAAC,CAAC,CAAE,CAU1lE,EAAE,CAVsmE,iCAAiC,EAAK,2CAA2C,EAAK,iBAU1rE,EAAE,cAAc,EAAE,EAAK,YAAY,cAAkC,EAAoB,EAAK,CAAC,UAAU,CAAC,aAAa,eAAe,OAAO,GAAM,MAAM,QAAQ,KAAK,EAAY,KAAK,EAAE,UAAU,CAAC,aAAa,IAAI,eAAe,GAAK,OAAO,GAAM,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,KAAK,EAAY,MAAM,CAAC,CAAC,KC4BzU,SAAgB,EAAyB,EAAU,CAAC,MAAO,IAAoB,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,CAAG,CAAC,EAAe,EAAK,EAAU,CAAC,GAAG,CAAK,CAAC,CAAC,CAAC,CAAC,CAAE,yBAvCnH,EAmBrE,EAAS,QAAc,EAAK,iCAAuC,EAAI,+BAAqC,EAAI;EACvH,EAAI;;;;;;;;wBAQkB,EAAS,GAAG,EAAK;;;YAG7B,EAAI;UACN,EAAI;;;;;MAKR,EAAI"}