{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/tW1ExjbbJRt9YcZ0Gyxk/7xLQ6of7kXWmBUVuRiYG/Spotify.js", "ssg:https://framerusercontent.com/modules/Ml87gB0bM6o2jHylPCib/Hc7ytTANykSETC5YKFZV/kZap8jQub.js", "ssg:https://framerusercontent.com/modules/tEoqSpmlCpfvwt93510F/FG2Ym6Wn6mD5YwNfHsqk/rexA9j5kW.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useCallback}from\"react\";const urlRegex=/(https?:\\/\\/[^ ]*)/;/**\n * SPOTIFY\n *\n * @framerIntrinsicWidth 280\n * @framerIntrinsicHeight 350\n */ export function Spotify(props){const{theme,url:sourceUrl}=props;const createEmbedUrl=useCallback(()=>{if(sourceUrl.length<5)return null;// If someone pastes the embed code lets still try to render it\nconst strippedUrl=sourceUrl.includes(\"iframe\")?sourceUrl.match(urlRegex)[1].replace(`\"`,\"\"):sourceUrl;const url=new URL(strippedUrl);// Add embed prefix if needed\nif(!url.pathname.includes(\"embed\"))url.pathname=`/embed${url.pathname}`;// Remove params\nurl.search=`theme=${theme}`;// @ben you could add all other bools in here like\n// url.search = `theme=${theme}&dog=${cat}`\nreturn url.toString();},[theme,sourceUrl]);const identifier=createEmbedUrl();return(/*#__PURE__*/ _jsx(\"iframe\",{style:{height:\"100%\",width:\"100%\"},frameBorder:0,src:identifier}));}Spotify.defaultProps={url:\"https://open.spotify.com/album/31qVWUdRrlb8thMvts0yYL?si=Jl-8Mnc3RNGuOtqRC7NXVg\",width:280,height:350,theme:1};addPropertyControls(Spotify,{url:{type:ControlType.String,title:\"URL\"},theme:{type:ControlType.Enum,displaySegmentedControl:true,options:[1,0],optionTitles:[\"On\",\"Off\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"Spotify\":{\"type\":\"reactComponent\",\"name\":\"Spotify\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"350\",\"framerIntrinsicWidth\":\"280\"}}}}\n//# sourceMappingURL=./Spotify.map", "// Generated by Framer (120dbbf)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getLoadingLazyAtYPosition,Image,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Youtube as YouTube}from\"https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/DDzyuYPF56TuI0bfUu2z/YouTube.js\";const YouTubeFonts=getFonts(YouTube);const serializationHash=\"framer-NcSZb\";const variantClassNames={wWl5eC7Rp:\"framer-v-ob6lh2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({hasVideo,height,id,image,width,youtubeLink,...props})=>{return{...props,cYiXBxNrU:hasVideo??props.cYiXBxNrU??true,tox0Cul1b:youtubeLink??props.tox0Cul1b,UNGShtLIe:image??props.UNGShtLIe};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,UNGShtLIe,cYiXBxNrU,tox0Cul1b,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"wWl5eC7Rp\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Image,{...restProps,...gestureHandlers,background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition(componentViewport?.y||0),sizes:componentViewport?.width||\"100vw\",...toResponsiveImage(UNGShtLIe)},className:cx(scopingClassNames,\"framer-ob6lh2\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"wWl5eC7Rp\",ref:refBinding,style:{borderBottomLeftRadius:20,borderBottomRightRadius:20,borderTopLeftRadius:20,borderTopRightRadius:20,...style},children:cYiXBxNrU&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1ogdsf9-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"hUev4yGAe-container\",nodeId:\"hUev4yGAe\",rendersWithMotion:true,scopeId:\"kZap8jQub\",children:/*#__PURE__*/_jsx(YouTube,{borderRadius:0,bottomLeftRadius:0,bottomRightRadius:0,height:\"100%\",id:\"hUev4yGAe\",isMixedBorderRadius:false,isRed:false,layoutId:\"hUev4yGAe\",play:\"Off\",shouldMute:true,style:{height:\"100%\",width:\"100%\"},thumbnail:\"Medium Quality\",topLeftRadius:0,topRightRadius:0,url:tox0Cul1b,width:\"100%\"})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-NcSZb.framer-sud0f6, .framer-NcSZb .framer-sud0f6 { display: block; }\",\".framer-NcSZb.framer-ob6lh2 { height: 496px; overflow: hidden; position: relative; width: 780px; will-change: var(--framer-will-change-override, transform); }\",\".framer-NcSZb .framer-1ogdsf9-container { flex: none; height: 100%; left: 0px; position: absolute; top: 0px; width: 100%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 497\n * @framerIntrinsicWidth 780\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"UNGShtLIe\":\"image\",\"cYiXBxNrU\":\"hasVideo\",\"tox0Cul1b\":\"youtubeLink\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerkZap8jQub=withCSS(Component,css,\"framer-NcSZb\");export default FramerkZap8jQub;FramerkZap8jQub.displayName=\"Blog Hero Image/video\";FramerkZap8jQub.defaultProps={height:497,width:780};addPropertyControls(FramerkZap8jQub,{UNGShtLIe:{title:\"Image\",type:ControlType.ResponsiveImage},cYiXBxNrU:{defaultValue:true,title:\"Has Video\",type:ControlType.Boolean},tox0Cul1b:{defaultValue:\"\",title:\"Youtube Link\",type:ControlType.String}});addFonts(FramerkZap8jQub,[{explicitInter:true,fonts:[]},...YouTubeFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerkZap8jQub\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerVariables\":\"{\\\"UNGShtLIe\\\":\\\"image\\\",\\\"cYiXBxNrU\\\":\\\"hasVideo\\\",\\\"tox0Cul1b\\\":\\\"youtubeLink\\\"}\",\"framerIntrinsicWidth\":\"780\",\"framerIntrinsicHeight\":\"497\",\"framerAutoSizeImages\":\"true\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./kZap8jQub.map", "import{fontStore as r}from\"framer\";r.loadFonts([\"GF;Shadows Into Light-regular\"]);export const fonts=[{family:\"Shadows Into Light\",style:\"normal\",url:\"https://fonts.gstatic.com/s/shadowsintolight/v19/UqyNK9UOIntux_czAvDQx_ZcHqZXBNQDd8r4xzSMYA.woff2\",weight:\"400\"}];export const css=['.framer-QMNwJ .framer-styles-preset-z249h8:not(.rich-text-wrapper), .framer-QMNwJ .framer-styles-preset-z249h8.rich-text-wrapper h6 { --framer-font-family: \"Shadows Into Light\", sans-serif; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-52bc4939-b8e1-4efe-a7f0-16d423f364b6, #0066ff); --framer-text-decoration: none; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-QMNwJ .framer-styles-preset-z249h8:not(.rich-text-wrapper), .framer-QMNwJ .framer-styles-preset-z249h8.rich-text-wrapper h6 { --framer-font-family: \"Shadows Into Light\", sans-serif; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-52bc4939-b8e1-4efe-a7f0-16d423f364b6, #0066ff); --framer-text-decoration: none; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-QMNwJ .framer-styles-preset-z249h8:not(.rich-text-wrapper), .framer-QMNwJ .framer-styles-preset-z249h8.rich-text-wrapper h6 { --framer-font-family: \"Shadows Into Light\", sans-serif; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-52bc4939-b8e1-4efe-a7f0-16d423f364b6, #0066ff); --framer-text-decoration: none; --framer-text-transform: none; } }'];export const className=\"framer-QMNwJ\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["init_ssg_sandbox_shims", "urlRegex", "Spotify", "props", "theme", "sourceUrl", "identifier", "te", "strippedUrl", "url", "p", "addPropertyControls", "ControlType", "init_ssg_sandbox_shims", "YouTubeFonts", "getFonts", "Youtube", "serializationHash", "variantClassNames", "toResponsiveImage", "value", "transition1", "Transition", "children", "config", "re", "MotionConfigContext", "transition", "contextValue", "se", "p", "Variants", "motion", "getProps", "hasVideo", "height", "id", "image", "width", "youtubeLink", "props", "createLayoutDependency", "variants", "Component", "Y", "ref", "fallbackRef", "pe", "refBinding", "defaultLayoutId", "ae", "activeLocale", "setLocale", "useLocaleInfo", "componentViewport", "useComponentViewport", "style", "className", "layoutId", "variant", "UNGShtLIe", "cYiXBxNrU", "tox0Cul1b", "restProps", "baseVariant", "classNames", "clearLoadingGesture", "gestureHandlers", "gestureVariant", "isLoading", "setGestureState", "setVariant", "useVariantState", "variantClassNames", "layoutDependency", "scopingClassNames", "cx", "serializationHash", "LayoutGroup", "Image2", "getLoadingLazyAtYPosition", "ComponentViewportProvider", "SmartComponentScopedContainer", "Youtube", "css", "FramerkZap8jQub", "withCSS", "kZap8jQub_default", "addPropertyControls", "ControlType", "addFonts", "YouTubeFonts", "init_ssg_sandbox_shims", "fontStore", "fonts", "css", "className"]
}
