{"version":3,"file":"ShapeGenerator.3CoumobM.mjs","names":["p","useMemo"],"sources":["https:/framerusercontent.com/modules/8N2TSSJBnR5pq6WEroPB/QxBDVRqV6c9mApUJTJtE/ShapeGenerator.js"],"sourcesContent":["// Refined SVG Shape Generator - Enhanced architecture and features\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useMemo}from\"react\";const PADDING=8;const MIN_SIZE=5;function calculateBounds(points){if(points.length===0)return{minX:0,minY:0,maxX:0,maxY:0};return points.reduce((b,p)=>({minX:Math.min(b.minX,p.x),minY:Math.min(b.minY,p.y),maxX:Math.max(b.maxX,p.x),maxY:Math.max(b.maxY,p.y)}),{minX:Infinity,minY:Infinity,maxX:-Infinity,maxY:-Infinity});}function getPolygonPoints(sides,r,rot=-Math.PI/2){return Array.from({length:sides},(_,i)=>{const a=2*Math.PI*i/sides+rot;return{x:r*Math.cos(a),y:r*Math.sin(a)};});}function pointsToString(pts){return pts.map(p=>`${p.x},${p.y}`).join(\" \");}function generateShape(props){const{shapeType,points,radius,fill,stroke,strokeWidth}=props;if(shapeType===\"triangle\"||shapeType===\"pentagon\"||shapeType===\"hexagon\"){const sides=shapeType===\"triangle\"?3:shapeType===\"pentagon\"?5:6;const pts=getPolygonPoints(sides,radius);return{element:/*#__PURE__*/_jsx(\"polygon\",{points:pointsToString(pts),fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:calculateBounds(pts)};}if(shapeType===\"polygon\"){const pts=getPolygonPoints(points,radius);return{element:/*#__PURE__*/_jsx(\"polygon\",{points:pointsToString(pts),fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:calculateBounds(pts)};}if(shapeType===\"star\"||shapeType===\"roundedStar\"){const innerR=radius*props.starInnerRadius/100;const pts=[];for(let i=0;i<points*2;i++){const r=i%2===0?radius:innerR;const a=Math.PI*i/points-Math.PI/2;pts.push({x:r*Math.cos(a),y:r*Math.sin(a)});}if(shapeType===\"roundedStar\"){const roundness=props.starRoundness/100;let path=`M ${pts[0].x},${pts[0].y}`;for(let i=0;i<pts.length;i++){const curr=pts[i];const next=pts[(i+1)%pts.length];const nextNext=pts[(i+2)%pts.length];const dx1=next.x-curr.x,dy1=next.y-curr.y;const dx2=nextNext.x-next.x,dy2=nextNext.y-next.y;const cp1x=curr.x+dx1*(1-roundness),cp1y=curr.y+dy1*(1-roundness);const cp2x=next.x+dx2*roundness,cp2y=next.y+dy2*roundness;path+=` L ${cp1x},${cp1y} Q ${next.x},${next.y} ${cp2x},${cp2y}`;}path+=\" Z\";return{element:/*#__PURE__*/_jsx(\"path\",{d:path,fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:calculateBounds(pts)};}return{element:/*#__PURE__*/_jsx(\"polygon\",{points:pointsToString(pts),fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:calculateBounds(pts)};}if(shapeType===\"cog\"){const{cogTeeth,cogInnerRadius,cogToothDepth}=props;const innerR=cogInnerRadius;const tipR=radius;const baseR=radius-cogToothDepth;const pts=[];for(let i=0;i<cogTeeth;i++){const baseA=2*Math.PI*i/cogTeeth-Math.PI/2;const tw=2*Math.PI/cogTeeth/4;pts.push({x:innerR*Math.cos(baseA-tw),y:innerR*Math.sin(baseA-tw)});pts.push({x:baseR*Math.cos(baseA-tw/2),y:baseR*Math.sin(baseA-tw/2)});pts.push({x:tipR*Math.cos(baseA),y:tipR*Math.sin(baseA)});pts.push({x:baseR*Math.cos(baseA+tw/2),y:baseR*Math.sin(baseA+tw/2)});}return{element:/*#__PURE__*/_jsx(\"polygon\",{points:pointsToString(pts),fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:calculateBounds(pts)};}if(shapeType===\"circle\"){return{element:/*#__PURE__*/_jsx(\"circle\",{cx:0,cy:0,r:radius,fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:{minX:-radius,minY:-radius,maxX:radius,maxY:radius}};}if(shapeType===\"ellipse\"){const{ellipseRx,ellipseRy}=props;return{element:/*#__PURE__*/_jsx(\"ellipse\",{cx:0,cy:0,rx:ellipseRx,ry:ellipseRy,fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:{minX:-ellipseRx,minY:-ellipseRy,maxX:ellipseRx,maxY:ellipseRy}};}if(shapeType===\"rectangle\"){const{rectWidth,rectHeight,cornerRadius}=props;return{element:/*#__PURE__*/_jsx(\"rect\",{x:-rectWidth/2,y:-rectHeight/2,width:rectWidth,height:rectHeight,rx:cornerRadius,fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:{minX:-rectWidth/2,minY:-rectHeight/2,maxX:rectWidth/2,maxY:rectHeight/2}};}if(shapeType===\"cross\"){const{crossThickness,crossAspectRatio}=props;const w=radius,h=radius*crossAspectRatio,t=crossThickness/2;const pts=[{x:-t,y:-h/2},{x:t,y:-h/2},{x:t,y:-t},{x:w/2,y:-t},{x:w/2,y:t},{x:t,y:t},{x:t,y:h/2},{x:-t,y:h/2},{x:-t,y:t},{x:-w/2,y:t},{x:-w/2,y:-t},{x:-t,y:-t}];return{element:/*#__PURE__*/_jsx(\"polygon\",{points:pointsToString(pts),fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:calculateBounds(pts)};}if(shapeType===\"heart\"){const s=radius/50;const path=`M 0,${15*s} C 0,${10*s} ${-5*s},${5*s} ${-15*s},${5*s} C ${-25*s},${5*s} ${-30*s},${15*s} ${-30*s},${25*s} C ${-30*s},${40*s} 0,${55*s} 0,${55*s} C 0,${55*s} ${30*s},${40*s} ${30*s},${25*s} C ${30*s},${15*s} ${25*s},${5*s} ${15*s},${5*s} C ${5*s},${5*s} 0,${10*s} 0,${15*s} Z`;return{element:/*#__PURE__*/_jsx(\"path\",{d:path,fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:{minX:-30*s,minY:5*s,maxX:30*s,maxY:55*s}};}if(shapeType===\"diamond\"){const{diamondWidth,diamondHeight}=props;const w=diamondWidth/2,h=diamondHeight/2;const pts=[{x:0,y:-h},{x:w,y:0},{x:0,y:h},{x:-w,y:0}];return{element:/*#__PURE__*/_jsx(\"polygon\",{points:pointsToString(pts),fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:calculateBounds(pts)};}if(shapeType===\"arrow\"){const{arrowWidth,arrowHeight,arrowHeadSize,arrowShaftRatio}=props;const w=arrowWidth,h=arrowHeight,head=arrowHeadSize,shaft=h*(arrowShaftRatio/100);const pts=[{x:-w/2,y:-shaft/2},{x:w/2-head,y:-shaft/2},{x:w/2-head,y:-h/2},{x:w/2,y:0},{x:w/2-head,y:h/2},{x:w/2-head,y:shaft/2},{x:-w/2,y:shaft/2}];return{element:/*#__PURE__*/_jsx(\"polygon\",{points:pointsToString(pts),fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:calculateBounds(pts)};}if(shapeType===\"crescent\"){const{crescentThickness,crescentCurve}=props;const outer=radius,offset=crescentCurve/100*radius*.5,inner=radius-crescentThickness;const path=`M ${outer},0 A ${outer},${outer} 0 1,1 ${-outer},0 A ${outer},${outer} 0 1,1 ${outer},0 M ${inner+offset},0 A ${inner},${inner} 0 1,0 ${-inner+offset},0 A ${inner},${inner} 0 1,0 ${inner+offset},0`;return{element:/*#__PURE__*/_jsx(\"path\",{d:path,fill:fill,stroke:stroke,strokeWidth:strokeWidth,fillRule:\"evenodd\"}),bounds:{minX:-outer,minY:-outer,maxX:outer,maxY:outer}};}if(shapeType===\"ring\"){const{ringOuterRadius,ringInnerRadius}=props;return{element:/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"circle\",{cx:0,cy:0,r:ringOuterRadius,fill:fill,stroke:stroke,strokeWidth:strokeWidth}),/*#__PURE__*/_jsx(\"circle\",{cx:0,cy:0,r:ringInnerRadius,fill:\"white\"})]}),bounds:{minX:-ringOuterRadius,minY:-ringOuterRadius,maxX:ringOuterRadius,maxY:ringOuterRadius}};}return{element:/*#__PURE__*/_jsx(\"circle\",{cx:0,cy:0,r:radius,fill:fill,stroke:stroke,strokeWidth:strokeWidth}),bounds:{minX:-radius,minY:-radius,maxX:radius,maxY:radius}};}export default function ShapeGenerator(props){const{element,viewBox,width,height}=useMemo(()=>{const{element,bounds}=generateShape(props);const w=Math.max(bounds.maxX-bounds.minX+2*PADDING,MIN_SIZE);const h=Math.max(bounds.maxY-bounds.minY+2*PADDING,MIN_SIZE);const vb=`${bounds.minX-PADDING} ${bounds.minY-PADDING} ${w} ${h}`;return{element,viewBox:vb,width:w,height:h};},[props]);const svgW=props.fixedSize?Math.max(props.fixedWidth,MIN_SIZE):width;const svgH=props.fixedSize?Math.max(props.fixedHeight,MIN_SIZE):height;return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"100%\",height:\"100%\",minWidth:MIN_SIZE,minHeight:MIN_SIZE,position:\"relative\",...props.style},children:/*#__PURE__*/_jsx(\"svg\",{viewBox:viewBox,width:svgW,height:svgH,style:{display:\"block\",minWidth:MIN_SIZE,minHeight:MIN_SIZE},preserveAspectRatio:props.maintainAspectRatio?\"xMidYMid meet\":\"none\",children:element})});}addPropertyControls(ShapeGenerator,{shapeType:{type:ControlType.Enum,title:\"Shape\",options:[\"circle\",\"ellipse\",\"rectangle\",\"triangle\",\"pentagon\",\"hexagon\",\"polygon\",\"star\",\"roundedStar\",\"diamond\",\"heart\",\"arrow\",\"cross\",\"cog\",\"crescent\",\"ring\"],optionTitles:[\"Circle\",\"Ellipse\",\"Rectangle\",\"Triangle\",\"Pentagon\",\"Hexagon\",\"Polygon\",\"Star\",\"Rounded Star\",\"Diamond\",\"Heart\",\"Arrow\",\"Cross\",\"Cog\",\"Crescent\",\"Ring\"],defaultValue:\"star\"},points:{type:ControlType.Number,min:3,max:20,step:1,title:\"Sides\",defaultValue:5,hidden:({shapeType})=>![\"polygon\",\"star\",\"roundedStar\"].includes(shapeType)},radius:{type:ControlType.Number,min:10,max:200,step:1,title:\"Size\",defaultValue:80,hidden:({shapeType})=>[\"ellipse\",\"rectangle\",\"ring\"].includes(shapeType)},starInnerRadius:{type:ControlType.Number,min:20,max:90,step:1,title:\"Inner %\",defaultValue:50,hidden:({shapeType})=>![\"star\",\"roundedStar\"].includes(shapeType)},starRoundness:{type:ControlType.Number,min:0,max:100,step:1,title:\"Roundness\",defaultValue:30,hidden:({shapeType})=>shapeType!==\"roundedStar\"},cogTeeth:{type:ControlType.Number,min:3,max:32,step:1,title:\"Teeth\",defaultValue:8,hidden:({shapeType})=>shapeType!==\"cog\"},cogInnerRadius:{type:ControlType.Number,min:20,max:90,step:1,title:\"Inner R\",defaultValue:50,hidden:({shapeType})=>shapeType!==\"cog\"},cogToothDepth:{type:ControlType.Number,min:5,max:40,step:1,title:\"Depth\",defaultValue:15,hidden:({shapeType})=>shapeType!==\"cog\"},ellipseRx:{type:ControlType.Number,min:10,max:150,step:1,title:\"Width\",defaultValue:80,hidden:({shapeType})=>shapeType!==\"ellipse\"},ellipseRy:{type:ControlType.Number,min:10,max:150,step:1,title:\"Height\",defaultValue:50,hidden:({shapeType})=>shapeType!==\"ellipse\"},rectWidth:{type:ControlType.Number,min:10,max:300,step:1,title:\"Width\",defaultValue:120,hidden:({shapeType})=>shapeType!==\"rectangle\"},rectHeight:{type:ControlType.Number,min:10,max:300,step:1,title:\"Height\",defaultValue:80,hidden:({shapeType})=>shapeType!==\"rectangle\"},cornerRadius:{type:ControlType.Number,min:0,max:50,step:1,title:\"Corners\",defaultValue:8,hidden:({shapeType})=>shapeType!==\"rectangle\"},crossThickness:{type:ControlType.Number,min:5,max:50,step:1,title:\"Thickness\",defaultValue:25,hidden:({shapeType})=>shapeType!==\"cross\"},crossAspectRatio:{type:ControlType.Number,min:.5,max:2,step:.1,title:\"Aspect\",defaultValue:1,hidden:({shapeType})=>shapeType!==\"cross\"},diamondWidth:{type:ControlType.Number,min:20,max:200,step:1,title:\"Width\",defaultValue:80,hidden:({shapeType})=>shapeType!==\"diamond\"},diamondHeight:{type:ControlType.Number,min:20,max:200,step:1,title:\"Height\",defaultValue:120,hidden:({shapeType})=>shapeType!==\"diamond\"},arrowWidth:{type:ControlType.Number,min:30,max:250,step:1,title:\"Width\",defaultValue:120,hidden:({shapeType})=>shapeType!==\"arrow\"},arrowHeight:{type:ControlType.Number,min:20,max:150,step:1,title:\"Height\",defaultValue:60,hidden:({shapeType})=>shapeType!==\"arrow\"},arrowHeadSize:{type:ControlType.Number,min:10,max:100,step:1,title:\"Head\",defaultValue:35,hidden:({shapeType})=>shapeType!==\"arrow\"},arrowShaftRatio:{type:ControlType.Number,min:20,max:100,step:5,title:\"Shaft %\",defaultValue:50,hidden:({shapeType})=>shapeType!==\"arrow\"},crescentThickness:{type:ControlType.Number,min:10,max:80,step:1,title:\"Thickness\",defaultValue:30,hidden:({shapeType})=>shapeType!==\"crescent\"},crescentCurve:{type:ControlType.Number,min:0,max:100,step:1,title:\"Curve\",defaultValue:40,hidden:({shapeType})=>shapeType!==\"crescent\"},ringOuterRadius:{type:ControlType.Number,min:30,max:150,step:1,title:\"Outer R\",defaultValue:80,hidden:({shapeType})=>shapeType!==\"ring\"},ringInnerRadius:{type:ControlType.Number,min:10,max:140,step:1,title:\"Inner R\",defaultValue:50,hidden:({shapeType})=>shapeType!==\"ring\"},fill:{type:ControlType.Color,defaultValue:\"#0099FF\",title:\"Fill\"},stroke:{type:ControlType.Color,defaultValue:\"#000000\",title:\"Stroke\"},strokeWidth:{type:ControlType.Number,title:\"Stroke W\",min:0,max:10,defaultValue:2},fixedSize:{type:ControlType.Boolean,title:\"Fixed Size\",defaultValue:false},fixedWidth:{type:ControlType.Number,title:\"Width\",min:16,max:1e3,defaultValue:160,hidden:({fixedSize})=>!fixedSize},fixedHeight:{type:ControlType.Number,title:\"Height\",min:16,max:1e3,defaultValue:160,hidden:({fixedSize})=>!fixedSize},maintainAspectRatio:{type:ControlType.Boolean,title:\"Keep Aspect\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ShapeGenerator\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShapeGenerator.map"],"mappings":"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"}