{"version":3,"file":"Calc.j2G19gCh.mjs","names":["useState","useCallback","startTransition","useMemo","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/ZC3DMyjaF4psKKDyCaYi/1OdNtgHkJs8V0FLEAYL4/Calc.js"],"sourcesContent":["// Request: Optimize mobile page load/runtime performance without changing public controls, appearance, copy, or behavior.\n// MilkStraw AI Savings Calculator — Framer Code Component\n// Drop this into Framer as a code component. It handles the interactive\n// calculator + bill upload widget. Build the hero, footer, and social proof\n// sections using Framer's visual editor.\n//\n// CSV parsing works out of the box.\n// PDF parsing requires pdfjs-dist loaded from CDN (auto-attempted).\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{memo,startTransition,useState,useRef,useMemo,useCallback,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";// ─── Constants ───────────────────────────────────────────────────────────────\nconst DISCOUNT_RATES={EC2:.48,Lambda:.3,Fargate:.3,ECS:.3,RDS:.22,ElastiCache:.25,OpenSearch:.25,Redshift:.3};const SERVICES=Object.keys(DISCOUNT_RATES);const SERVICE_COLORS=[\"#b4c6d4\",\"#d4b4c6\",\"#c6c4b0\",\"#a8c4a0\",\"#c4b4d4\",\"#d4c4a0\",\"#b0c4c4\",\"#c4a0a0\"];// ─── AWS Service Mapping ─────────────────────────────────────────────────────\nconst SERVICE_PATTERNS=[{category:\"EC2\",patterns:[/elastic compute cloud/i,/\\bamazon ec2\\b/i,/\\bec2[- ]/i,/\\bcompute cloud\\b/i]},{category:\"Lambda\",patterns:[/\\baws lambda\\b/i,/^lambda\\b/i,/\\blambda\\s+USD/i,/\\blambda\\s+\\$/i]},{category:\"Fargate\",patterns:[/\\baws fargate\\b/i,/\\bfargate\\b/i]},{category:\"ECS\",patterns:[/elastic container service/i,/\\bamazon ecs\\b/i]},{category:\"RDS\",patterns:[/relational database service/i,/relational database\\b/i,/\\bamazon rds\\b/i,/\\bamazon aurora\\b/i,/^aurora\\b/i,/^rds\\b/i]},{category:\"ElastiCache\",patterns:[/\\belasticache\\b/i,/\\belasti cache\\b/i]},{category:\"OpenSearch\",patterns:[/\\bopensearch\\b/i,/\\bopen search\\b/i,/\\belasticsearch service\\b/i,/\\belasticsearch\\b/i]},{category:\"Redshift\",patterns:[/\\bamazon redshift\\b/i,/\\bredshift\\b/i]}];const RESERVATION_PATTERNS=[{category:\"EC2\",type:\"ri\",patterns:[/\\bec2.+reserved\\s+instance/i,/\\breserved\\s+instance.+ec2/i,/\\belastic compute cloud.+reserved/i]},{category:\"RDS\",type:\"ri\",patterns:[/\\brds.+reserved/i,/\\breserved.+rds/i,/\\brelational database.+reserved/i]},{category:\"ElastiCache\",type:\"ri\",patterns:[/\\belasticache.+reserved/i,/\\breserved.+elasticache/i]},{category:\"OpenSearch\",type:\"ri\",patterns:[/\\bopensearch.+reserved/i,/\\belasticsearch.+reserved/i]},{category:\"Redshift\",type:\"ri\",patterns:[/\\bredshift.+reserved/i,/\\breserved.+redshift/i]},{category:\"EC2\",type:\"sp\",patterns:[/\\bsavings\\s+plan.+compute/i,/\\bcompute.+savings\\s+plan/i,/\\bsavings\\s+plan.+ec2/i]}];function mapAwsService(rawName){for(const{patterns,category}of SERVICE_PATTERNS){for(const pattern of patterns){if(pattern.test(rawName))return category;}}return null;}function mapAwsReservation(rawName){for(const{patterns,category,type}of RESERVATION_PATTERNS){for(const pattern of patterns){if(pattern.test(rawName))return{category,type};}}return null;}// ─── CSV Parser (no external dependencies) ───────────────────────────────────\nfunction parseCSVText(text){const rows=[];let current=\"\";let inQuotes=false;let row=[];for(let i=0;i<text.length;i++){const char=text[i];const next=text[i+1];if(inQuotes){if(char==='\"'&&next==='\"'){current+='\"';i++;}else if(char==='\"'){inQuotes=false;}else{current+=char;}}else{if(char==='\"'){inQuotes=true;}else if(char===\",\"){row.push(current);current=\"\";}else if(char===\"\\n\"||char===\"\\r\"&&next===\"\\n\"){row.push(current);current=\"\";if(row.some(cell=>cell.trim()))rows.push(row);row=[];if(char===\"\\r\")i++;}else if(char===\"\\r\"){row.push(current);current=\"\";if(row.some(cell=>cell.trim()))rows.push(row);row=[];}else{current+=char;}}}row.push(current);if(row.some(cell=>cell.trim()))rows.push(row);return rows;}function detectColumns(headers){const lower=headers.map(h=>h.toLowerCase().trim());const servicePatterns=[\"service\",\"product name\",\"product\",\"productname\",\"lineitem/productcode\",\"product/productname\"];let serviceCol=-1;for(const pattern of servicePatterns){const idx=lower.findIndex(h=>h.includes(pattern));if(idx!==-1){serviceCol=idx;break;}}const costPatterns=[\"cost\",\"amount\",\"total\",\"charge\",\"unblendedcost\",\"blendedcost\",\"lineitem/unblendedcost\",\"lineitem/blendedcost\"];let costCol=-1;for(const pattern of costPatterns){const idx=lower.findIndex(h=>h.includes(pattern));if(idx!==-1){costCol=idx;break;}}if(serviceCol===-1||costCol===-1)return null;const lineItemTypeCol=lower.findIndex(h=>h.includes(\"lineitem/lineitemtype\")||h===\"lineitemtype\");const pricingTermCol=lower.findIndex(h=>h.includes(\"pricing/term\")||h===\"pricingterm\");const riArnCol=lower.findIndex(h=>h.includes(\"reservation/reservationarn\")||h.includes(\"reservationarn\"));const spArnCol=lower.findIndex(h=>h.includes(\"savingsplan/savingsplanarn\")||h.includes(\"savingsplanarn\"));return{serviceCol,costCol,lineItemTypeCol,pricingTermCol,riArnCol,spArnCol};}function parseCsvBill(csvText){const rows=parseCSVText(csvText);if(rows.length<2){throw new Error(\"CSV file appears to be empty or has no data rows.\");}const headers=rows[0];const columns=detectColumns(headers);if(!columns){throw new Error(\"Could not detect service and cost columns. Make sure your CSV has columns for service/product name and cost/amount.\");}const hasReservationColumns=columns.lineItemTypeCol!==-1||columns.pricingTermCol!==-1||columns.riArnCol!==-1||columns.spArnCol!==-1;const spendMap={};const reservedMap={};let totalBillAmount=0;for(let i=1;i<rows.length;i++){const row=rows[i];if(!row||row.length<=Math.max(columns.serviceCol,columns.costCol))continue;const rawService=row[columns.serviceCol]?.trim();const rawCost=row[columns.costCol]?.trim();if(!rawService||!rawCost)continue;const cost=parseFloat(rawCost.replace(/[^0-9.\\-]/g,\"\"));if(isNaN(cost)||cost<=0)continue;totalBillAmount+=cost;const category=mapAwsService(rawService);if(!category)continue;spendMap[category]=(spendMap[category]||0)+cost;if(hasReservationColumns){let isReserved=false;if(columns.lineItemTypeCol!==-1){const t=(row[columns.lineItemTypeCol]||\"\").trim().toLowerCase();if(t===\"discountedusage\"||t===\"savingsplancoveredusage\")isReserved=true;}if(!isReserved&&columns.pricingTermCol!==-1){const t=(row[columns.pricingTermCol]||\"\").trim().toLowerCase();if(t===\"reserved\")isReserved=true;}if(!isReserved&&columns.riArnCol!==-1){if((row[columns.riArnCol]||\"\").trim().length>0)isReserved=true;}if(!isReserved&&columns.spArnCol!==-1){if((row[columns.spArnCol]||\"\").trim().length>0)isReserved=true;}if(isReserved)reservedMap[category]=(reservedMap[category]||0)+cost;}}const services=Object.entries(spendMap).map(([service,spend])=>({service,spend:Math.round(spend*100)/100,reservedSpend:Math.round((reservedMap[service]||0)*100)/100})).sort((a,b)=>b.spend-a.spend);return{services,totalBillAmount:Math.round(totalBillAmount*100)/100};}// ─── PDF Parser (dynamic CDN import) ─────────────────────────────────────────\nfunction findAmounts(text){const matches=[...text.matchAll(/\\$\\s*([\\d,]+\\.?\\d*)/g),...text.matchAll(/USD\\s*([\\d,]+\\.?\\d*)/g)];return matches.map(m=>parseFloat(m[1].replace(/,/g,\"\"))).filter(n=>!isNaN(n)&&n>0);}async function parsePdfBill(file){let pdfjsLib;try{pdfjsLib=await import(// @ts-ignore Runtime CDN import is intentional\n/* @vite-ignore */\"https://esm.sh/pdfjs-dist@4.0.379\");pdfjsLib.GlobalWorkerOptions.workerSrc=\"https://esm.sh/pdfjs-dist@4.0.379/build/pdf.worker.mjs\";}catch{throw new Error(\"PDF parsing is not available. Please upload a CSV export instead.\");}const arrayBuffer=await file.arrayBuffer();const pdf=await pdfjsLib.getDocument({data:arrayBuffer}).promise;const allLines=[];for(let i=1;i<=pdf.numPages;i++){const page=await pdf.getPage(i);const content=await page.getTextContent();const items=content.items.filter(item=>item.str&&item.str.trim()).map(item=>({str:item.str,x:item.transform[4],y:Math.round(item.transform[5])}));const lineMap=new Map;for(const item of items){let foundY=null;for(const existingY of lineMap.keys()){if(Math.abs(existingY-item.y)<=3){foundY=existingY;break;}}const key=foundY??item.y;if(!lineMap.has(key))lineMap.set(key,[]);lineMap.get(key).push(item);}const sortedYs=[...lineMap.keys()].sort((a,b)=>b-a);for(const y of sortedYs){const lineItems=lineMap.get(y);lineItems.sort((a,b)=>a.x-b.x);const lineText=lineItems.map(it=>it.str).join(\" \");if(lineText.trim())allLines.push(lineText.trim());}}if(allLines.length===0){throw new Error(\"Could not extract text from this PDF. It may be image-based. Try a CSV export instead.\");}// Extract service costs\nconst spendMap={};let totalBillAmount=null;for(const line of allLines){if(/grand\\s+total/i.test(line)){const amounts=findAmounts(line);if(amounts.length>0)totalBillAmount=amounts[amounts.length-1];break;}}for(let i=0;i<allLines.length;i++){const line=allLines[i];const category=mapAwsService(line);if(!category||spendMap[category]!==undefined)continue;let amounts=findAmounts(line);if(amounts.length===0){for(let j=1;j<=2&&i+j<allLines.length;j++){amounts=findAmounts(allLines[i+j]);if(amounts.length>0)break;}}if(amounts.length===0)continue;spendMap[category]=amounts[0];}// Reservation pass\nconst reservedMap={};for(let i=0;i<allLines.length;i++){const line=allLines[i];const reservation=mapAwsReservation(line);if(!reservation||spendMap[reservation.category]===undefined)continue;let amounts=findAmounts(line);if(amounts.length===0){for(let j=1;j<=2&&i+j<allLines.length;j++){amounts=findAmounts(allLines[i+j]);if(amounts.length>0)break;}}if(amounts.length===0)continue;reservedMap[reservation.category]=(reservedMap[reservation.category]||0)+amounts[0];}const services=Object.entries(spendMap).map(([service,spend])=>({service,spend:Math.round(spend*100)/100,reservedSpend:Math.round(Math.min(reservedMap[service]||0,spend)*100)/100})).sort((a,b)=>b.spend-a.spend);if(services.length===0){throw new Error(\"No recognized AWS services found in this PDF. Make sure it is an AWS invoice.\");}return{services,totalBillAmount};}const PARSING_STEPS=[\"Reading your bill…\",\"Detecting services…\",\"Calculating savings…\"];function useBillParser(){const[state,setState]=useState(\"idle\");const[parsingStep,setParsingStep]=useState(0);const[error,setError]=useState(null);const[fileName,setFileName]=useState(null);const[serviceResults,setServiceResults]=useState([]);const[totalBillAmount,setTotalBillAmount]=useState(null);const goIdle=useCallback(()=>{startTransition(()=>{setState(\"idle\");setError(null);setFileName(null);setServiceResults([]);setTotalBillAmount(null);});},[]);const processFile=useCallback(async file=>{startTransition(()=>{setState(\"parsing\");setParsingStep(0);setError(null);setFileName(file.name);});// Cycle through steps for visual feedback\nconst stepTimer1=setTimeout(()=>startTransition(()=>setParsingStep(1)),600);const stepTimer2=setTimeout(()=>startTransition(()=>setParsingStep(2)),1200);const minDelay=new Promise(r=>setTimeout(r,1800));try{let parsed;if(file.name.endsWith(\".csv\")||file.type===\"text/csv\"){const text=await file.text();parsed=parseCsvBill(text);}else if(file.name.endsWith(\".pdf\")||file.type===\"application/pdf\"){parsed=await parsePdfBill(file);}else{throw new Error(\"Please upload a CSV or PDF file.\");}if(parsed.services.length===0){throw new Error(\"No recognized AWS services found. Make sure it is an AWS bill or Cost Explorer export.\");}startTransition(()=>{setTotalBillAmount(parsed.totalBillAmount);setServiceResults(parsed.services.map(({service,spend,reservedSpend})=>{const discountRate=DISCOUNT_RATES[service]||.25;const onDemandSpend=Math.round((spend-reservedSpend)*100)/100;return{service,spend,reservedSpend,onDemandSpend,discountRate,savings:Math.round(onDemandSpend*discountRate*100)/100};}));});await minDelay;clearTimeout(stepTimer1);clearTimeout(stepTimer2);startTransition(()=>setState(\"results\"));}catch(err){await minDelay;clearTimeout(stepTimer1);clearTimeout(stepTimer2);startTransition(()=>{setError(err.message||\"Failed to parse the file.\");setState(\"error\");});}},[]);const totalSpend=useMemo(()=>serviceResults.reduce((s,r)=>s+r.spend,0),[serviceResults]);const totalMonthlySavings=useMemo(()=>serviceResults.reduce((s,r)=>s+r.savings,0),[serviceResults]);const totalAnnualSavings=useMemo(()=>totalMonthlySavings*12,[totalMonthlySavings]);const totalOnDemandSpend=useMemo(()=>serviceResults.reduce((s,r)=>s+r.onDemandSpend,0),[serviceResults]);const hasReservations=useMemo(()=>serviceResults.some(r=>r.reservedSpend>0),[serviceResults]);return{state,parsingStep,error,fileName,serviceResults,totalSpend,totalBillAmount,totalMonthlySavings,totalAnnualSavings,totalOnDemandSpend,hasReservations,goIdle,processFile};}// ─── Helpers ─────────────────────────────────────────────────────────────────\n/** Convert a 6-digit hex + alpha (0-1) to an rgba() string. Avoids 8-digit hex which some renderers don't support. */function hexA(hex,alpha){const r=parseInt(hex.slice(1,3),16);const g=parseInt(hex.slice(3,5),16);const b=parseInt(hex.slice(5,7),16);return`rgba(${r},${g},${b},${alpha})`;}function fmt(n){return USD_FORMATTER.format(n);}const USD_FORMATTER=new Intl.NumberFormat(\"en-US\",{style:\"currency\",currency:\"USD\",minimumFractionDigits:0,maximumFractionDigits:0});// ─── Container Width Hook (for responsive layout) ───────────────────────────\nfunction useContainerWidth(){const ref=useRef(null);const[width,setWidth]=useState(900);useEffect(()=>{const el=ref.current;if(!el)return;if(typeof window===\"undefined\")return;if(!(\"ResizeObserver\"in window)){startTransition(()=>setWidth(el.offsetWidth));return;}const ro=new ResizeObserver(([entry])=>{startTransition(()=>setWidth(entry.contentRect.width));});ro.observe(el);startTransition(()=>setWidth(el.offsetWidth));return()=>ro.disconnect();},[]);return{ref,width};}/**\n * Build a full semantic theme from the 4 user-editable colors.\n * Derives all intermediate shades so the user only has to pick a few.\n */function buildTheme(text,muted,surface,border){// Mix helper: blend a hex color toward another by a ratio (0-1)\nconst mix=(a,b,ratio)=>{const p=(s,i)=>parseInt(s.slice(i,i+2),16);const r=Math.round(p(a,1)*(1-ratio)+p(b,1)*ratio);const g=Math.round(p(a,3)*(1-ratio)+p(b,3)*ratio);const bl=Math.round(p(a,5)*(1-ratio)+p(b,5)*ratio);return`#${r.toString(16).padStart(2,\"0\")}${g.toString(16).padStart(2,\"0\")}${bl.toString(16).padStart(2,\"0\")}`;};return{text,textStrong:mix(text,muted,.25),textMedium:mix(text,muted,.5),textMuted:muted,textSubtle:mix(muted,border,.5),border,borderLight:border,surfaceAlt:surface,inputBg:mix(surface,\"#000000\",.3),tabInactive:\"transparent\",dotted:mix(border,muted,.3),divider:border,warnBg:\"#422006\",warnBorder:\"#78350f\",warnText:\"#fbbf24\",spinBorder:mix(border,muted,.3)};}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function MilkStrawCalculator(props){const{brandColor=\"#f97316\",ctaUrl=\"https://milkstraw.ai\",textColor=\"#e8e4df\",textMutedColor=\"#6a6a6a\",surfaceColor=\"#141414\",borderColor=\"#222222\",cardRadius=14,buttonRadius=9999,cardPadding=28,headingSize=36,cardBackground=\"#141414\",secondaryColor=\"#3b82f6\",uploadLabel=\"Upload your bill\",calculateLabel=\"Estimate manually\",ctaLabel=\"Schedule a call\",showPrivacy=true,fontFamily='Geist, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif'}=props;const t=useMemo(()=>buildTheme(textColor,textMutedColor,surfaceColor,borderColor),[textColor,textMutedColor,surfaceColor,borderColor]);// Responsive\nconst{ref:containerRef,width:containerWidth}=useContainerWidth();const compact=containerWidth<640;// Tab state\nconst[activeTab,setActiveTab]=useState(\"upload\");const fileInputRef=useRef(null);// Bill parser\nconst bill=useBillParser();// Calculator state\nconst[selectedServices,setSelectedServices]=useState(new Set);const[serviceSpend,setServiceSpend]=useState({});const[hasRI,setHasRI]=useState(null);const[coverage,setCoverage]=useState(0);const[poppedPill,setPoppedPill]=useState(null);const poppedTimerRef=useRef(null);useEffect(()=>{return()=>{if(poppedTimerRef.current!==null&&typeof window!==\"undefined\"){window.clearTimeout(poppedTimerRef.current);}};},[]);const toggleService=useCallback(s=>{startTransition(()=>setPoppedPill(s));if(poppedTimerRef.current!==null&&typeof window!==\"undefined\"){window.clearTimeout(poppedTimerRef.current);}if(typeof window!==\"undefined\"){poppedTimerRef.current=window.setTimeout(()=>{startTransition(()=>setPoppedPill(null));},300);}setSelectedServices(prev=>{const next=new Set(prev);if(next.has(s)){next.delete(s);setServiceSpend(sp=>{const copy={...sp};delete copy[s];return copy;});}else{next.add(s);setServiceSpend(sp=>({...sp,[s]:0}));}return next;});},[]);const updateSpend=useCallback((s,v)=>{const num=parseFloat(v.replace(/[^0-9.]/g,\"\"));setServiceSpend(sp=>({...sp,[s]:isNaN(num)?0:num}));},[]);const breakdown=useMemo(()=>{const mult=1-coverage/100;return Array.from(selectedServices).map(service=>{const spend=serviceSpend[service]||0;const potential=spend*DISCOUNT_RATES[service];const adjusted=potential*mult;return{service,spend,adjusted};}).filter(s=>s.spend>0);},[selectedServices,serviceSpend,coverage]);const calcMonthly=useMemo(()=>breakdown.reduce((s,b)=>s+b.adjusted,0),[breakdown]);const calcAnnual=useMemo(()=>calcMonthly*12,[calcMonthly]);const selectedServicesList=useMemo(()=>Array.from(selectedServices),[selectedServices]);const openFilePicker=useCallback(()=>{fileInputRef.current?.click();},[]);const handleFile=useCallback(e=>{const file=e.target.files?.[0];if(file)bill.processFile(file);e.target.value=\"\";},[bill.processFile]);const handleUploadTab=useCallback(()=>{startTransition(()=>setActiveTab(\"upload\"));},[]);const handleCalculateTab=useCallback(()=>{startTransition(()=>setActiveTab(\"calculate\"));},[]);// ── Design tokens ──\nconst brand=brandColor;const brand2=secondaryColor;const brandLight=hexA(brandColor,.09);const cRadius=cardRadius;const bRadius=buttonRadius;const cPad=compact?Math.max(16,cardPadding-12):cardPadding;const bigNum=compact?Math.max(28,headingSize-16):headingSize;const styleSheet=useMemo(()=>`\n                @keyframes spin { to { transform: rotate(360deg) } }\n                @keyframes dash-march { to { stroke-dashoffset: -40; } }\n                @keyframes icon-float { 0%,100% { transform: translateY(0); opacity: 0.4; } 50% { transform: translateY(-4px); opacity: 0.65; } }\n                @keyframes pill-pop { 0% { transform: scale(1); } 40% { transform: scale(1.04); } 100% { transform: scale(1); } }\n                @keyframes fade-in-up { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }\n                @keyframes step-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }\n                @keyframes progress-fill { from { width: 0%; } }\n                .ms-drop-zone:hover .ms-drop-icon { animation: icon-float 2s ease-in-out infinite !important; }\n                .ms-drop-zone:hover .ms-drop-border { animation: dash-march 1.5s ease-in-out infinite !important; }\n                .ms-pill-pop { animation: pill-pop 0.2s ease-out; }\n                .ms-calc button:active, .ms-calc a:active { transform: scale(0.98); }\n                @media (prefers-reduced-motion: reduce) {\n                    .ms-calc *:not(input[type=\"range\"]) { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }\n                }\n                .ms-calc button:focus-visible, .ms-calc a:focus-visible, .ms-calc input:not([type=\"range\"]):focus-visible { outline: 2px solid ${brand}; outline-offset: 2px; }\n                .ms-calc input[type=\"range\"]:focus-visible { outline: none; }\n                .ms-calc input[type=\"range\"] { -webkit-appearance: none; appearance: none; height: 6px; border-radius: 3px; background: ${t.border}; outline: none; border: none; }\n                .ms-calc input[type=\"range\"]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: ${brand}; cursor: pointer; border: none; }\n                .ms-calc input[type=\"range\"]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: ${brand}; cursor: pointer; border: none; }\n                .ms-calc input[type=\"range\"]::-webkit-slider-runnable-track { border: none; }\n            `,[brand,t.border]);// ── Render ──\nconst maxW=compact?\"100%\":680;const bdr=`1px solid ${t.border}`;const activeBorder=activeTab===\"upload\"?brand:brand2;return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,className:\"ms-calc\",style:{fontFamily,color:t.text,display:\"flex\",flexDirection:\"column\",alignItems:\"center\",colorScheme:\"dark\"},children:[/*#__PURE__*/_jsx(\"input\",{ref:fileInputRef,type:\"file\",accept:\".csv,.pdf\",style:{display:\"none\"},onChange:handleFile}),/*#__PURE__*/_jsx(\"style\",{children:styleSheet}),activeTab===\"upload\"&&bill.state===\"results\"&&/*#__PURE__*/_jsx(BillResultsView,{bill:bill,brand:brand,brandLight:brandLight,ctaUrl:ctaUrl,ctaLabel:ctaLabel,onUploadAnother:openFilePicker,compact:compact,cRadius:cRadius,bRadius:bRadius,cPad:cPad,bigNum:bigNum,cardBackground:cardBackground,showPrivacy:showPrivacy,t:t}),!(activeTab===\"upload\"&&bill.state===\"results\")&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",width:maxW,position:\"relative\"},children:[/*#__PURE__*/_jsx(\"button\",{onClick:handleUploadTab,style:{flex:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,padding:compact?\"10px 0\":\"14px 0\",fontSize:compact?13:15,fontWeight:500,cursor:\"pointer\",background:activeTab===\"upload\"?t.surfaceAlt:\"transparent\",color:activeTab===\"upload\"?brand:t.textMuted,border:activeTab===\"upload\"?`1px solid ${brand}`:`1px solid ${t.border}`,borderBottom:activeTab===\"upload\"?\"none\":`1px solid ${activeBorder}`,borderRadius:`${cRadius}px ${cRadius}px 0 0`,position:\"relative\",zIndex:activeTab===\"upload\"?2:1,marginBottom:activeTab===\"upload\"?-1:0,transition:\"background 0.2s, color 0.2s, border-color 0.2s\"},children:uploadLabel}),/*#__PURE__*/_jsx(\"button\",{onClick:handleCalculateTab,style:{flex:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,padding:compact?\"10px 0\":\"14px 0\",fontSize:compact?13:15,fontWeight:500,cursor:\"pointer\",background:activeTab===\"calculate\"?t.surfaceAlt:\"transparent\",color:activeTab===\"calculate\"?brand2:t.textMuted,border:activeTab===\"calculate\"?`1px solid ${brand2}`:`1px solid ${t.border}`,borderBottom:activeTab===\"calculate\"?\"none\":`1px solid ${activeBorder}`,borderRadius:`${cRadius}px ${cRadius}px 0 0`,position:\"relative\",zIndex:activeTab===\"calculate\"?2:1,marginBottom:activeTab===\"calculate\"?-1:0,transition:\"background 0.2s, color 0.2s, border-color 0.2s\"},children:calculateLabel})]}),/*#__PURE__*/_jsxs(\"div\",{style:{width:maxW,border:`1px solid ${activeBorder}`,borderRadius:`0 0 ${cRadius}px ${cRadius}px`,padding:compact?\"24px 20px\":\"36px 32px\",position:\"relative\",zIndex:1,transition:\"border-color 0.2s\"},children:[activeTab===\"upload\"&&bill.state===\"idle\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"ms-drop-zone\",role:\"button\",tabIndex:0,onClick:openFilePicker,onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();openFilePicker();}},style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:compact?12:16,padding:compact?\"28px 16px\":\"40px 20px\",cursor:\"pointer\",position:\"relative\"},children:[/*#__PURE__*/_jsx(\"svg\",{className:\"ms-drop-border\",style:{position:\"absolute\",inset:compact?8:12,pointerEvents:\"none\"},preserveAspectRatio:\"none\",children:/*#__PURE__*/_jsx(\"rect\",{x:\"1\",y:\"1\",width:\"calc(100% - 2px)\",height:\"calc(100% - 2px)\",rx:cRadius-4,ry:cRadius-4,fill:\"none\",stroke:t.dotted,strokeWidth:\"1.5\",strokeDasharray:\"8 6\"})}),/*#__PURE__*/_jsx(\"div\",{className:\"ms-drop-icon\",style:{opacity:.4,transition:\"opacity 0.3s\"},children:/*#__PURE__*/_jsxs(\"svg\",{width:compact?32:40,height:compact?32:40,viewBox:\"0 0 24 24\",fill:\"none\",stroke:t.textMuted,strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"17 8 12 3 7 8\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"3\",x2:\"12\",y2:\"15\"})]})}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:4,textAlign:\"center\"},children:/*#__PURE__*/_jsxs(\"span\",{style:{fontSize:compact?14:15,fontWeight:500,color:t.textMuted},children:[\"Drop your AWS bill here, or\",\" \",/*#__PURE__*/_jsx(\"span\",{style:{color:brand},children:\"browse to upload\"})]})}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:compact?12:13,color:t.textSubtle,textAlign:\"center\"},children:\"Supports CSV and PDF invoices\"})]}),activeTab===\"upload\"&&bill.state===\"parsing\"&&/*#__PURE__*/_jsxs(\"div\",{role:\"status\",\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:compact?16:24,padding:compact?\"32px 0\":\"48px 0\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:compact?28:36,height:compact?28:36,border:`3px solid ${t.spinBorder}`,borderTopColor:brand,borderRadius:\"50%\",animation:\"spin 0.8s linear infinite\"}}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:15,color:t.textMedium,fontWeight:500,animation:\"step-fade 0.25s ease-out\"},children:PARSING_STEPS[bill.parsingStep]},bill.parsingStep),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",maxWidth:240,height:3,borderRadius:2,background:t.border,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:{height:\"100%\",borderRadius:2,background:brand,width:`${(bill.parsingStep+1)/PARSING_STEPS.length*100}%`,transition:\"width 0.4s ease-out\",animation:bill.parsingStep===0?\"progress-fill 0.4s ease-out\":undefined}})}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:6},children:PARSING_STEPS.map((_,i)=>/*#__PURE__*/_jsx(\"div\",{style:{width:6,height:6,borderRadius:\"50%\",background:i<=bill.parsingStep?brand:t.border,transition:\"background 0.3s ease-out\"}},i))})]}),activeTab===\"upload\"&&bill.state===\"error\"&&/*#__PURE__*/_jsxs(\"div\",{role:\"alert\",style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:16,padding:\"32px 0\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:14,fontWeight:500,color:t.textStrong},children:\"Something went wrong\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:14,color:t.textMuted,textAlign:\"center\"},children:bill.error}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:12},children:[/*#__PURE__*/_jsx(\"button\",{onClick:openFilePicker,style:{padding:\"10px 24px\",borderRadius:cRadius,fontSize:14,fontWeight:600,background:brand,color:\"#0a0a0a\",border:\"none\",cursor:\"pointer\"},children:\"Try again\"}),/*#__PURE__*/_jsx(\"button\",{onClick:bill.goIdle,style:{padding:\"10px 12px\",fontSize:14,fontWeight:500,background:\"none\",color:t.textSubtle,border:\"none\",cursor:\"pointer\"},children:\"Dismiss\"})]})]}),activeTab===\"calculate\"&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:compact?24:36},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:16},children:[/*#__PURE__*/_jsx(StepLabel,{n:1,text:\"Which services do you use?\",brand:brand,textColor:t.text}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8},children:SERVICES.map(s=>{const sel=selectedServices.has(s);return /*#__PURE__*/_jsx(\"button\",{\"aria-pressed\":sel,className:poppedPill===s?\"ms-pill-pop\":undefined,onClick:()=>toggleService(s),style:{padding:compact?\"8px 12px\":\"10px 18px\",borderRadius:cRadius,fontSize:compact?12:13,fontWeight:500,border:sel?`1px solid ${brand}`:bdr,background:sel?hexA(brand,.07):\"transparent\",color:sel?brand:t.textMuted,cursor:\"pointer\",transition:\"background 0.2s, color 0.2s\"},children:s},s);})})]}),selectedServices.size>0&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:16},children:[/*#__PURE__*/_jsx(StepLabel,{n:2,text:\"Monthly spend per service\",brand:brand,textColor:t.text}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:10},children:selectedServicesList.map(s=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:compact?8:12},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:compact?13:14,fontWeight:500,color:t.textMuted,width:compact?70:100,flexShrink:0},children:s}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,display:\"flex\",alignItems:\"center\",padding:compact?\"8px 10px\":\"10px 14px\",background:hexA(t.border,.13),border:bdr,borderRadius:cRadius},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:compact?13:14,color:t.textSubtle},children:\"$\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",inputMode:\"numeric\",name:`spend-${s}`,\"aria-label\":`Monthly spend for ${s}`,autoComplete:\"off\",placeholder:\"0\",value:serviceSpend[s]||\"\",onChange:e=>updateSpend(s,e.target.value),style:{background:\"transparent\",border:\"none\",outline:\"none\",fontSize:compact?13:14,color:t.text,marginLeft:4,width:\"100%\",fontFamily:\"inherit\"}})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,color:t.textSubtle},children:\"/mo\"})]},s))})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:16},children:[/*#__PURE__*/_jsx(StepLabel,{n:selectedServices.size>0?3:2,text:\"Do you have Reserved Instances or Savings Plans?\",brand:brand,textColor:t.text}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:8},children:[\"Yes\",\"No\",\"Not sure\"].map(opt=>{const sel=hasRI===opt;return /*#__PURE__*/_jsx(\"button\",{onClick:()=>startTransition(()=>setHasRI(opt)),style:{padding:compact?\"8px 16px\":\"10px 24px\",borderRadius:cRadius,fontSize:compact?13:14,fontWeight:500,border:sel?`1px solid ${brand}`:bdr,background:sel?hexA(brand,.07):\"transparent\",color:sel?brand:t.textMuted,cursor:\"pointer\",transition:\"background 0.2s, color 0.2s\"},children:opt},opt);})})]}),hasRI===\"Yes\"&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:16},children:[/*#__PURE__*/_jsx(StepLabel,{n:selectedServices.size>0?4:3,text:\"What's your current coverage?\",brand:brand,textColor:t.text}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"input\",{type:\"range\",\"aria-label\":\"Coverage percentage\",min:0,max:100,step:5,value:coverage,onChange:e=>startTransition(()=>setCoverage(Number(e.target.value))),style:{width:\"100%\",accentColor:brand}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8},children:[/*#__PURE__*/_jsxs(\"span\",{style:{fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:14,fontWeight:500,color:brand},children:[coverage,\"%\"]}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:13,color:t.textSubtle},children:\"of your infrastructure is covered\"})]})]})]})]})]}),activeTab===\"calculate\"&&calcMonthly>0&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:compact?\"column\":\"row\",alignItems:compact?\"stretch\":\"center\",gap:compact?16:40,width:maxW,padding:compact?\"20px 20px\":\"32px\",marginTop:24,borderRadius:cRadius,border:`1px solid ${hexA(brand,.2)}`,background:hexA(brand,.04)},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:compact?16:40,flex:1},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4,flex:1},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:compact?12:13,fontWeight:500,color:t.textMuted},children:\"Monthly savings\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:compact?24:bigNum,fontWeight:700,color:brand,lineHeight:1.1,letterSpacing:\"-0.02em\"},children:fmt(calcMonthly)})]}),/*#__PURE__*/_jsx(\"div\",{style:{width:1,height:40,background:t.border,flexShrink:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4,flex:1},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:compact?12:13,fontWeight:500,color:t.textMuted},children:\"Annual savings\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:compact?24:bigNum,fontWeight:700,color:t.text,lineHeight:1.1,letterSpacing:\"-0.02em\"},children:fmt(calcAnnual)})]})]}),/*#__PURE__*/_jsx(\"a\",{href:ctaUrl,target:\"_blank\",rel:\"noopener noreferrer\",style:{padding:compact?\"12px 24px\":\"12px 24px\",borderRadius:cRadius,fontSize:14,fontWeight:600,background:brand,color:\"#0a0a0a\",textDecoration:\"none\",whiteSpace:\"nowrap\",textAlign:\"center\"},children:ctaLabel})]}),showPrivacy&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:6,marginTop:16,padding:compact?\"0 8px\":0},children:[/*#__PURE__*/_jsxs(\"svg\",{\"aria-hidden\":\"true\",width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:t.textSubtle,strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{flexShrink:0},children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"11\",width:\"18\",height:\"11\",rx:\"2\",ry:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M7 11V7a5 5 0 0 1 10 0v4\"})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:compact?11:12,color:t.textSubtle},children:\"Processed entirely in your browser. Your data never leaves this device.\"})]})]})]});}// ─── Sub-components ──────────────────────────────────────────────────────────\nconst StepLabel=/*#__PURE__*/memo(function StepLabel({n,text,brand,textColor}){return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-start\",gap:10},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:24,height:24,minWidth:24,minHeight:24,borderRadius:\"50%\",background:brand,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0,marginTop:1},children:/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,fontWeight:600,color:\"#fff\"},children:n})}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:14,fontWeight:600,color:textColor,lineHeight:1.4},children:text})]});});const BillResultsView=/*#__PURE__*/memo(function BillResultsView({bill,brand,brandLight,ctaUrl,ctaLabel,onUploadAnother,compact,cRadius,bRadius,cPad,bigNum,cardBackground,showPrivacy,t}){const tPad=compact?\"8px 14px\":\"10px 24px\";const tFont=compact?13:14;const colW=compact?80:120;// Stagger helper: each block gets a delay offset (in ms)\nconst stagger=index=>({animation:`fade-in-up 0.25s ease-out ${index*40}ms both`});// Count reservation notice for stagger offset\nconst riOffset=bill.hasReservations?1:0;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:compact?20:32,width:\"100%\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{textAlign:\"center\",...stagger(0)},children:[/*#__PURE__*/_jsx(\"h2\",{style:{fontSize:compact?20:24,fontWeight:700,color:t.text,margin:0},children:\"Your savings breakdown\"}),/*#__PURE__*/_jsxs(\"p\",{style:{fontSize:tFont,color:t.textMuted,margin:\"8px 0 0\"},children:[\"Based on\",\" \",/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:500,color:t.textMedium},children:bill.fileName})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:compact?\"column\":\"row\",gap:compact?12:16,width:\"100%\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,background:cardBackground,border:`1px solid ${t.borderLight}`,borderRadius:cRadius,padding:compact?\"16px 20px\":\"24px 28px\",...stagger(1)},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:13,color:t.textSubtle,textTransform:\"uppercase\",letterSpacing:\"0.04em\",fontWeight:500},children:\"Current spend\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:compact?28:bigNum,fontWeight:700,color:t.text,lineHeight:1.1,marginTop:8},children:fmt(bill.totalBillAmount??bill.totalSpend)}),bill.hasReservations&&/*#__PURE__*/_jsxs(\"span\",{style:{fontSize:12,color:t.textSubtle,marginTop:6,display:\"block\"},children:[fmt(bill.totalOnDemandSpend),\" on-demand\"]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,background:cardBackground,border:`1px solid ${t.borderLight}`,borderRadius:cRadius,padding:compact?\"16px 20px\":\"24px 28px\",...stagger(2)},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:13,color:t.textSubtle,textTransform:\"uppercase\",letterSpacing:\"0.04em\",fontWeight:500},children:\"Monthly savings\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:compact?28:bigNum,fontWeight:700,color:brand,lineHeight:1.1,marginTop:8},children:fmt(bill.totalMonthlySavings)})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,background:cardBackground,border:`1px solid ${hexA(brand,.27)}`,borderRadius:cRadius,padding:compact?\"16px 20px\":\"24px 28px\",...stagger(3)},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:13,color:brand,textTransform:\"uppercase\",letterSpacing:\"0.04em\",fontWeight:500},children:\"Annual savings\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:compact?28:bigNum,fontWeight:700,color:brand,lineHeight:1.1,marginTop:8},children:fmt(bill.totalAnnualSavings)})]})]}),bill.hasReservations&&/*#__PURE__*/_jsx(\"div\",{style:{background:t.warnBg,border:`1px solid ${t.warnBorder}`,borderRadius:cRadius,padding:compact?\"12px 14px\":\"14px 20px\",fontSize:compact?13:14,color:t.warnText,lineHeight:1.6,width:\"100%\",...stagger(4)},children:\"We detected existing Reserved Instances or Savings Plans and adjusted savings accordingly.\"}),/*#__PURE__*/_jsxs(\"div\",{style:{background:cardBackground,border:`1px solid ${t.borderLight}`,borderRadius:cRadius,overflow:\"hidden\",width:\"100%\",...stagger(4+riOffset)},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",padding:tPad,borderBottom:`1px solid ${t.borderLight}`,background:t.surfaceAlt},children:[/*#__PURE__*/_jsx(\"span\",{style:{flex:1,fontSize:compact?11:12,fontWeight:600,color:t.textSubtle,textTransform:\"uppercase\",letterSpacing:\"0.05em\"},children:\"Service\"}),/*#__PURE__*/_jsx(\"span\",{style:{width:colW,textAlign:\"right\",fontSize:compact?11:12,fontWeight:600,color:t.textSubtle,textTransform:\"uppercase\",letterSpacing:\"0.05em\"},children:\"Spend\"}),!compact&&/*#__PURE__*/_jsx(\"span\",{style:{width:colW,textAlign:\"right\",fontSize:compact?11:12,fontWeight:600,color:t.textSubtle,textTransform:\"uppercase\",letterSpacing:\"0.05em\"},children:bill.hasReservations?\"Coverage\":\"Rate\"}),/*#__PURE__*/_jsx(\"span\",{style:{width:colW,textAlign:\"right\",fontSize:compact?11:12,fontWeight:600,color:t.textSubtle,textTransform:\"uppercase\",letterSpacing:\"0.05em\"},children:\"Savings\"})]}),bill.serviceResults.map((item,i)=>{const coverage=item.spend>0?Math.round(item.reservedSpend/item.spend*100):0;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",padding:tPad,borderBottom:`1px solid ${t.surfaceAlt}`,animation:`fade-in-up 0.2s ease-out ${(5+riOffset+i)*40}ms both`},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,display:\"flex\",alignItems:\"center\",gap:compact?6:10,minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:compact?8:10,height:compact?8:10,borderRadius:\"50%\",background:SERVICE_COLORS[i%8],flexShrink:0}}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:tFont,fontWeight:500,color:t.textStrong,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:item.service})]}),/*#__PURE__*/_jsx(\"span\",{style:{width:colW,textAlign:\"right\",fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:tFont,color:t.textMedium},children:fmt(item.spend)}),!compact&&/*#__PURE__*/_jsx(\"span\",{style:{width:colW,textAlign:\"right\",fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:tFont,color:bill.hasReservations&&coverage>0?t.warnText:t.textSubtle},children:bill.hasReservations?coverage>0?`${coverage}% RI`:\"On-demand\":`${Math.round(item.discountRate*100)}%`}),/*#__PURE__*/_jsx(\"span\",{style:{width:colW,textAlign:\"right\",fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:tFont,fontWeight:500,color:brand},children:fmt(item.savings)})]},item.service);}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",padding:tPad,borderTop:`1px solid ${t.borderLight}`,background:t.surfaceAlt,animation:`fade-in-up 0.2s ease-out ${(5+riOffset+bill.serviceResults.length)*40}ms both`},children:[/*#__PURE__*/_jsx(\"span\",{style:{flex:1,fontSize:tFont,fontWeight:600,color:t.text},children:\"Total\"}),/*#__PURE__*/_jsx(\"span\",{style:{width:colW,textAlign:\"right\",fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:tFont,fontWeight:600,color:t.text},children:fmt(bill.totalSpend)}),!compact&&/*#__PURE__*/_jsx(\"span\",{style:{width:colW}}),/*#__PURE__*/_jsx(\"span\",{style:{width:colW,textAlign:\"right\",fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\",fontSize:tFont,fontWeight:700,color:brand},children:fmt(bill.totalMonthlySavings)})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:compact?\"column\":\"row\",alignItems:compact?\"stretch\":\"center\",justifyContent:\"center\",gap:12,width:compact?\"100%\":undefined,animation:`fade-in-up 0.25s ease-out ${(6+riOffset+bill.serviceResults.length)*40}ms both`},children:[/*#__PURE__*/_jsx(\"a\",{href:ctaUrl,target:\"_blank\",rel:\"noopener noreferrer\",style:{padding:compact?\"12px 24px\":\"14px 32px\",borderRadius:bRadius,fontSize:compact?14:15,fontWeight:600,background:brand,color:\"#0a0a0a\",textDecoration:\"none\",textAlign:\"center\"},children:ctaLabel}),/*#__PURE__*/_jsx(\"button\",{onClick:onUploadAnother,style:{padding:compact?\"12px 24px\":\"14px 32px\",borderRadius:bRadius,fontSize:compact?14:15,fontWeight:500,background:\"transparent\",color:t.text,border:`1px solid ${t.border}`,cursor:\"pointer\",textAlign:\"center\"},children:\"Upload another bill\"})]}),showPrivacy&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:6,animation:`fade-in-up 0.25s ease-out ${(7+riOffset+bill.serviceResults.length)*40}ms both`},children:[/*#__PURE__*/_jsxs(\"svg\",{\"aria-hidden\":\"true\",width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:t.textSubtle,strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"11\",width:\"18\",height:\"11\",rx:\"2\",ry:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M7 11V7a5 5 0 0 1 10 0v4\"})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,color:t.textSubtle},children:\"Processed entirely in your browser. Your data never leaves this device.\"})]})]});});// ─── Framer Property Controls ────────────────────────────────────────────────\naddPropertyControls(MilkStrawCalculator,{// ── Colors ──\nbrandColor:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#f97316\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#e8e4df\"},textMutedColor:{type:ControlType.Color,title:\"Text Muted\",defaultValue:\"#6a6a6a\"},surfaceColor:{type:ControlType.Color,title:\"Surface\",defaultValue:\"#141414\"},borderColor:{type:ControlType.Color,title:\"Borders\",defaultValue:\"#222222\"},cardBackground:{type:ControlType.Color,title:\"Card Fill\",defaultValue:\"#141414\"},secondaryColor:{type:ControlType.Color,title:\"Secondary\",defaultValue:\"#3b82f6\"},// ── Layout ──\ncardRadius:{type:ControlType.Number,title:\"Card Radius\",defaultValue:14,min:0,max:32,step:2},buttonRadius:{type:ControlType.Number,title:\"Button Radius\",defaultValue:9999,min:0,max:9999,step:2},cardPadding:{type:ControlType.Number,title:\"Padding\",defaultValue:28,min:8,max:48,step:4},headingSize:{type:ControlType.Number,title:\"Big Numbers\",defaultValue:36,min:24,max:72,step:2},// ── Labels ──\nctaUrl:{type:ControlType.String,title:\"CTA Link\",defaultValue:\"https://milkstraw.ai\"},ctaLabel:{type:ControlType.String,title:\"CTA Label\",defaultValue:\"Schedule a call\"},uploadLabel:{type:ControlType.String,title:\"Upload Tab\",defaultValue:\"Upload your bill\"},calculateLabel:{type:ControlType.String,title:\"Calculate Tab\",defaultValue:\"Estimate manually\"},showPrivacy:{type:ControlType.Boolean,title:\"Privacy Note\",defaultValue:true},fontFamily:{type:ControlType.String,title:\"Font\",defaultValue:'Geist, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif'}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MilkStrawCalculator\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Calc.map"],"mappings":"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"}