{"version":3,"file":"shared-lib.KICCro7m.mjs","names":["_Fragment","useRef","useState","useId"],"sources":["https:/framerusercontent.com/modules/tisq4T9cl68O88e6QtPg/Ohq63Hw59XGBOuUlgQLe/BadgeOverride.js","https:/framerusercontent.com/modules/GrOC2EtNQqzERasB6Jr7/I7Jb8Mm21tod2xaCtAbg/Photocard.js","https:/framerusercontent.com/modules/cF6WGT6yZS6fdA1U2DoR/2QzA6Ceh5Ijr30PBarQM/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";export function withoutFramerBadge(Component){return props=>{return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                        #__framer-badge-container {\n                            display: none !important;\n                        }\n                    `}),/*#__PURE__*/_jsx(Component,{...props})]});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withoutFramerBadge\":{\"type\":\"reactHoc\",\"name\":\"withoutFramerBadge\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BadgeOverride.map","// PhotoClip.tsx — Framer code component\n//\n// A portrait photograph styled as a physical print:\n//  • Transparent component background — the card floats on whatever\n//    section it sits in.\n//  • White print border around a portrait image (4:5 by default), with a\n//    slightly deeper bottom margin like a real photo print.\n//  • Soft shadow cast underneath (offset down, wide + low opacity).\n//  • The whole card is rotated slightly counter-clockwise.\n//  • A silver metallic gem paperclip at the top-right. It is drawn as a\n//    single continuous wire, split into two layers:\n//        – the OUTER loop renders BEHIND the card\n//        – the INNER loop renders IN FRONT of the card\n//    so the photo genuinely sits inside the clip's jaws. The clip\n//    extends above the top edge, so it overlaps the photo, the white\n//    margin, and the empty space above the card.\n//\n// Sizing: set the component's width to roughly 15–20% of your section\n// width in Framer. Everything (clip size, border, radius, shadow) scales\n// from the measured card width, so it stays proportional at any size.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useId,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";// —— Paperclip wire geometry (viewBox units) ——\n// One continuous gem-clip wire, split at the bottom bend.\nconst CLIP_VB_W=60;const CLIP_VB_H=165;const CLIP_RATIO=CLIP_VB_H/CLIP_VB_W// 2.75\n;// Inner loop — the half that sits IN FRONT of the photo\nconst WIRE_FRONT=\"M20,124 V44 A10,10 0 0 1 40,44 V139 A16,16 0 0 1 24,155\";// Outer loop — the half that passes BEHIND the photo\nconst WIRE_BACK=\"M24,155 A16,16 0 0 1 8,139 V32 A22,22 0 0 1 52,32 V109\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 230\n * @framerDisableUnlink\n */export default function PhotoClip(props){const{image,scale,align,aspect,rotation,border,bottomBorder,radius,shadowStrength,showClip,clipSize,clipInset,clipRise,clipRotation,style}=props;const wrapRef=useRef(null);const[w,setW]=useState(0);const uid=useId().replace(/:/g,\"\");// Measure so every detail scales with the card, not the viewport\nuseEffect(()=>{const el=wrapRef.current;if(!el)return;const measure=()=>setW(el.getBoundingClientRect().width);measure();const ro=new ResizeObserver(measure);ro.observe(el);return()=>ro.disconnect();},[]);const pad=w*(border/100);const padBottom=w*(bottomBorder/100);const r=w*(radius/100);const clipW=w*(clipSize/100);const clipH=clipW*CLIP_RATIO;const clipRight=w*(clipInset/100);const clipTop=-clipH*(clipRise/100);const clipBoxStyle={position:\"absolute\",width:clipW,height:clipH,right:clipRight,top:clipTop,transform:`rotate(${clipRotation}deg)`,transformOrigin:\"50% 30%\",pointerEvents:\"none\"};const s=shadowStrength/100;return /*#__PURE__*/_jsx(\"div\",{style:{...style,width:\"100%\",background:\"transparent\",position:\"relative\",display:\"flex\",justifyContent:align===\"left\"?\"flex-start\":align===\"right\"?\"flex-end\":\"center\"},children:/*#__PURE__*/_jsx(\"div\",{ref:wrapRef,style:{width:`${scale}%`,position:\"relative\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",transform:`rotate(${rotation}deg)`,transformOrigin:\"50% 50%\"},children:[showClip&&w>0&&/*#__PURE__*/_jsx(\"div\",{style:{...clipBoxStyle,zIndex:0},children:/*#__PURE__*/_jsx(ClipSvg,{path:WIRE_BACK,uid:`${uid}b`,back:true})}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",zIndex:1,background:\"#FFFFFF\",padding:`${pad}px ${pad}px ${padBottom}px`,borderRadius:r,boxShadow:`\n                            0 ${w*.012}px ${w*.03}px rgba(16,18,20,${.1*s}),\n                            0 ${w*.07}px ${w*.13}px -${w*.05}px rgba(16,18,20,${.28*s}),\n                            0 ${w*.16}px ${w*.26}px -${w*.1}px rgba(16,18,20,${.18*s})\n                        `},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",aspectRatio:String(aspect),overflow:\"hidden\",borderRadius:Math.max(0,r-pad*.4),background:\"#E7E5E1\"},children:[image?.src?/*#__PURE__*/_jsx(\"img\",{src:image.src,srcSet:image.srcSet,alt:image.alt||\"\",draggable:false,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",userSelect:\"none\"}}):null,/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,borderRadius:\"inherit\",boxShadow:\"inset 0 0 0 1px rgba(0,0,0,0.06)\",pointerEvents:\"none\"}})]})}),showClip&&w>0&&/*#__PURE__*/_jsx(\"div\",{style:{...clipBoxStyle,zIndex:2},children:/*#__PURE__*/_jsx(ClipSvg,{path:WIRE_FRONT,uid:`${uid}f`})})]})})});}// —— One half of the wire, with a brushed-metal gradient along its length ——\nfunction ClipSvg({path,uid,back=false}){return /*#__PURE__*/_jsxs(\"svg\",{viewBox:`0 0 ${CLIP_VB_W} ${CLIP_VB_H}`,width:\"100%\",height:\"100%\",fill:\"none\",style:{display:\"block\",overflow:\"visible\",filter:back?\"none\":\"drop-shadow(0.6px 1.6px 1.6px rgba(20,22,25,0.32))\"},children:[/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"linearGradient\",{id:`metal-${uid}`,x1:\"0\",y1:\"0.15\",x2:\"1\",y2:\"0.85\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:\"#FCFDFD\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"14%\",stopColor:\"#C4C9CF\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"30%\",stopColor:\"#F3F5F7\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"48%\",stopColor:\"#A3A8AF\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"64%\",stopColor:\"#EAEDF0\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"82%\",stopColor:\"#B2B7BE\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:\"#8A8F96\"})]})}),/*#__PURE__*/_jsx(\"path\",{d:path,stroke:\"rgba(20,22,25,0.22)\",strokeWidth:\"7.6\",strokeLinecap:\"round\",transform:\"translate(0.5 1.1)\"}),/*#__PURE__*/_jsx(\"path\",{d:path,stroke:`url(#metal-${uid})`,strokeWidth:\"7\",strokeLinecap:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:path,stroke:\"rgba(255,255,255,0.72)\",strokeWidth:\"1.9\",strokeLinecap:\"round\",transform:\"translate(-1.5 -1.5)\",opacity:back?.5:.85})]});}addPropertyControls(PhotoClip,{image:{type:ControlType.ResponsiveImage,title:\"Photo\"},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:100,min:10,max:100,step:1,unit:\"%\",description:\"Resizes the whole card inside its frame. Every preset scales with it.\"},align:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,defaultValue:\"center\",description:\"Where the card sits when scaled below 100%\"},aspect:{type:ControlType.Number,title:\"Aspect\",defaultValue:.8,min:.5,max:1.2,step:.01,description:\"0.8 = 4:5 \\xb7 0.75 = 3:4 \\xb7 0.71 = 5:7\"},rotation:{type:ControlType.Number,title:\"Rotation\",defaultValue:-3.5,min:-15,max:15,step:.5,unit:\"\\xb0\",description:\"Negative = counter-clockwise\"},border:{type:ControlType.Number,title:\"Border\",defaultValue:6,min:0,max:18,step:.5,unit:\"%\"},bottomBorder:{type:ControlType.Number,title:\"Bottom\",defaultValue:8,min:0,max:30,step:.5,unit:\"%\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:1.5,min:0,max:8,step:.25,unit:\"%\"},shadowStrength:{type:ControlType.Number,title:\"Shadow\",defaultValue:100,min:0,max:200,step:5,unit:\"%\"},showClip:{type:ControlType.Boolean,title:\"Paperclip\",defaultValue:true},clipSize:{type:ControlType.Number,title:\"Clip Size\",defaultValue:19,min:8,max:40,step:.5,unit:\"%\",hidden:p=>!p.showClip},clipInset:{type:ControlType.Number,title:\"Clip Inset\",defaultValue:11,min:-10,max:60,step:1,unit:\"%\",description:\"Distance from the right edge\",hidden:p=>!p.showClip},clipRise:{type:ControlType.Number,title:\"Clip Rise\",defaultValue:30,min:0,max:60,step:1,unit:\"%\",description:\"How much pokes above the top edge\",hidden:p=>!p.showClip},clipRotation:{type:ControlType.Number,title:\"Clip Tilt\",defaultValue:7,min:-30,max:30,step:1,unit:\"\\xb0\",hidden:p=>!p.showClip}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PhotoClip\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"230\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Photocard.map","// Generated by Framer (99770fa)\nexport default function metadata(params,activeLocale){return{description:\"I’m Fisolami (popularly called Prima),  a Software Designer that research and design great products and websites. \\n\",favicon:\"https://framerusercontent.com/assets/HXIVxM1Mp6wCbTwBEWRLzOY.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/FNfUUDAicGAN8mJunTH3149aVM.png\",title:\"Abiola Fisolami Portfolio\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}