PageSourceSearch

https://reenvisionos.ai/assets/CalculatorResultCard-IWh_lBGJ.js

js reenvisionos.ai collected 2026-10-05 15:11:04 UTC 16,316 bytes, 2 lines download raw bytes

1import{r as x,j as t,R as C}from"./react-vendor-CTdMSdEp.js";import{a8 as R,aE as A,F as $,j as I,aH as F,ao as M,aK as D}from"./index-B5HoNsi5.js";import{calculatorEngine as y}from"./aiCalculatorEngine-4c9Wu6LH.js";import{b as z,c as T}from"./aiCalculatorBridge-BmZ3ffXu.js";import{u as P}from"./useWindowStore-DEmY-uxf.js";import{M as N}from"./MathDisplay-BK6jH6e2.js";import{C as _}from"./calculator-MJBCYu3h.js";import{C as L}from"./copy-bYFC3aeu.js";import{V}from"./iconmap-BlwzEI8G.js";import{E as U}from"./external-link-mwmyeH7g.js";import{aQ as K,aR as B,aS as O,aT as W,aU as H,aV as G,aW as Y}from"./LineChart-22533BV9.js";import{T as Z}from"./trending-up-BJD5R10p.js";import"./create-CVbAD7xZ.js";import"./three-vendor-BaKgHtVa.js";import"./stripeService-JEbt4u71.js";import"./katex-uLN8M5ZI.js";import"./workflow-DYvm6b9E.js";import"./telescope-SC5tLA2j.js";import"./undo-2-DqHflo0f.js";import"./unlink-CJMGPnW1.js";import"./share-2-VepZwhIJ.js";import"./arrow-up-a-z-hzBigKjU.js";import"./wand-BAAVhlRW.js";import"./arrow-up-BySzIxPk.js";import"./variable-D2ecBhu5.js";import"./arrow-left-ftX7f1Vg.js";import"./arrow-right-CaoX_CU1.js";import"./undo-BFEOLlId.js";import"./snowflake-Cc-7Tmqh.js";import"./useAppStore-DjnhGBp1.js";import"./volume-x-BvKkt2W6.js";import"./bell-ring-06MD83gB.js";import"./bell-DZrZkvvW.js";import"./book-open-pD_IWqj2.js";import"./bot-BT63bIGY.js";import"./boxes-CggdQ2y8.js";import"./monitor-play-C9q-wC9f.js";import"./sun-C5ygnFJH.js";import"./building-2-DtYUYFER.js";import"./calendar-x-2-CZ6GzTt6.js";import"./calendar-DFQ1ce6z.js";import"./house-DOnEwqCX.js";import"./chart-bar-BRlKzVlu.js";import"./chart-column-B8u7MaN5.js";import"./check-GHDYPHkZ.js";import"./chevron-down-BWwfiZLg.js";import"./chevron-left-DCcmZysL.js";import"./chevron-right-CdCWW2hQ.js";import"./chevron-up-BjFF-n-m.js";import"./circle-check-big-BxGrhQut.js";import"./wand-sparkles-Cty53EqW.js";import"./circle-x-6BTvIQd_.js";import"./circle-C4Liqqg4.js";import"./clipboard-check-GLb7TzDD.js";import"./clipboard-list-B6B2Do0u.js";import"./sigma-Cnu2wtmN.js";import"./clock-CeIqQmxj.js";import"./search-x-Ccktnfle.js";import"./code-DGJV6qVk.js";import"./video-T_4B1be4.js";import"./compass-CN5GzIPm.js";import"./corner-up-left-BdF6VKft.js";import"./credit-card-Q5s85WC8.js";import"./database-CCkZXID1.js";import"./volume-2-CHVt8hpr.js";import"./dollar-sign-D5t3_nHg.js";import"./download-DXpasH91.js";import"./wifi-xFV5pW_h.js";import"./eye-off-Dhm6EhR0.js";import"./eye-Do9QGZNy.js";import"./file-audio-CECfLwnW.js";import"./file-pen-BkMUhG9d.js";import"./file-plus-2-D2d3k3eN.js";import"./file-spreadsheet-CgSoPUWL.js";import"./file-CMFrnLOT.js";import"./filter-B6AmcApK.js";import"./folder-plus-CyGRYfj-.js";import"./folder-open-nnboRlYF.js";import"./folder-D9aqRWM0.js";import"./gauge-D6iphl64.js";import"./globe-Bi_0fR97.js";import"./graduation-cap-BDL_bS6u.js";import"./grip-vertical-BRlHXh94.js";import"./hand-DfxslZof.js";import"./hard-drive-D7mEprGE.js";import"./hash-DgmWAHEu.js";import"./heart-a_LopzDC.js";import"./mail-open-D1OpdxBW.js";import"./image-plus-Ci_3H9HH.js";import"./image-Bj2X7u5w.js";import"./info-JbD6fz9f.js";import"./layers-UN7u6s07.js";import"./layout-grid-C7_cDDt2.js";import"./menu-CmsRMC4U.js";import"./link-D4K0F2Q5.js";import"./user-BVmQgwB4.js";import"./loader-B7DhXisJ.js";import"./lock-nPCeb5YN.js";import"./log-out-CujeehCq.js";import"./mail-Btljb9Uj.js";import"./zoom-out-DOy215Mt.js";import"./message-square-C48HxYsY.js";import"./mic-off-CzZOEHyY.js";import"./mic-BM0DUf0C.js";import"./minus-D0k3ca8n.js";import"./monitor-ue8mCqCR.js";import"./move-CVVOrMDp.js";import"./music-Dl7i2-dg.js";import"./package-BtkgPwjv.js";import"./palette-BcM0xOX4.js";import"./panel-right-CQgHxBnd.js";import"./panels-top-left-sxG9h9J-.js";import"./paperclip-B8ZQKniL.js";import"./repeat-CS0LFGLt.js";import"./pencil-CTYNlBgA.js";import"./phone-Dc9wGo27.js";import"./pin-BZUq2MrL.js";import"./play-CzhLvwN5.js";import"./plus-Dr-GswYD.js";import"./radio-CId5oe6G.js";import"./refresh-cw-8nPLhRCY.js";import"./reply-DrN0lNl3.js";import"./rocket-C3aE-D9l.js";import"./rotate-ccw-CzHeB9Pk.js";import"./save-CQ86CaIt.js";import"./settings-2--x1RAm68.js";import"./search-DqbR70we.js";import"./send-Blmw4Uwo.js";import"./settings-BEgZHAmw.js";import"./shield-h9K2iIME.js";import"./shopping-cart-Zsvayvz7.js";import"./sliders-horizontal-Sy44WCra.js";
1import"./utils-5f6iAujF.js";import"./clsx-B-dksMZM.js";import"./square-pen-CNvdW_R0.js";import"./star-s1a4SUdJ.js";import"./store-BsjyaXN3.js";import"./table-CFmxEiQw.js";import"./terminal-Sih0Duw8.js";import"./trash-2-Ts7woUz_.js";import"./type-BCDxUTA1.js";import"./upload-CPvKGHs5.js";import"./user-plus-BydRK6UD.js";import"./users-BFzsP9A8.js";import"./wifi-off-CUC4VFNC.js";import"./wrap-text-CDa1zykf.js";import"./wrench-BouTgHfW.js";import"./zap-DXhNNRw8.js";import"./zoom-in-BOG1uS2u.js";import"./string-CFFdVFMV.js";const q=/^Calculated:\s*(.+?)\s*=\s*(.+)$/,Q=/^(.+?\s*→\s*\S+)\s*=\s*(.+)$/,X=/^(solve\([^)]+\)):\s*(.+)$/,J=/^(mean=.+,\s*median=.+,\s*σ=.+,\s*n=\d+)$/,ee=/^Plotted\s+(.+)$/,te=/^(pv|fv|pmt|npv|irr|amortize)\(([^)]*)\)\s*=\s*(.+)$/,re=/^d\/d([a-zA-Z]\w*)\(([^)]+)\)\s*=\s*(.+)$/,ie=/^simplify\(([^)]+)\)\s*=\s*(.+)$/,se=/^integrate\(([^,]+),\s*([a-zA-Z]\w*)\s*=\s*(-?[0-9.]+)\s*\.\.\s*(-?[0-9.]+)\)\s*=\s*(.+)$/;function oe(c){const n=c.trim().split(`
2`)[0]?.trim();if(!n)return null;let e;if(e=ee.exec(n))return{kind:"plot",expression:e[1],result:"See chart below",plotExpression:e[1]};if(e=re.exec(n)){const[,i,s,o]=e;return{kind:"derivative",expression:`d/d${i}(${s})`,result:o,symbolic:{expression:s,variable:i}}}if(e=ie.exec(n)){const[,i,s]=e;return{kind:"simplify",expression:`simplify(${i})`,result:s,symbolic:{expression:i}}}if(e=se.exec(n)){const[,i,s,o,a,m]=e;return{kind:"integrate",expression:`integrate(${i}, ${s}=${o}..${a})`,result:m,symbolic:{expression:i,variable:s,min:Number(o),max:Number(a)}}}if(e=te.exec(n)){const i=e[1],s=e[2],o={kind:"finance",expression:`${i}(${s})`,result:e[3],details:{operation:i,args:s}};if(i==="amortize"){const a={};for(const m of s.split(",").map(d=>d.trim())){const[d,p]=m.split("=").map(f=>f.trim()),b=Number(p);d&&isFinite(b)&&(a[d]=b)}isFinite(a.rate)&&isFinite(a.n)&&isFinite(a.principal)&&(o.amortizationArgs={rate:a.rate,periods:a.n,principal:a.principal})}return o}if(e=X.exec(n))return{kind:"solve",expression:e[1],result:e[2]};if(e=J.exec(n)){const i={};for(const s of e[1].split(",").map(o=>o.trim())){const[o,a]=s.split("=").map(m=>m.trim());o&&a&&(i[o]=a)}return{kind:"statistics",expression:"Statistics",result:e[1],details:i}}return(e=Q.exec(n))&&n.includes("→")?{kind:"units",expression:e[1],result:e[2]}:(e=q.exec(n))?{kind:"evaluate",expression:e[1],result:e[2]}:null}const ae=6e4,h=new Set,Xr=({content:c,messageTimestamp:n})=>{const e=x.useMemo(()=>oe(c),[c]),i=P(r=>r.openWindow),s=R(r=>r.calculatorNumberFormat),o=x.useRef(!1),a=x.useMemo(()=>{if(!e)return"";const r=Number(e.result);return Number.isFinite(r)?A(r,s):e.result},[e,s]),m=x.useMemo(()=>{if(e?.kind!=="plot"||!e.plotExpression)return null;try{return y.generatePlotData(e.plotExpression,"x",-10,10,200)}catch{return null}},[e]),d=x.useMemo(()=>{if(e?.kind!=="derivative"||!e.symbolic)return null;try{const r=z(e.symbolic.expression,e.symbolic.variable??"x");return r.steps.length>0?r:null}catch{return null}},[e]),p=x.useMemo(()=>{if(e?.kind!=="finance"||!e.amortizationArgs)return null;try{const{rate:r,periods:l,principal:v}=e.amortizationArgs,g=y.amortizationSchedule(r,l,v),S=g.reduce((w,E)=>w+E.interest,0);return{schedule:g,totalInterest:S,principal:v,periods:l}}catch{return null}},[e]);if(x.useEffect(()=>{if(o.current||!e)return;const r=`${n??"na"}::${c}`;if(h.has(r)){o.current=!0;return}if(typeof n=="number"&&Date.now()-n>ae){o.current=!0,h.add(r);return}o.current=!0,h.add(r);const l=window.aiCalculatorFunctions;if(l)try{switch(e.kind){case"evaluate":l.performCalculation?.({expression:e.expression,origin:"chat"});break;case"plot":e.plotExpression&&l.plot?.({expression:e.plotExpression,origin:"chat"});break;case"derivative":e.symbolic&&l.derivative?.({expression:e.symbolic.expression,variable:e.symbolic.variable,origin:"chat"});break;case"simplify":e.symbolic&&l.simplify?.({expression:e.symbolic.expression,origin:"chat"});break;case"integrate":e.symbolic&&l.integrate?.({expression:e.symbolic.expression,variable:e.symbolic.variable,min:e.symbolic.min,max:e.symbolic.max,origin:"chat"});break}}catch{}},[e,n,c]),!e)return null;const b=()=>{navigator.clipboard.writeText(a).then(()=>I.success("Result copied"))},f=()=>{try{e.kind==="evaluate"&&T.recordUserEntry(e.expression,e.result,Number.isFinite(Number(e.result))?Number(e.result):null)}catch{}i(D)},j=()=>{const r=`<p><strong>${ne(e.expression)}</strong></p><p>Result: {{= ${e.expression} }}</p>`;i(F,{initialContent:r})},k=()=>{const r=Number(e.result),l=Number.isFinite(r)?String(r):e.result;i(M,{initialData:{A1:{value:e.expression},B1:{value:l}}})};return t.jsxs("div",{className:"mt-3 rounded-2xl border border-accent-border bg-gradient-to-br from-accent-subtle to-accent-subtle overflow-hidden",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2 px-3 py-2 border-b border-accent-border bg-accent-subtle",children:[t.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[t.jsx(_,{className:"w-4 h-4 text-accent-on-dark shrink-0"}),t.jsx("div",{className:"text-xs font-semibold text-accent-on-dark truncate",children:ce(e.kind)})]}),t.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[t.jsx("button",{onClick:b,title:"Copy result",className:"p-1 rounded text-accent-on-dark hover:text-primary hover:bg-accent-subtle transition-colors",children:t.jsx(L,{className:"w-3.5 h-3.5"})}),t.jsx("button",{onClick:j,title:"Insert in a new AI Document (with re-evaluable formula)",className:"p-1 rounded text-accent-on-dark hover:text-primary hover:bg-accent-subtle transition-colors",children:t.jsx($,{className:"w-3.5 h-3.5"})}),t.jsx("button",{onClick:k,title:"Add to a new AI Spreadsheet (expression in A1, value in B1)",className:"p-1 rounded text-accent-on-dark hover:text-primary hover:bg-accent-subtle transition-colors",children:t.jsx(V,{className:"w-3.5 h-3.5"})}),t.jsx("button",{onClick:f,title:"Open in AI Calculator",className:"p-1 rounded text-accent-on-dark hover:text-primary hover:bg-accent-subtle transition-colors",children:t.jsx(U,{className:"w-3.5 h-3.5"})})]})]}),t.jsxs("div",{className:"p-3 space-y-2",children:[t.jsx("div",{className:"text-[11px] text-accent-on-dark overflow-x-auto",children:t.jsx(N,{value:e.expression,fallbackClassName:"font-mono"})}),e.kind==="statistics"&&e.details?t.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2",children:Object.entries(e.details).map(([r,l])=>t.jsxs("div",{className:"rounded-lg bg-surface-1 border border-[var(--border-subtle)] px-2 py-1.5",children:[t.jsx("div",{className:"text-[9px] uppercase tracking-wider text-accent-on-dark",children:r}),t.jsx("div",{className:"font-mono text-sm text-primary truncate",children:l})]},r))}):e.kind==="finance"&&p?t.jsx(le,{amortization:p,headline:e.result}):e.kind==="plot"?t.jsx("div",{className:"h-40 w-full rounded-lg bg-surface-1 border border-[var(--border-subtle)] p-2",children:m&&m.length>0?t.jsx(K,{width:"100%",height:"100%",children:t.jsxs(B,{data:m,margin:{top:4,right:8,left:-24,bottom:0},children:[t.jsx(O,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.05)"}),t.jsx(W,{dataKey:"x",type:"number",domain:["dataMin","dataMax"],stroke:"rgba(255,255,255,0.3)",tick:{fill:"rgba(255,255,255,0.3)",fontSize:9}}),t.jsx(H,{stroke:"rgba(255,255,255,0.3)",tick:{fill:"rgba(255,255,255,0.3)",fontSize:9}}),t.jsx(G,{contentStyle:{background:"rgba(20,20,30,0.9)",border:"1px solid rgba(255,255,255,0.1)",borderRadius:"8px",fontSize:"11px"},itemStyle:{color:"#fff"},labelStyle:{color:"#9ca3af"}}),t.jsx(Y,{type:"monotone",dataKey:"y",stroke:"#60a5fa",strokeWidth:2,dot:!1,isAnimationActive:!1})]})}):t.jsxs("div",{className:"h-full flex items-center justify-center text-xs text-accent-on-dark gap-1",children:[t.jsx(Z,{className:"w-4 h-4"}),"Could not render plot"]})}):t.jsx("div",{className:"text-lg sm:text-xl font-bold text-primary break-all",children:t.jsx(N,{value:a,display:!0,fallbackClassName:"font-mono"})}),d&&t.jsxs("div",{className:"mt-2 pt-2 border-t border-accent-border",children:[t.jsx("div",{className:"text-[10px] uppercase tracking-wider text-accent-on-dark mb-1.5 font-semibold",children:"Step by step"}),t.jsx("ol",{className:"space-y-1.5",children:d.steps.map((r,l)=>t.jsxs("li",{className:"text-[11px] text-accent-on-dark leading-snug",children:[t.jsxs("div",{className:"font-mono text-accent-on-dark",children:[r.term," ",t.jsx("span",{className:"text-accent-on-dark",children:"→"})," ",t.jsx("span",{className:"text-primary",children:r.derivative})]}),t.jsx("div",{className:"text-accent-on-dark text-[10px] mt-0.5",children:r.rule})]},l))})]})]})]})};function ne(c){return c.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ce(c){switch(c){case"evaluate":return"AI Calculator";case"units":return"Unit Conversion";case"solve":return"Equation Solution";case"statistics":return"Statistics";case"plot":return"Function Plot";case"finance":return"Financial Calculation";case"derivative":return"Symbolic Derivative";case"simplify":return"Algebraic Simplification";case"integrate":return"Definite Integral"}}const u=c=>
2(c<0?"-":"")+"$"+Math.abs(c).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),le=({amortization:c,headline:n})=>{const[e,i]=C.useState(!1),{schedule:s,totalInterest:o,principal:a,periods:m}=c,d=e?s:s.slice(0,6);return t.jsxs("div",{className:"space-y-2",children:[t.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[t.jsxs("div",{className:"rounded-lg bg-surface-1 border border-[var(--border-subtle)] px-2 py-1.5",children:[t.jsx("div",{className:"text-[9px] uppercase tracking-wider text-accent-on-dark",children:"Principal"}),t.jsx("div",{className:"font-mono text-sm text-primary truncate",children:u(a)})]}),t.jsxs("div",{className:"rounded-lg bg-surface-1 border border-[var(--border-subtle)] px-2 py-1.5",children:[t.jsx("div",{className:"text-[9px] uppercase tracking-wider text-accent-on-dark",children:"Total Interest"}),t.jsx("div",{className:"font-mono text-sm text-status-warning truncate",children:u(o)})]}),t.jsxs("div",{className:"rounded-lg bg-surface-1 border border-[var(--border-subtle)] px-2 py-1.5",children:[t.jsx("div",{className:"text-[9px] uppercase tracking-wider text-accent-on-dark",children:"Total Paid"}),t.jsx("div",{className:"font-mono text-sm text-primary truncate",children:u(a+o)})]})]}),t.jsx("div",{className:"text-[10px] text-accent-on-dark font-mono truncate",children:n}),t.jsxs("div",{className:"rounded-lg border border-[var(--border-subtle)] overflow-hidden bg-surface-1",children:[t.jsxs("div",{className:"grid grid-cols-5 gap-1 px-2 py-1.5 text-[9px] uppercase tracking-wider text-accent-on-dark border-b border-[var(--border-subtle)] bg-surface-1",children:[t.jsx("div",{children:"#"}),t.jsx("div",{className:"text-right",children:"Payment"}),t.jsx("div",{className:"text-right",children:"Interest"}),t.jsx("div",{className:"text-right",children:"Principal"}),t.jsx("div",{className:"text-right",children:"Balance"})]}),t.jsx("div",{className:"max-h-64 overflow-y-auto",children:d.map(p=>t.jsxs("div",{className:"grid grid-cols-5 gap-1 px-2 py-1 text-[11px] font-mono text-primary border-b border-[var(--border-subtle)] last:border-b-0 hover:bg-[var(--surface-hover)]",children:[t.jsx("div",{className:"text-muted",children:p.period}),t.jsx("div",{className:"text-right",children:u(-p.payment)}),t.jsx("div",{className:"text-right text-amber-200/80",children:u(p.interest)}),t.jsx("div",{className:"text-right text-emerald-200/80",children:u(p.principal)}),t.jsx("div",{className:"text-right text-primary",children:u(p.balance)})]},p.period))})]}),s.length>6&&t.jsx("button",{onClick:()=>i(p=>!p),className:"w-full text-[11px] py-1.5 rounded-lg bg-surface-1 border border-[var(--border-subtle)] text-accent-on-dark hover:bg-[var(--surface-hover)] transition-colors",children:e?"Show first 6 only":`Show all ${m} periods`})]})};export{Xr as CalculatorResultCard,Xr as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.