{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/cEQx7fFpP4WkdmD08MRj/bIfxFMy8rHJDT7gFrWF5/Fiber_splitting_calc.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 500\n * @framerIntrinsicHeight 800\n */export default function FiberBundleCalculator(props){// Main inputs\nconst[centerDiameterInput,setCenterDiameterInput]=useState(\"25\");const[fiberDiameterInput,setFiberDiameterInput]=useState(\"0.125\");const[packingEfficiencyInput,setPackingEfficiencyInput]=useState(\"0.7\");const[numSectionsInput,setNumSectionsInput]=useState(\"3\");// Calculated values\nconst[totalFibers,setTotalFibers]=useState(0);const[sectionDistribution,setSectionDistribution]=useState([]);// Canvas ref for drawing\nconst canvasRef=useRef(null);// State for section inputs - dynamically created\nconst[sectionInputs,setSectionInputs]=useState([]);// Zoom state\nconst[zoomLevel,setZoomLevel]=useState(1);const[isDragging,setIsDragging]=useState(false);const[dragStart,setDragStart]=useState({x:0,y:0});const[viewOffset,setViewOffset]=useState({x:0,y:0});// Errors\nconst[errors,setErrors]=useState({});// Saved calculations\nconst[savedCalculations,setSavedCalculations]=useState([]);// Generate section inputs when number of sections changes\nuseEffect(()=>{const numSections=parseInt(numSectionsInput)||0;if(numSections>0&&numSections<=12){// Create initial distribution evenly\nconst initialDistribution=Array(numSections).fill(0).map(()=>Math.floor(totalFibers/numSections));// Set section input fields\nsetSectionInputs(Array(numSections).fill(0).map((_,i)=>({value:initialDistribution[i].toString(),percentage:(100/numSections).toFixed(1)})));// Update the actual distribution\nsetSectionDistribution(initialDistribution);}else{setSectionInputs([]);setSectionDistribution([]);}},[numSectionsInput,totalFibers]);// Calculate total fibers when inputs change\nuseEffect(()=>{try{const centerDiameter=parseFloat(centerDiameterInput);const fiberDiameter=parseFloat(fiberDiameterInput);const packingEfficiency=parseFloat(packingEfficiencyInput);let newErrors={};// Validate inputs\nif(isNaN(centerDiameter)||centerDiameter<=0){newErrors.centerDiameter=\"Must be positive\";}if(isNaN(fiberDiameter)||fiberDiameter<=0){newErrors.fiberDiameter=\"Must be positive\";}if(isNaN(packingEfficiency)||packingEfficiency<=0||packingEfficiency>.95){newErrors.packingEfficiency=\"Must be between 0 and 0.95\";}setErrors(newErrors);// If no errors, calculate total fibers\nif(Object.keys(newErrors).length===0){// Calculate area\nconst centerArea=Math.PI*Math.pow(centerDiameter/2,2);const fiberArea=Math.PI*Math.pow(fiberDiameter/2,2);// Calculate max fibers (applying packing efficiency)\nconst maxFibers=Math.floor(centerArea*packingEfficiency/fiberArea);setTotalFibers(maxFibers);}}catch(error){console.error(\"Calculation error:\",error);}},[centerDiameterInput,fiberDiameterInput,packingEfficiencyInput]);// Draw the visualization\nuseEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");const width=canvas.width;const height=canvas.height;// Clear canvas\nctx.clearRect(0,0,width,height);// Apply zoom and pan transformations\nctx.save();ctx.translate(width/2+viewOffset.x,height/2+viewOffset.y);ctx.scale(zoomLevel,zoomLevel);ctx.translate(-width/2,-height/2);// Center coordinates\nconst centerX=width/2;const centerY=height/2;// Calculate center circle radius (based on canvas size)\nconst centerRadius=Math.min(width,height)*.3;// Draw center circle\nctx.beginPath();ctx.arc(centerX,centerY,centerRadius,0,2*Math.PI);ctx.fillStyle=props.centerCircleColor;ctx.fill();ctx.strokeStyle=\"rgba(255,255,255,0.5)\";ctx.lineWidth=2;ctx.stroke();// Draw total fibers text\nctx.font=\"bold 16px Arial\";ctx.fillStyle=props.textColor;ctx.textAlign=\"center\";ctx.fillText(`${totalFibers} Fibers`,centerX,centerY);// Draw section slices if we have sections\nif(sectionDistribution.length>0&&totalFibers>0){const totalUsedFibers=sectionDistribution.reduce((sum,val)=>sum+val,0);// Colors for sections\nconst sectionColors=[\"#FF5252\",\"#FF4081\",\"#E040FB\",\"#7C4DFF\",\"#536DFE\",\"#448AFF\",\"#40C4FF\",\"#18FFFF\",\"#64FFDA\",\"#69F0AE\",\"#B2FF59\",\"#EEFF41\"];// Start angle\nlet startAngle=0;// Draw each section\nsectionDistribution.forEach((fibers,index)=>{if(fibers<=0||totalUsedFibers<=0)return;const percentage=fibers/totalUsedFibers;const endAngle=startAngle+percentage*2*Math.PI;// Draw section slice\nctx.beginPath();ctx.moveTo(centerX,centerY);ctx.arc(centerX,centerY,centerRadius,startAngle,endAngle);ctx.closePath();ctx.fillStyle=sectionColors[index%sectionColors.length];ctx.fill();ctx.strokeStyle=\"rgba(255,255,255,0.5)\";ctx.stroke();// Draw section label at middle angle of the slice\nconst midAngle=startAngle+(endAngle-startAngle)/2;const labelRadius=centerRadius*.7;const labelX=centerX+labelRadius*Math.cos(midAngle);const labelY=centerY+labelRadius*Math.sin(midAngle);ctx.font=\"bold 14px Arial\";ctx.fillStyle=\"white\";ctx.textAlign=\"center\";ctx.fillText(fibers.toString(),labelX,labelY);// Update start angle for next slice\nstartAngle=endAngle;});// Draw section connections (output lines)\nstartAngle=0;sectionDistribution.forEach((fibers,index)=>{if(fibers<=0||totalUsedFibers<=0)return;const percentage=fibers/totalUsedFibers;const midAngle=startAngle+percentage*Math.PI;// Calculate line points\nconst innerX=centerX+centerRadius*Math.cos(midAngle);const innerY=centerY+centerRadius*Math.sin(midAngle);const outerX=centerX+centerRadius*1.8*Math.cos(midAngle);const outerY=centerY+centerRadius*1.8*Math.sin(midAngle);// Draw line\nctx.beginPath();ctx.moveTo(innerX,innerY);ctx.lineTo(outerX,outerY);ctx.strokeStyle=sectionColors[index%sectionColors.length];ctx.lineWidth=Math.max(1,Math.sqrt(fibers)/2);ctx.stroke();// Draw output box\nconst boxSize=Math.max(40,Math.sqrt(fibers)*3);ctx.fillStyle=sectionColors[index%sectionColors.length];ctx.fillRect(outerX-boxSize/2,outerY-boxSize/2,boxSize,boxSize);// Draw fiber count in output box\nctx.font=\"bold 14px Arial\";ctx.fillStyle=\"white\";ctx.textAlign=\"center\";ctx.fillText(`${fibers}`,outerX,outerY+5);ctx.font=\"12px Arial\";ctx.fillText(`Section ${index+1}`,outerX,outerY-boxSize/2-5);// Update start angle\nstartAngle+=percentage*2*Math.PI;});}// Restore the canvas context\nctx.restore();},[totalFibers,sectionDistribution,zoomLevel,viewOffset,props.centerCircleColor,props.textColor]);// Handle section input changes\nconst handleSectionInputChange=(index,value)=>{try{// Update the specific section input\nconst newSectionInputs=[...sectionInputs];newSectionInputs[index]={...newSectionInputs[index],value:value};setSectionInputs(newSectionInputs);// Calculate the actual distribution\nconst newDistribution=newSectionInputs.map(section=>parseInt(section.value)||0);// Update percentages\nconst total=newDistribution.reduce((sum,val)=>sum+val,0);const updatedSectionInputs=newSectionInputs.map((section,i)=>({...section,percentage:total>0?(newDistribution[i]/total*100).toFixed(1):\"0.0\"}));setSectionInputs(updatedSectionInputs);setSectionDistribution(newDistribution);}catch(error){console.error(\"Error updating section:\",error);}};// Handle zoom controls\nconst handleZoomIn=()=>{setZoomLevel(prev=>Math.min(prev+.2,3));};const handleZoomOut=()=>{setZoomLevel(prev=>Math.max(prev-.2,.5));};const handleResetView=()=>{setZoomLevel(1);setViewOffset({x:0,y:0});};// Mouse event handlers for drag and pan\nconst handleMouseDown=e=>{const canvas=canvasRef.current;if(!canvas)return;const rect=canvas.getBoundingClientRect();const x=e.clientX-rect.left;const y=e.clientY-rect.top;setIsDragging(true);setDragStart({x,y});};const handleMouseMove=e=>{if(!isDragging)return;const canvas=canvasRef.current;if(!canvas)return;const rect=canvas.getBoundingClientRect();const x=e.clientX-rect.left;const y=e.clientY-rect.top;const dx=x-dragStart.x;const dy=y-dragStart.y;setViewOffset(prev=>({x:prev.x+dx,y:prev.y+dy}));setDragStart({x,y});};const handleMouseUp=()=>{setIsDragging(false);};const handleMouseLeave=()=>{setIsDragging(false);};// Handle reset\nconst handleReset=()=>{setCenterDiameterInput(\"25\");setFiberDiameterInput(\"0.125\");setPackingEfficiencyInput(\"0.7\");setNumSectionsInput(\"3\");setErrors({});handleResetView();};// Handle even distribution\nconst handleDistributeEvenly=()=>{const numSections=parseInt(numSectionsInput)||0;if(numSections<=0)return;const perSection=Math.floor(totalFibers/numSections);const remainder=totalFibers%numSections;const newDistribution=Array(numSections).fill(perSection);// Distribute remainder\nfor(let i=0;i<remainder;i++){newDistribution[i]++;}// Update section inputs\nconst newSectionInputs=newDistribution.map(value=>({value:value.toString(),percentage:(value/totalFibers*100).toFixed(1)}));setSectionInputs(newSectionInputs);setSectionDistribution(newDistribution);};// Save calculation\nconst handleSave=()=>{const newSavedCalc={centerDiameter:centerDiameterInput,fiberDiameter:fiberDiameterInput,packingEfficiency:packingEfficiencyInput,totalFibers,sections:numSectionsInput,distribution:[...sectionDistribution]};setSavedCalculations([...savedCalculations,newSavedCalc]);};// Handle wheel event for zooming\nconst handleWheel=e=>{e.preventDefault();const delta=Math.sign(e.deltaY)*-.1;setZoomLevel(prev=>Math.min(Math.max(prev+delta,.5),3));};// Styling\nconst containerStyle={fontFamily:\"Arial, sans-serif\",padding:\"20px\",backgroundColor:props.backgroundColor,color:props.textColor,borderRadius:`${props.borderRadius}px`,boxShadow:\"0 4px 6px rgba(0,0,0,0.1)\",width:\"100%\",display:\"flex\",flexDirection:\"column\",gap:\"15px\"};const inputStyle={width:\"100%\",padding:\"8px\",backgroundColor:props.inputBackgroundColor,color:props.textColor,border:\"none\",borderRadius:\"4px\",fontSize:\"14px\"};const labelStyle={color:props.labelColor,fontSize:\"14px\",marginBottom:\"4px\"};const buttonStyle={padding:\"10px\",backgroundColor:props.buttonColor,color:props.buttonTextColor,border:\"none\",borderRadius:\"4px\",cursor:\"pointer\",fontSize:\"14px\"};const resultStyle={width:\"100%\",padding:\"10px\",backgroundColor:props.resultBackgroundColor,borderRadius:\"4px\",textAlign:\"center\",fontWeight:\"bold\"};const gridStyle={display:\"grid\",gridTemplateColumns:\"repeat(auto-fill, minmax(150px, 1fr))\",gap:\"10px\"};const canvasContainerStyle={width:\"100%\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",marginTop:\"10px\",marginBottom:\"10px\"};const zoomControlsStyle={display:\"flex\",gap:\"10px\",marginTop:\"10px\",justifyContent:\"center\"};const zoomButtonStyle={padding:\"5px 10px\",backgroundColor:props.secondaryButtonColor,color:props.buttonTextColor,border:\"none\",borderRadius:\"4px\",cursor:\"pointer\",fontSize:\"14px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"40px\",height:\"40px\"};return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[/*#__PURE__*/_jsx(\"h2\",{style:{color:props.textColor,marginBottom:\"10px\",textAlign:\"center\"},children:props.title}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"h3\",{style:{color:props.textColor},children:\"Bundle Parameters\"}),/*#__PURE__*/_jsxs(\"div\",{style:gridStyle,children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{style:labelStyle,children:\"Center Diameter (mm):\"}),/*#__PURE__*/_jsx(\"input\",{type:\"number\",value:centerDiameterInput,onChange:e=>setCenterDiameterInput(e.target.value),style:{...inputStyle,borderColor:errors.centerDiameter?\"red\":\"transparent\"}}),errors.centerDiameter&&/*#__PURE__*/_jsx(\"div\",{style:{color:\"red\",fontSize:\"12px\"},children:errors.centerDiameter})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{style:labelStyle,children:\"Fiber Diameter (mm):\"}),/*#__PURE__*/_jsx(\"input\",{type:\"number\",value:fiberDiameterInput,onChange:e=>setFiberDiameterInput(e.target.value),style:{...inputStyle,borderColor:errors.fiberDiameter?\"red\":\"transparent\"}}),errors.fiberDiameter&&/*#__PURE__*/_jsx(\"div\",{style:{color:\"red\",fontSize:\"12px\"},children:errors.fiberDiameter})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{style:labelStyle,children:\"Packing Efficiency:\"}),/*#__PURE__*/_jsx(\"input\",{type:\"number\",min:\"0\",max:\"0.95\",step:\"0.01\",value:packingEfficiencyInput,onChange:e=>setPackingEfficiencyInput(e.target.value),style:{...inputStyle,borderColor:errors.packingEfficiency?\"red\":\"transparent\"}}),errors.packingEfficiency&&/*#__PURE__*/_jsx(\"div\",{style:{color:\"red\",fontSize:\"12px\"},children:errors.packingEfficiency})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{style:labelStyle,children:\"Number of Sections:\"}),/*#__PURE__*/_jsx(\"select\",{value:numSectionsInput,onChange:e=>setNumSectionsInput(e.target.value),style:inputStyle,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(num=>/*#__PURE__*/_jsx(\"option\",{value:num,children:num},num))})]})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:resultStyle,children:[\"Total Possible Fibers: \",totalFibers]}),/*#__PURE__*/_jsxs(\"div\",{style:canvasContainerStyle,children:[/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,width:400,height:400,style:{background:props.canvasBackground,borderRadius:\"4px\",cursor:isDragging?\"grabbing\":\"grab\"},onMouseDown:handleMouseDown,onMouseMove:handleMouseMove,onMouseUp:handleMouseUp,onMouseLeave:handleMouseLeave,onWheel:handleWheel}),/*#__PURE__*/_jsxs(\"div\",{style:zoomControlsStyle,children:[/*#__PURE__*/_jsx(\"button\",{onClick:handleZoomOut,style:zoomButtonStyle,title:\"Zoom Out\",children:\"\u2212\"}),/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"5px 10px\",backgroundColor:props.inputBackgroundColor,borderRadius:\"4px\",minWidth:\"80px\",textAlign:\"center\"},children:[Math.round(zoomLevel*100),\"%\"]}),/*#__PURE__*/_jsx(\"button\",{onClick:handleZoomIn,style:zoomButtonStyle,title:\"Zoom In\",children:\"+\"}),/*#__PURE__*/_jsx(\"button\",{onClick:handleResetView,style:{...zoomButtonStyle,width:\"auto\",padding:\"5px 10px\"},title:\"Reset View\",children:\"Reset View\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{marginTop:\"5px\",fontSize:\"12px\",color:props.labelColor,textAlign:\"center\"},children:\"Tip: Drag to pan, scroll to zoom\"})]}),sectionInputs.length>0&&/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{color:props.textColor},children:\"Section Distribution\"}),/*#__PURE__*/_jsx(\"button\",{onClick:handleDistributeEvenly,style:{...buttonStyle,backgroundColor:props.secondaryButtonColor},children:\"Distribute Evenly\"})]}),/*#__PURE__*/_jsx(\"div\",{style:gridStyle,children:sectionInputs.map((section,index)=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"label\",{style:labelStyle,children:[\"Section \",index+1,\": (\",section.percentage,\"%)\"]}),/*#__PURE__*/_jsx(\"input\",{type:\"number\",min:\"0\",value:section.value,onChange:e=>handleSectionInputChange(index,e.target.value),style:inputStyle})]},index))})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:\"10px\",marginTop:\"10px\"},children:[/*#__PURE__*/_jsx(\"button\",{onClick:handleReset,style:{...buttonStyle,backgroundColor:props.secondaryButtonColor,flex:1},children:\"Reset\"}),/*#__PURE__*/_jsx(\"button\",{onClick:handleSave,style:{...buttonStyle,flex:1},children:\"Save Calculation\"})]}),savedCalculations.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:\"20px\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{color:props.textColor},children:\"Saved Calculations\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"10px\"},children:savedCalculations.map((calc,index)=>/*#__PURE__*/_jsxs(\"div\",{style:{backgroundColor:props.resultBackgroundColor,padding:\"10px\",borderRadius:\"4px\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{fontWeight:\"bold\"},children:[\"Calculation #\",index+1]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Center Diameter: \",calc.centerDiameter,\" mm\"]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Fiber Diameter: \",calc.fiberDiameter,\" mm\"]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Total Fibers: \",calc.totalFibers]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Sections: \",calc.sections]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Distribution: \",calc.distribution.join(\", \")]})]},index))})]})]});}FiberBundleCalculator.displayName=\"Fiber Bundle Calculator\";addPropertyControls(FiberBundleCalculator,{title:{type:ControlType.String,title:\"Calculator Title\",defaultValue:\"Fiber Bundle Distribution Calculator\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"#1E1E2E\"},inputBackgroundColor:{type:ControlType.Color,title:\"Input Background\",defaultValue:\"#2D2B55\"},resultBackgroundColor:{type:ControlType.Color,title:\"Result Background\",defaultValue:\"#2D2B55\"},canvasBackground:{type:ControlType.Color,title:\"Canvas Background\",defaultValue:\"#252540\"},centerCircleColor:{type:ControlType.Color,title:\"Center Circle Color\",defaultValue:\"#1E1E2E\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#FFFFFF\"},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#A6A6A6\"},buttonColor:{type:ControlType.Color,title:\"Button Color\",defaultValue:\"#7E57C2\"},secondaryButtonColor:{type:ControlType.Color,title:\"Secondary Button Color\",defaultValue:\"#4A4A4A\"},buttonTextColor:{type:ControlType.Color,title:\"Button Text Color\",defaultValue:\"#FFFFFF\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:8,min:0,max:20,step:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FiberBundleCalculator\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicHeight\":\"800\",\"framerIntrinsicWidth\":\"500\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Fiber_splitting_calc.map"],
  "mappings": "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",
  "names": ["init_ssg_sandbox_shims", "FiberBundleCalculator", "props", "centerDiameterInput", "setCenterDiameterInput", "ye", "fiberDiameterInput", "setFiberDiameterInput", "packingEfficiencyInput", "setPackingEfficiencyInput", "numSectionsInput", "setNumSectionsInput", "totalFibers", "setTotalFibers", "sectionDistribution", "setSectionDistribution", "canvasRef", "pe", "sectionInputs", "setSectionInputs", "zoomLevel", "setZoomLevel", "isDragging", "setIsDragging", "dragStart", "setDragStart", "viewOffset", "setViewOffset", "errors", "setErrors", "savedCalculations", "setSavedCalculations", "ue", "numSections", "initialDistribution", "_", "i", "centerDiameter", "fiberDiameter", "packingEfficiency", "newErrors", "centerArea", "fiberArea", "maxFibers", "error", "canvas", "ctx", "width", "height", "centerX", "centerY", "centerRadius", "totalUsedFibers", "sum", "val", "sectionColors", "startAngle", "fibers", "index", "percentage", "endAngle", "midAngle", "labelRadius", "labelX", "labelY", "innerX", "innerY", "outerX", "outerY", "boxSize", "handleSectionInputChange", "value", "newSectionInputs", "newDistribution", "section", "total", "updatedSectionInputs", "handleZoomIn", "prev", "handleZoomOut", "handleResetView", "handleMouseDown", "e", "rect", "x", "y", "handleMouseMove", "dx", "dy", "handleMouseUp", "handleMouseLeave", "handleReset", "handleDistributeEvenly", "perSection", "remainder", "handleSave", "newSavedCalc", "handleWheel", "delta", "containerStyle", "inputStyle", "labelStyle", "buttonStyle", "resultStyle", "gridStyle", "canvasContainerStyle", "zoomControlsStyle", "zoomButtonStyle", "u", "p", "num", "calc", "addPropertyControls", "ControlType"]
}
