{"version":3,"file":"CalcEngineFree.COxGiMpg.mjs","names":["useState","useRef","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/rIsskcll7cdB75TjK3V5/13I3wAD289pB6VY5elCX/CalcEngineFree.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useState,useEffect,useRef,useCallback,useMemo}from\"react\";// --- Utility Functions ---\nfunction accentToRGBA(accentColor,opacity){if(accentColor.startsWith(\"#\")){const hex=accentColor.slice(1);const r=parseInt(hex.slice(0,2),16);const g=parseInt(hex.slice(2,4),16);const b=parseInt(hex.slice(4,6),16);return`rgba(${r}, ${g}, ${b}, ${opacity})`;}const match=accentColor.match(/(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/);if(match){return`rgba(${match[1]}, ${match[2]}, ${match[3]}, ${opacity})`;}return`rgba(99, 102, 241, ${opacity})`;}function evaluateFormula(formula,inputs){if(!formula||!formula.trim())return 0;try{const paramNames=Object.keys(inputs);const paramValues=Object.values(inputs);const mathHelpers={round:Math.round,ceil:Math.ceil,floor:Math.floor,min:Math.min,max:Math.max,abs:Math.abs};const helperNames=Object.keys(mathHelpers);const helperValues=Object.values(mathHelpers);const fn=new Function(...paramNames,...helperNames,`\"use strict\"; return (${formula})`);const result=fn(...paramValues,...helperValues);if(typeof result!==\"number\"||!isFinite(result))return 0;return result;}catch{return 0;}}function formatResult(value,format,locale,currencyCode,decimalPlaces){const resolvedLocale=locale===\"custom\"?\"en-US\":locale;const options={minimumFractionDigits:decimalPlaces,maximumFractionDigits:decimalPlaces};if(format===\"currency\"){options.style=\"currency\";options.currency=currencyCode||\"USD\";}else if(format===\"compact\"){options.notation=\"compact\";options.compactDisplay=\"short\";}try{let formatted=new Intl.NumberFormat(resolvedLocale,options).format(value);if(format===\"percent\"){formatted=formatted+\"%\";}return formatted;}catch{return value.toFixed(decimalPlaces);}}function formatSliderValue(value,step){const decimals=step<1?String(step).split(\".\")[1]?.length||0:0;return value.toLocaleString(undefined,{minimumFractionDigits:decimals,maximumFractionDigits:decimals});}// --- Hooks ---\nfunction useAnimatedValue(target,duration,enabled){const[display,setDisplay]=useState(target);const prevRef=useRef(target);const rafRef=useRef(null);useEffect(()=>{if(!enabled){setDisplay(target);prevRef.current=target;return;}if(rafRef.current!==null){cancelAnimationFrame(rafRef.current);}const from=prevRef.current;const startTime=performance.now();const animate=now=>{const elapsed=now-startTime;const progress=Math.min(elapsed/(duration*1e3),1);const eased=1-Math.pow(1-progress,3);const current=from+(target-from)*eased;setDisplay(current);if(progress<1){rafRef.current=requestAnimationFrame(animate);}else{prevRef.current=target;rafRef.current=null;}};rafRef.current=requestAnimationFrame(animate);return()=>{if(rafRef.current!==null){cancelAnimationFrame(rafRef.current);rafRef.current=null;}prevRef.current=target;};},[target,duration,enabled]);return display;}function CalcSlider({value,min,max,step,filledColor,trackColor,onChange}){const range=max-min;const percent=range>0?(value-min)/range*100:0;return /*#__PURE__*/_jsx(\"input\",{type:\"range\",className:\"sc-calcfree-slider\",min:min,max:max,step:step,value:value,onChange:e=>onChange(Number(e.target.value)),\"aria-valuemin\":min,\"aria-valuemax\":max,\"aria-valuenow\":value,style:{width:\"100%\",height:6,appearance:\"none\",WebkitAppearance:\"none\",outline:\"none\",borderRadius:3,cursor:\"pointer\",background:`linear-gradient(to right, ${filledColor} 0%, ${filledColor} ${percent}%, ${trackColor} ${percent}%, ${trackColor} 100%)`,margin:0}});}function EditableValue({value,min,max,step,prefix,suffix,textColor,fontFamily,fontSize,textTransform,letterSpacing,onChange}){const[editing,setEditing]=useState(false);const[draft,setDraft]=useState(String(value));const inputRef=useRef(null);useEffect(()=>{if(editing&&inputRef.current){inputRef.current.select();}},[editing]);if(editing){return /*#__PURE__*/_jsx(\"input\",{ref:inputRef,type:\"number\",value:draft,min:min,max:max,step:step,onChange:e=>setDraft(e.target.value),onBlur:()=>{setEditing(false);const num=Number(draft);if(!isNaN(num)){onChange(Math.min(max,Math.max(min,num)));}},onKeyDown:e=>{if(e.key===\"Enter\")e.target.blur();if(e.key===\"Escape\"){setDraft(String(value));setEditing(false);}},style:{width:80,textAlign:\"right\",fontSize:fontSize,fontWeight:600,color:textColor,border:\"1px solid #D1D5DB\",borderRadius:6,padding:\"2px 8px\",outline:\"none\",fontVariantNumeric:\"tabular-nums\",fontFamily:fontFamily||\"inherit\",textTransform:textTransform,letterSpacing:letterSpacing,background:\"transparent\"}});}return /*#__PURE__*/_jsxs(\"span\",{onClick:()=>{setDraft(String(value));setEditing(true);},style:{fontSize:fontSize,fontWeight:600,color:textColor,cursor:\"text\",fontVariantNumeric:\"tabular-nums\",fontFamily:fontFamily||undefined,textTransform:textTransform,letterSpacing:letterSpacing,userSelect:\"none\"},title:\"Click to edit\",children:[prefix,formatSliderValue(value,step),suffix]});}// --- Main Component ---\n/**\n * @framerIntrinsicWidth 520\n * @framerIntrinsicHeight 420\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function CalcEngineFree(props){const{inputs,formula,resultLabel,resultDescription,resultFormat,currencyCode,locale,customLocale,decimalPlaces,animateResult,animationDuration,fontFamily,labelFontFamily,labelFontSize,labelTextTransform,labelLetterSpacing,valueFontFamily,valueFontSize,valueTextTransform,valueLetterSpacing,resultLabelFontFamily,resultLabelFontSize,resultDescFontFamily,resultDescFontSize,resultFontSize,accentColor,bgColor,textColor,labelColor,sliderValueColor,sliderFilledColor,sliderTrackColor,showShadow,containerPadding,inputGap,resultSpacing,borderRadius,style}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;// --- Reduced motion ---\nconst[reducedMotion,setReducedMotion]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return;const mq=window.matchMedia(\"(prefers-reduced-motion: reduce)\");setReducedMotion(mq.matches);const handler=e=>setReducedMotion(e.matches);mq.addEventListener(\"change\",handler);return()=>mq.removeEventListener(\"change\",handler);},[]);const shouldAnimate=animateResult&&!reducedMotion&&!isCanvas;// --- State management ---\nconst inputStructureKey=useMemo(()=>inputs.map(i=>`${i.variableName}:${i.defaultValue}`).join(\",\"),[inputs]);const[values,setValues]=useState(()=>{const initial={};inputs.forEach(input=>{const def=input.defaultValue??input.min??0;initial[input.variableName]=Math.min(input.max,Math.max(input.min,def));});return initial;});useEffect(()=>{const newState={};inputs.forEach(input=>{const def=input.defaultValue??input.min??0;newState[input.variableName]=Math.min(input.max,Math.max(input.min,def));});setValues(newState);},[inputStructureKey]);const updateValue=useCallback((variableName,value)=>{setValues(prev=>({...prev,[variableName]:value}));},[]);// --- Calculation ---\nconst rawResult=useMemo(()=>evaluateFormula(formula,values),[formula,values]);const animatedResult=useAnimatedValue(rawResult,animationDuration,shouldAnimate);const resolvedLocale=locale===\"custom\"?customLocale||\"en-US\":locale;const formattedResult=formatResult(shouldAnimate?animatedResult:rawResult,resultFormat,resolvedLocale,currencyCode,decimalPlaces);// --- Gradient ---\nconst resultGradient=`linear-gradient(135deg, ${accentToRGBA(accentColor,.04)}, ${accentToRGBA(accentColor,.08)})`;// --- Injected CSS ---\nconst injectedCSS=`\n.sc-calcfree-slider::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  appearance: none;\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n  background: #FFFFFF;\n  border: 2px solid var(--sc-slider-filled);\n  box-shadow: 0 1px 3px rgba(0,0,0,0.15);\n  cursor: pointer;\n  transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;\n}\n.sc-calcfree-slider::-webkit-slider-thumb:hover {\n  transform: scale(1.15);\n  box-shadow: 0 2px 6px rgba(0,0,0,0.2);\n}\n.sc-calcfree-slider::-webkit-slider-thumb:active {\n  transform: scale(1.05);\n}\n.sc-calcfree-slider::-moz-range-thumb {\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n  background: #FFFFFF;\n  border: 2px solid var(--sc-slider-filled);\n  box-shadow: 0 1px 3px rgba(0,0,0,0.15);\n  cursor: pointer;\n  transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;\n}\n.sc-calcfree-slider::-moz-range-thumb:hover {\n  transform: scale(1.15);\n  box-shadow: 0 2px 6px rgba(0,0,0,0.2);\n}\n.sc-calcfree-slider::-moz-range-track {\n  background: transparent;\n  border: none;\n}\n@media (max-width: 480px) {\n  .sc-calcfree-result-value {\n    font-size: 32px !important;\n  }\n  .sc-calcfree-container {\n    padding: 24px !important;\n  }\n}\n`;return /*#__PURE__*/_jsx(\"div\",{style:{...style,padding:16,boxSizing:\"border-box\"},children:/*#__PURE__*/_jsxs(\"div\",{className:\"sc-calcfree-container\",style:{\"--sc-accent\":accentColor,\"--sc-slider-filled\":sliderFilledColor||accentColor,background:bgColor,borderRadius:borderRadius,padding:containerPadding,boxShadow:showShadow!==false?\"0 1px 3px rgba(0,0,0,0.06), 0 8px 32px rgba(0,0,0,0.04)\":\"none\",border:\"1px solid rgba(0,0,0,0.06)\",fontFamily:fontFamily||\"-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",position:\"relative\",boxSizing:\"border-box\",width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{children:injectedCSS}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:inputGap},children:inputs.map((input,index)=>{const currentValue=values[input.variableName]??input.defaultValue??input.min??0;return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:10},children:[/*#__PURE__*/_jsx(\"label\",{style:{fontSize:labelFontSize,fontWeight:500,textTransform:labelTextTransform,letterSpacing:labelLetterSpacing,color:labelColor,fontFamily:labelFontFamily||undefined,margin:0,padding:0},children:input.label}),/*#__PURE__*/_jsx(EditableValue,{value:currentValue,min:input.min,max:input.max,step:input.step,prefix:input.unitPrefix||\"\",suffix:input.unitSuffix||\"\",textColor:sliderValueColor||textColor,fontFamily:valueFontFamily,fontSize:valueFontSize,textTransform:valueTextTransform,letterSpacing:valueLetterSpacing,onChange:v=>updateValue(input.variableName,v)})]}),/*#__PURE__*/_jsx(CalcSlider,{value:currentValue,min:input.min,max:input.max,step:input.step,filledColor:sliderFilledColor||accentColor,trackColor:sliderTrackColor||\"#E5E7EB\",onChange:v=>updateValue(input.variableName,v)})]},input.variableName||index);})}),/*#__PURE__*/_jsxs(\"div\",{className:\"sc-calcfree-result\",style:{marginTop:resultSpacing,padding:24,borderRadius:12,background:resultGradient,textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:resultLabelFontSize,fontWeight:500,color:labelColor,fontFamily:resultLabelFontFamily||undefined,marginBottom:8},children:resultLabel}),/*#__PURE__*/_jsx(\"div\",{className:\"sc-calcfree-result-value\",style:{fontSize:resultFontSize,fontWeight:700,color:accentColor,fontVariantNumeric:\"tabular-nums\",lineHeight:1.2},children:formattedResult}),resultDescription&&/*#__PURE__*/_jsx(\"div\",{style:{fontSize:resultDescFontSize,color:labelColor,fontFamily:resultDescFontFamily||undefined,marginTop:8,maxWidth:360,marginLeft:\"auto\",marginRight:\"auto\",lineHeight:1.5},children:resultDescription})]})]})});}// --- Property Controls ---\naddPropertyControls(CalcEngineFree,{// -- SECTION: INPUTS --\ninputs:{type:ControlType.Array,title:\"Calculator Inputs\",maxCount:4,control:{type:ControlType.Object,controls:{variableName:{type:ControlType.String,title:\"Variable Name\",placeholder:\"monthlySpend\",description:\"Use this name in the formula. Letters only, no spaces.\"},label:{type:ControlType.String,title:\"Label\",placeholder:\"Monthly Software Spend\"},min:{type:ControlType.Number,title:\"Min Value\",defaultValue:0},max:{type:ControlType.Number,title:\"Max Value\",defaultValue:100},step:{type:ControlType.Number,title:\"Step\",defaultValue:1,min:.01},defaultValue:{type:ControlType.Number,title:\"Default Value\",defaultValue:50},unitPrefix:{type:ControlType.String,title:\"Unit Prefix\",placeholder:\"$\",description:\"Shown before the value (e.g., $)\"},unitSuffix:{type:ControlType.String,title:\"Unit Suffix\",placeholder:\"%\",description:\"Shown after the value (e.g., %, hrs, /mo)\"}}},defaultValue:[{variableName:\"monthlySpend\",label:\"Monthly Software Spend\",min:500,max:5e4,step:500,defaultValue:5e3,unitPrefix:\"$\",unitSuffix:\"\"},{variableName:\"savingsPercent\",label:\"Expected Savings\",min:5,max:80,step:5,defaultValue:30,unitPrefix:\"\",unitSuffix:\"%\"},{variableName:\"years\",label:\"Time Period\",min:1,max:5,step:1,defaultValue:1,unitPrefix:\"\",unitSuffix:\" year(s)\"}]},// -- SECTION: FORMULA --\nformula:{type:ControlType.String,title:\"Formula\",placeholder:\"monthlySpend * (savingsPercent / 100) * years * 12\",displayTextArea:true,defaultValue:\"monthlySpend * (savingsPercent / 100) * years * 12\",description:\"JavaScript expression using input variable names. Available: round(), ceil(), floor(), min(), max(), abs()\"},// -- SECTION: RESULT --\nresultLabel:{type:ControlType.String,title:\"Result Label\",defaultValue:\"Your Projected Savings\"},resultDescription:{type:ControlType.String,title:\"Result Description\",defaultValue:\"Based on your current spend and expected efficiency gains\",displayTextArea:true},resultFormat:{type:ControlType.Enum,title:\"Number Format\",options:[\"currency\",\"decimal\",\"percent\",\"compact\"],optionTitles:[\"Currency ($1,234)\",\"Number (1,234)\",\"Percent (12%)\",\"Compact (1.2K)\"],defaultValue:\"currency\"},currencyCode:{type:ControlType.String,title:\"Currency Code\",defaultValue:\"USD\",placeholder:\"USD, EUR, GBP, JPY...\",description:\"ISO 4217 code. Common: USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, INR, BRL. Full list: en.wikipedia.org/wiki/ISO_4217\",hidden:props=>props.resultFormat!==\"currency\"},locale:{type:ControlType.Enum,title:\"Number Locale\",options:[\"en-US\",\"en-GB\",\"de-DE\",\"fr-FR\",\"ja-JP\",\"custom\"],optionTitles:[\"English (US)\",\"English (UK)\",\"German\",\"French\",\"Japanese\",\"Custom\"],defaultValue:\"en-US\"},customLocale:{type:ControlType.String,title:\"Custom Locale Code\",placeholder:\"pt-BR\",hidden:props=>props.locale!==\"custom\"},decimalPlaces:{type:ControlType.Number,title:\"Decimal Places\",defaultValue:0,min:0,max:4,step:1,displayStepper:true},// -- SECTION: ANIMATION --\nanimateResult:{type:ControlType.Boolean,title:\"Animate Result\",defaultValue:true,enabledTitle:\"Animated\",disabledTitle:\"Instant\"},animationDuration:{type:ControlType.Number,title:\"Animation Duration\",defaultValue:.6,min:.2,max:2,step:.1,unit:\"s\",hidden:props=>!props.animateResult},// -- SECTION: TYPOGRAPHY --\nfontFamily:{type:ControlType.String,title:\"Font Family\",defaultValue:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",description:\"Global CSS font-family. Per-section fonts below override this.\"},// Input Label Typography\nlabelFontFamily:{type:ControlType.String,title:\"Label Font\",defaultValue:\"\",placeholder:\"Inherit from global\",description:\"Font family for input labels. Leave empty to inherit.\"},labelFontSize:{type:ControlType.Number,title:\"Label Size\",defaultValue:12,min:8,max:24,step:1,unit:\"px\"},labelTextTransform:{type:ControlType.Enum,title:\"Label Transform\",options:[\"uppercase\",\"none\",\"lowercase\",\"capitalize\"],optionTitles:[\"UPPERCASE\",\"None\",\"lowercase\",\"Capitalize\"],defaultValue:\"uppercase\"},labelLetterSpacing:{type:ControlType.String,title:\"Label Spacing\",defaultValue:\"0.05em\",placeholder:\"0.05em\",description:\"CSS letter-spacing (e.g., 0.05em, 1px)\"},// Input Value Typography\nvalueFontFamily:{type:ControlType.String,title:\"Value Font\",defaultValue:\"\",placeholder:\"Inherit from global\",description:\"Font family for slider values. Leave empty to inherit.\"},valueFontSize:{type:ControlType.Number,title:\"Value Size\",defaultValue:14,min:10,max:28,step:1,unit:\"px\"},valueTextTransform:{type:ControlType.Enum,title:\"Value Transform\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],optionTitles:[\"None\",\"UPPERCASE\",\"lowercase\",\"Capitalize\"],defaultValue:\"none\"},valueLetterSpacing:{type:ControlType.String,title:\"Value Spacing\",defaultValue:\"0em\",placeholder:\"0em\",description:\"CSS letter-spacing (e.g., 0em, 1px)\"},// Result Typography\nresultLabelFontFamily:{type:ControlType.String,title:\"Result Label Font\",defaultValue:\"\",placeholder:\"Inherit from global\",description:\"Font family for the result label text.\"},resultLabelFontSize:{type:ControlType.Number,title:\"Result Label Size\",defaultValue:14,min:10,max:28,step:1,unit:\"px\"},resultDescFontFamily:{type:ControlType.String,title:\"Result Desc Font\",defaultValue:\"\",placeholder:\"Inherit from global\",description:\"Font family for the result description text.\"},resultDescFontSize:{type:ControlType.Number,title:\"Result Desc Size\",defaultValue:13,min:10,max:24,step:1,unit:\"px\"},resultFontSize:{type:ControlType.Number,title:\"Result Value Size\",defaultValue:40,min:16,max:72,step:2,unit:\"px\"},// -- SECTION: COLORS --\naccentColor:{type:ControlType.Color,title:\"Accent Color\",defaultValue:\"#6366F1\"},bgColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#111827\"},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#6B7280\"},sliderValueColor:{type:ControlType.Color,title:\"Slider Value Color\",defaultValue:\"#111827\",description:\"Color of the editable number next to each slider\"},sliderFilledColor:{type:ControlType.Color,title:\"Slider Filled Color\",defaultValue:\"#6366F1\",description:\"Color of the filled portion of the slider track\"},sliderTrackColor:{type:ControlType.Color,title:\"Slider Track Color\",defaultValue:\"#E5E7EB\",description:\"Color of the unfilled portion of the slider track\"},// -- SECTION: SPACING & APPEARANCE --\nshowShadow:{type:ControlType.Boolean,title:\"Drop Shadow\",defaultValue:true,enabledTitle:\"Visible\",disabledTitle:\"Hidden\"},containerPadding:{type:ControlType.Number,title:\"Container Padding\",defaultValue:32,min:8,max:64,step:4,unit:\"px\"},inputGap:{type:ControlType.Number,title:\"Input Gap\",defaultValue:24,min:8,max:48,step:4,unit:\"px\"},resultSpacing:{type:ControlType.Number,title:\"Result Spacing\",defaultValue:28,min:8,max:56,step:4,unit:\"px\",description:\"Space between inputs and result section\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:16,min:0,max:32,step:2,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CalcEngineFree\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"520\",\"framerIntrinsicHeight\":\"420\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CalcEngineFree.map"],"mappings":"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"}