{"version":3,"file":"shared-lib.SDCY7eiY.mjs","names":["React.useMemo","metadata","metadata","siteMetadata","metadataVersion","__FramerMetadata__","siteMetadata"],"sources":["https:/framerusercontent.com/modules/SL1HChaU0YCGdfntBMBS/rtvYXLFacrv6w8UF419N/Rainbow_Button.js","https:/framerusercontent.com/modules/OA6InTuAnYm77v8vC3Hi/iwcx5VNPIlTzfNcSYlWe/hxp3Q23EC.js","https:/framerusercontent.com/modules/pBiOXlcZ61pe5bC5lNal/QzaechkuvM11F2TNmfIr/siteMetadata.js","https:/framerusercontent.com/modules/QWimiMEWfX1VPl48Mj9b/mhnL8UgskOFZRbpJhjA1/B66QwFAga.js","https:/framerusercontent.com/modules/MSZAgMdqHIjtgbdHsvkH/sP9Scve34mxLqocsZ88l/MMF4RMv9W.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const DEFAULT_COLORS=[\"#22c55e\",\"#f97316\",\"#6366f1\",\"#ec4899\",\"#06b6d4\"];function buildRainbowGradient(colors){const effectiveColors=colors&&colors.length>0?colors:DEFAULT_COLORS;const stops=effectiveColors.join(\",\");return`linear-gradient(90deg,${stops})`;}function buildBackgroundImage(colors,fillColor){const rainbow=buildRainbowGradient(colors);const fill=fillColor??\"#121213\";// Convert fill color to rgba for the sheen gradient\n// Extract RGB values from hex color\nconst hexToRgb=hex=>{const result=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:{r:18,g:18,b:19}// fallback to #121213\n;};const rgb=hexToRgb(fill);// Inner fill + subtle vertical sheen + rainbow border\nreturn[`linear-gradient(${fill},${fill})`,`linear-gradient(${fill} 50%,rgba(${rgb.r},${rgb.g},${rgb.b},0.6) 80%,rgba(${rgb.r},${rgb.g},${rgb.b},0))`,rainbow].join(\",\");}function RainbowButton(props){const{label,link,openInNewTab,disabled,textColor,hoverTextColor,buttonColor,hoverButtonColor,padding,borderRadius,border,font,glowBlur,glowOpacity,rainbowTransition,rainbowColors,boxShadow,hoverBoxShadow,style}=props;const baseBackgroundImage=React.useMemo(()=>buildBackgroundImage(rainbowColors,buttonColor),[rainbowColors,buttonColor]);const hoverBackgroundImage=React.useMemo(()=>buildBackgroundImage(rainbowColors,hoverButtonColor||buttonColor),[rainbowColors,hoverButtonColor,buttonColor]);const rainbowGradient=React.useMemo(()=>buildRainbowGradient(rainbowColors),[rainbowColors]);const baseButtonStyle={position:\"relative\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,cursor:disabled?\"not-allowed\":\"pointer\",outline:\"none\",whiteSpace:\"nowrap\",transition:\"box-shadow 0.2s ease, transform 0.2s ease, opacity 0.2s ease\",// Apply font styles (fontSize, fontWeight, fontFamily, letterSpacing, lineHeight, textAlign)\n...font,opacity:disabled?.5:1,pointerEvents:disabled?\"none\":\"auto\",padding,borderRadius,// Border properties - support per-side colors for outline variant effect\nborderWidth:border.borderWidth,borderTopWidth:border.borderTopWidth,borderRightWidth:border.borderRightWidth,borderBottomWidth:border.borderBottomWidth,borderLeftWidth:border.borderLeftWidth,borderStyle:border.borderStyle,// Use per-side colors if provided, otherwise use main borderColor\nborderTopColor:border.borderTopColor||border.borderColor||\"transparent\",borderRightColor:border.borderRightColor||border.borderColor||\"transparent\",borderBottomColor:\"transparent\",borderLeftColor:border.borderLeftColor||border.borderColor||\"transparent\",backgroundImage:baseBackgroundImage,backgroundSize:\"100%,100%,200%\",backgroundOrigin:\"border-box\",backgroundClip:\"padding-box,border-box,border-box\",color:textColor,zIndex:1,boxShadow:disabled?\"none\":boxShadow||\"none\",...style};const glowStyle={position:\"absolute\",bottom:\"-20%\",left:\"50%\",width:\"60%\",height:\"20%\",transform:\"translateX(-50%)\",backgroundImage:rainbowGradient,backgroundSize:\"200%\",filter:`blur(${glowBlur}px)`,opacity:glowOpacity,zIndex:0,pointerEvents:\"none\"};// Rainbow animation: move the gradient horizontally\nconst rainbowAnimation={backgroundPosition:[\"0% 0%\",\"200% 0%\"]};// Merge user transition with looping behavior\nconst loopedRainbowTransition={...rainbowTransition,repeat:Infinity,repeatType:\"loop\"};const handleClick=()=>{if(!disabled&&link){if(openInNewTab){window.open(link,\"_blank\");}else{window.location.href=link;}}};return /*#__PURE__*/_jsxs(motion.button,{type:\"button\",style:baseButtonStyle,disabled:disabled,onClick:handleClick,animate:rainbowAnimation,transition:loopedRainbowTransition,\"aria-label\":label,\"aria-disabled\":disabled,whileHover:{backgroundImage:hoverBackgroundImage,color:hoverTextColor||textColor,boxShadow:disabled?\"none\":hoverBoxShadow||boxShadow},children:[/*#__PURE__*/_jsx(motion.span,{style:glowStyle,animate:rainbowAnimation,transition:loopedRainbowTransition}),label]});}/* Property controls */addPropertyControls(RainbowButton,{label:{type:ControlType.String,title:\"Label\",description:\"Button text content\",defaultValue:\"Rainbow Button\"},link:{type:ControlType.Link,title:\"Link\",description:\"URL to navigate to on click\",defaultValue:\"\"},openInNewTab:{type:ControlType.Boolean,title:\"Open in new tab\",defaultValue:true},disabled:{type:ControlType.Boolean,title:\"Disabled\",defaultValue:false},// Rainbow colors\nrainbowColors:{type:ControlType.Array,title:\"Rainbow Colors\",description:\"Customize the gradient colors (2-8 colors recommended)\",maxCount:8,defaultValue:DEFAULT_COLORS,propertyControl:{type:ControlType.Color,defaultValue:\"#ffffff\"}},rainbowTransition:{type:ControlType.Transition,title:\"Animation\",description:\"Control the rainbow animation speed and easing\",defaultValue:{duration:2,ease:\"linear\"}},// Colors\nbuttonColor:{type:ControlType.Color,title:\"Button Color\",defaultValue:\"#121213\"},hoverButtonColor:{type:ControlType.Color,title:\"Hover Button\",defaultValue:\"#1f2933\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#ffffff\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#ffffff\"},// Typography\nfont:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:14,fontWeight:500,textAlign:\"center\",lineHeight:1.5},controls:\"extended\",displayTextAlignment:true,displayFontSize:true},// Layout\npadding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"8px 16px 8px 16px\"},borderRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"6px\"},border:{type:ControlType.Border,title:\"Border\",description:\"Bottom border is always transparent for rainbow effect. Top/left/right can have custom colors.\",defaultValue:{borderWidth:2,borderStyle:\"solid\",borderColor:\"transparent\"}},// Glow / animation\nglowBlur:{type:ControlType.Number,title:\"Glow Blur\",description:\"Blur intensity of the bottom glow effect\",min:0,max:40,unit:\"px\",defaultValue:12},glowOpacity:{type:ControlType.Number,title:\"Glow Opacity\",description:\"Visibility of the glow effect\",min:0,max:1,step:.05,defaultValue:.9},// Shadows (BoxShadow control)\nboxShadow:{type:ControlType.BoxShadow,title:\"Box Shadow\",defaultValue:\"\"},hoverBoxShadow:{type:ControlType.BoxShadow,title:\"Hover Shadow\",defaultValue:\"\"}});RainbowButton.displayName=\"Rainbow Button\";export default RainbowButton;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RainbowButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Rainbow_Button.map","// Generated by Framer (569b461)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-H66b8 .framer-styles-preset-1r2wljr:not(.rich-text-wrapper), .framer-H66b8 .framer-styles-preset-1r2wljr.rich-text-wrapper a { --framer-link-current-text-color: #333333; --framer-link-text-color: rgba(107, 107, 107, 0.7); }\"];export const className=\"framer-H66b8\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","const metadata=params=>({description:\"Made with Framer\",title:\"My Framer Site\"});export default metadata;export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (569b461)\nimport siteMetadata from\"https://framerusercontent.com/modules/pBiOXlcZ61pe5bC5lNal/QzaechkuvM11F2TNmfIr/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"119m049\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-Kak76\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=1200\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (cbc36cd)\nimport siteMetadata from\"https://framerusercontent.com/modules/pBiOXlcZ61pe5bC5lNal/QzaechkuvM11F2TNmfIr/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"12emt6m\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-CTu7o\",title:siteMetadata(params,activeLocale).title||\"Outline\",viewport:\"width=1200\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}