{"version":3,"file":"VioletButton.CaHi6jSL.mjs","names":["useMemo","useRef"],"sources":["https:/framerusercontent.com/modules/ymaoff9Q7zydF7KsbWcV/GGnyx0qTpgDHBd9UvLrV/VioletButton.js"],"sourcesContent":["// User requested: \"create a violet button component from this element\" (no element provided), so create a configurable violet button.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useMemo,useRef}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,useInView}from\"framer-motion\";/**\n * Violet Button\n *\n * @framerIntrinsicWidth 160\n * @framerIntrinsicHeight 42\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function VioletButton(props){const isStatic=useIsStaticRenderer();const{label,variant,href,openInNewTab,disabled,useBluePreset,backgroundColor,hoverBackgroundColor,pressedBackgroundColor,textColor,hoverTextColor,borderColor,radius,padding,font,shadow,hoverShadow,style}=props;const{effectiveBackgroundColor,effectiveHoverBackgroundColor,effectivePressedBackgroundColor,effectiveTextColor,effectiveHoverTextColor,effectiveBorderColor,effectiveShadow,effectiveHoverShadow}=useMemo(()=>{if(!useBluePreset){return{effectiveBackgroundColor:backgroundColor,effectiveHoverBackgroundColor:hoverBackgroundColor,effectivePressedBackgroundColor:pressedBackgroundColor,effectiveTextColor:textColor,effectiveHoverTextColor:hoverTextColor,effectiveBorderColor:borderColor,effectiveShadow:shadow,effectiveHoverShadow:hoverShadow};}return{effectiveBackgroundColor:\"#1A6AEC\",effectiveHoverBackgroundColor:\"#155CC8\",effectivePressedBackgroundColor:\"#124EA9\",effectiveTextColor:\"#FFFFFF\",effectiveHoverTextColor:\"#FFFFFF\",effectiveBorderColor:\"#1A6AEC\",effectiveShadow:\"0px 8px 20px rgba(26, 106, 236, 0.28)\",effectiveHoverShadow:\"0px 10px 28px rgba(26, 106, 236, 0.34)\"};},[useBluePreset,backgroundColor,hoverBackgroundColor,pressedBackgroundColor,textColor,hoverTextColor,borderColor,shadow,hoverShadow]);const toRgba=useMemo(()=>{const hexToRgba=(hex,alpha)=>{const clean=(hex||\"\").replace(/[^0-9a-f]/gi,\"\");const full=clean.length===3?clean.split(\"\").map(c=>c+c).join(\"\"):clean;if(full.length!==6)return`rgba(0, 0, 0, ${alpha})`;const num=parseInt(full,16);const r=num>>16&255;const g=num>>8&255;const b=num&255;return`rgba(${r}, ${g}, ${b}, ${alpha})`;};return{hexToRgba};},[]);const{baseBg,baseColor,baseBorder,baseShadow}=useMemo(()=>{if(variant===\"outline\"){return{baseBg:\"transparent\",baseColor:effectiveBackgroundColor,baseBorder:`1px solid ${effectiveBorderColor}`,baseShadow:\"none\"};}if(variant===\"ghost\"){return{baseBg:\"transparent\",baseColor:effectiveBackgroundColor,baseBorder:\"1px solid transparent\",baseShadow:\"none\"};}return{baseBg:effectiveBackgroundColor,baseColor:effectiveTextColor,baseBorder:\"1px solid transparent\",baseShadow:effectiveShadow};},[variant,effectiveBackgroundColor,effectiveBorderColor,effectiveShadow,effectiveTextColor]);const{hoverBg,hoverColor,hoverBorder,hoverBoxShadow}=useMemo(()=>{if(disabled){return{hoverBg:baseBg,hoverColor:baseColor,hoverBorder:baseBorder,hoverBoxShadow:baseShadow};}if(variant===\"outline\"){return{hoverBg:toRgba.hexToRgba(effectiveBackgroundColor,.08),hoverColor:effectiveBackgroundColor,hoverBorder:`1px solid ${effectiveBackgroundColor}`,hoverBoxShadow:\"none\"};}if(variant===\"ghost\"){return{hoverBg:toRgba.hexToRgba(effectiveBackgroundColor,.1),hoverColor:effectiveBackgroundColor,hoverBorder:\"1px solid transparent\",hoverBoxShadow:\"none\"};}return{hoverBg:effectiveHoverBackgroundColor,hoverColor:effectiveHoverTextColor,hoverBorder:\"1px solid transparent\",hoverBoxShadow:effectiveHoverShadow};},[disabled,variant,baseBg,baseBorder,baseColor,baseShadow,effectiveBackgroundColor,effectiveHoverBackgroundColor,effectiveHoverShadow,effectiveHoverTextColor,toRgba]);const commonStyles=useMemo(()=>({position:\"relative\",width:\"100%\",height:style?.height===\"100%\"?\"100%\":42,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,padding,borderRadius:radius,border:baseBorder,background:baseBg,color:baseColor,boxShadow:baseShadow,cursor:disabled?\"not-allowed\":\"pointer\",userSelect:\"none\",outline:\"none\",WebkitTapHighlightColor:\"transparent\",textDecoration:\"none\",opacity:disabled?.55:1,...font,// Ensure text sizes nicely when auto-sized\n    minWidth:style?.width===\"100%\"?undefined:\"max-content\",whiteSpace:\"nowrap\"}),[baseBg,baseBorder,baseColor,baseShadow,disabled,font,padding,radius,style?.width]);const hasLink=href?.trim().length>0;const MotionEl=hasLink?motion.a:motion.button;// Pause hover/press animations if not in view (perf)\nconst inViewRef=useRef(null);const isInView=useInView(inViewRef,{amount:.2});const effectiveInView=isStatic?true:isInView;const allowAnim=!isStatic&&!!effectiveInView&&!disabled;return /*#__PURE__*/_jsx(MotionEl,{ref:inViewRef,role:hasLink?\"link\":\"button\",\"aria-disabled\":disabled,tabIndex:disabled?-1:0,href:hasLink&&!disabled?href:undefined,target:hasLink&&openInNewTab?\"_blank\":undefined,rel:hasLink&&openInNewTab?\"noreferrer\":undefined,disabled:!hasLink?disabled:undefined,style:{...commonStyles,...style},whileHover:allowAnim?{backgroundColor:hoverBg,color:hoverColor,boxShadow:hoverBoxShadow,borderColor:variant===\"outline\"?effectiveBackgroundColor:undefined,y:-1}:undefined,whileTap:allowAnim?{backgroundColor:effectivePressedBackgroundColor,y:0,scale:.99}:undefined,transition:{type:\"spring\",stiffness:520,damping:34,mass:.6},children:/*#__PURE__*/_jsx(\"span\",{style:{width:\"max-content\",lineHeight:1},children:label})});}addPropertyControls(VioletButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Get Started\"},variant:{type:ControlType.Enum,title:\"Variant\",options:[\"solid\",\"outline\",\"ghost\"],optionTitles:[\"Solid\",\"Outline\",\"Ghost\"],defaultValue:\"solid\",displaySegmentedControl:true},href:{type:ControlType.Link,title:\"Link\",defaultValue:\"\"},openInNewTab:{type:ControlType.Boolean,title:\"New Tab\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},disabled:{type:ControlType.Boolean,title:\"Disabled\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},useBluePreset:{type:ControlType.Boolean,title:\"Blue\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},backgroundColor:{type:ControlType.Color,title:\"Violet\",defaultValue:\"#743EE4\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover\",defaultValue:\"#6535C9\",hidden:({variant})=>variant!==\"solid\"},pressedBackgroundColor:{type:ControlType.Color,title:\"Pressed\",defaultValue:\"#5630AF\",hidden:({variant})=>variant!==\"solid\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#FFFFFF\",hidden:({variant})=>variant!==\"solid\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#FFFFFF\",hidden:({variant})=>variant!==\"solid\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#7C3AED\",hidden:({variant})=>variant===\"solid\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"24px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"12px 18px\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"16pt\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}},shadow:{type:ControlType.BoxShadow,title:\"Shadow\",defaultValue:\"0px 8px 20px rgba(124, 58, 237, 0.28)\",hidden:({variant})=>variant!==\"solid\"},hoverShadow:{type:ControlType.BoxShadow,title:\"Hover Shadow\",defaultValue:\"0px 10px 28px rgba(124, 58, 237, 0.34)\",hidden:({variant})=>variant!==\"solid\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"VioletButton\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"160\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"42\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VioletButton.map"],"mappings":"iPASG,SAAwB,EAAa,EAAM,CAAC,IAAM,EAAS,EAAoB,EAAO,CAAC,QAAM,UAAQ,OAAK,eAAa,WAAS,gBAAc,kBAAgB,uBAAqB,yBAAuB,YAAU,iBAAe,cAAY,SAAO,UAAQ,OAAK,SAAO,cAAY,SAAO,EAAW,CAAC,2BAAyB,gCAA8B,kCAAgC,qBAAmB,0BAAwB,uBAAqB,kBAAgB,wBAAsBA,MAAiB,EAA8U,CAAC,yBAAyB,UAAU,8BAA8B,UAAU,gCAAgC,UAAU,mBAAmB,UAAU,wBAAwB,UAAU,qBAAqB,UAAU,gBAAgB,wCAAwC,qBAAqB,wCAAwC,EAAloB,CAAC,yBAAyB,EAAgB,8BAA8B,EAAqB,gCAAgC,EAAuB,mBAAmB,EAAU,wBAAwB,EAAe,qBAAqB,EAAY,gBAAgB,EAAO,qBAAqB,CAAW,EAAsV,CAAC,EAAc,EAAgB,EAAqB,EAAuB,EAAU,EAAe,EAAY,EAAO,CAAW,CAAC,EAAQ,EAAOA,OAAyV,CAAC,WAA5T,EAAI,IAAQ,CAAC,IAAM,GAAO,GAAK,GAAA,CAAI,QAAQ,cAAc,EAAE,EAAQ,EAAK,EAAM,SAAS,EAAE,EAAM,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAM,GAAG,EAAK,SAAS,EAAE,MAAM,iBAAiB,EAAM,GAAG,IAAM,EAAI,SAAS,EAAK,EAAE,EAAyD,MAAM,QAArD,GAAK,GAAG,IAAuD,IAA3C,GAAK,EAAE,IAA0C,IAA9B,EAAI,IAAgC,IAAI,EAAM,EAAG,CAAkB,GAAI,CAAC,CAAC,EAAO,CAAC,SAAO,YAAU,aAAW,cAAYA,MAAgB,IAAU,UAAiB,CAAC,OAAO,cAAc,UAAU,EAAyB,WAAW,aAAa,IAAuB,WAAW,MAAM,EAAM,IAAU,QAAe,CAAC,OAAO,cAAc,UAAU,EAAyB,WAAW,wBAAwB,WAAW,MAAM,EAAS,CAAC,OAAO,EAAyB,UAAU,EAAmB,WAAW,wBAAwB,WAAW,CAAe,EAAI,CAAC,EAAQ,EAAyB,EAAqB,EAAgB,CAAkB,CAAC,EAAO,CAAC,UAAQ,aAAW,cAAY,kBAAgBA,MAAgB,EAAgB,CAAC,QAAQ,EAAO,WAAW,EAAU,YAAY,EAAW,eAAe,CAAU,EAAM,IAAU,UAAiB,CAAC,QAAQ,EAAO,UAAU,EAAyB,GAAG,EAAE,WAAW,EAAyB,YAAY,aAAa,IAA2B,eAAe,MAAM,EAAM,IAAU,QAAe,CAAC,QAAQ,EAAO,UAAU,EAAyB,EAAE,EAAE,WAAW,EAAyB,YAAY,wBAAwB,eAAe,MAAM,EAAS,CAAC,QAAQ,EAA8B,WAAW,EAAwB,YAAY,wBAAwB,eAAe,CAAoB,EAAI,CAAC,EAAS,EAAQ,EAAO,EAAW,EAAU,EAAW,EAAyB,EAA8B,EAAqB,EAAwB,CAAM,CAAC,EAAQ,EAAaA,OAAa,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,GAAO,SAAS,OAAO,OAAO,GAAG,QAAQ,cAAc,WAAW,SAAS,eAAe,SAAS,IAAI,EAAE,UAAQ,aAAa,EAAO,OAAO,EAAW,WAAW,EAAO,MAAM,EAAU,UAAU,EAAW,OAAO,EAAS,cAAc,UAAU,WAAW,OAAO,QAAQ,OAAO,wBAAwB,cAAc,eAAe,OAAO,QAAQ,EAAS,IAAI,EAAE,GAAG,EAC7+G,SAAS,GAAO,QAAQ,OAAO,IAAA,GAAU,cAAc,WAAW,QAAQ,GAAG,CAAC,EAAO,EAAW,EAAU,EAAW,EAAS,EAAK,EAAQ,EAAO,GAAO,KAAK,CAAC,EAAQ,EAAQ,GAAM,KAAK,CAAC,CAAC,OAAO,EAAQ,EAAS,EAAQ,EAAO,EAAE,EAAO,OAC1O,EAAUC,EAAO,IAAI,EAAQ,EAAS,EAAU,EAAU,CAAC,OAAO,EAAE,CAAC,EAAqD,EAAU,CAAC,GAAU,CAAC,EAAnD,GAAc,IAAuD,CAAC,EAAS,OAAoB,EAAK,EAAS,CAAC,IAAI,EAAU,KAAK,EAAQ,OAAO,SAAS,gBAAgB,EAAS,SAAS,EAAS,GAAG,EAAE,KAAK,GAAS,CAAC,EAAS,EAAK,IAAA,GAAU,OAAO,GAAS,EAAa,SAAS,IAAA,GAAU,IAAI,GAAS,EAAa,aAAa,IAAA,GAAU,SAAU,EAAiB,IAAA,GAAT,EAAmB,MAAM,CAAC,GAAG,EAAa,GAAG,CAAK,EAAE,WAAW,EAAU,CAAC,gBAAgB,EAAQ,MAAM,EAAW,UAAU,EAAe,YAAY,IAAU,UAAU,EAAyB,IAAA,GAAU,EAAE,EAAE,EAAE,IAAA,GAAU,SAAS,EAAU,CAAC,gBAAgB,EAAgC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAA,GAAU,WAAW,CAAC,KAAK,SAAS,UAAU,IAAI,QAAQ,GAAG,KAAK,EAAE,EAAE,SAAsB,EAAK,OAAO,CAAC,MAAM,CAAC,MAAM,cAAc,WAAW,CAAC,EAAE,SAAS,CAAK,CAAC,CAAC,CAAC,CAAE,iBAVv3B,IAAkC,IAAwE,IAA4C,EAUkuB,EAAoB,EAAa,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,QAAQ,UAAU,OAAO,EAAE,aAAa,CAAC,QAAQ,UAAU,OAAO,EAAE,aAAa,QAAQ,wBAAwB,EAAI,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,aAAa,EAAE,EAAE,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,GAAM,aAAa,MAAM,cAAc,IAAI,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAM,aAAa,KAAK,cAAc,KAAK,EAAE,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAM,aAAa,KAAK,cAAc,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,SAAS,EAAE,qBAAqB,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,UAAU,QAAQ,CAAC,aAAW,IAAU,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,aAAa,UAAU,QAAQ,CAAC,aAAW,IAAU,OAAO,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,UAAU,QAAQ,CAAC,aAAW,IAAU,OAAO,EAAE,eAAe,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,QAAQ,CAAC,aAAW,IAAU,OAAO,EAAE,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,UAAU,QAAQ,CAAC,aAAW,IAAU,OAAO,EAAE,OAAO,CAAC,KAAK,EAAY,aAAa,MAAM,SAAS,aAAa,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,WAAW,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,WAAW,cAAc,UAAU,WAAW,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,UAAU,MAAM,SAAS,aAAa,wCAAwC,QAAQ,CAAC,aAAW,IAAU,OAAO,EAAE,YAAY,CAAC,KAAK,EAAY,UAAU,MAAM,eAAe,aAAa,yCAAyC,QAAQ,CAAC,aAAW,IAAU,OAAO,CAAC,CAAC"}