1"use strict";(self.webpackChunkfrontend_v1=self.webpackChunkfrontend_v1||[]).push([[8823],{5886:(e,s,a)=>{a.d(s,{v4:()=>r,lq:()=>c,I8:()=>o,Ay:()=>d});var n=a(9950),t=a(228),l=a(4152),i=a(4414);const o=e=>{let{status:s,title:a,message:n,details:t,actions:o,className:c=""}=e;return(0,i.jsxs)(l.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:`tool-result ${s} ${c}`,children:[(0,i.jsxs)("div",{className:"result-header",children:[(0,i.jsx)("span",{className:"result-icon",children:(()=>{switch(s){case"success":return"\u2705";case"warning":return"\u26a0\ufe0f";case"error":return"\u274c";case"info":return"\u2139\ufe0f";default:return"\ud83d\udcca"}})()}),(0,i.jsx)("h4",{className:"result-title",children:a})]}),n&&(0,i.jsx)("p",{className:"result-message",children:n}),t&&(0,i.jsx)("div",{className:"result-details",children:t}),o&&o.length>0&&(0,i.jsx)("div",{className:"result-actions",children:o.map((e,s)=>(0,i.jsxs)("button",{className:`result-action-btn ${e.variant||"primary"}`,onClick:e.onClick,children:[e.icon&&(0,i.jsx)("span",{className:"action-icon",children:e.icon}),e.label]},s))})]})},c=e=>{let{message:s="Processing..."}=e;return(0,i.jsxs)("div",{className:"tool-loading",children:[(0,i.jsx)("div",{className:"loading-spinner"}),(0,i.jsx)("p",{className:"loading-message",children:s})]})},r=e=>{let{error:s,onRetry:a}=e;return(0,i.jsxs)("div",{className:"tool-error",children:[(0,i.jsx)("span",{className:"error-icon",children:"\u274c"}),(0,i.jsx)("p",{className:"error-message",children:s}),a&&(0,i.jsx)("button",{className:"retry-btn",onClick:a,children:"Try Again"})]})},d=e=>{let{toolName:s,toolIcon:a,toolDescription:o,onComplete:c,onClose:r,children:d,className:m="",showHeader:h=!0}=e;const[u,p]=(0,n.useState)(!1),[x,N]=(0,n.useState)(!1);return(0,i.jsx)(t.N,{children:!x&&(0,i.jsxs)(l.P.div,{initial:{opacity:0,y:20,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-20,scale:.95},transition:{duration:.3},className:`chat-tool-container ${m} ${u?"minimized":""}`,children:[h&&(0,i.jsxs)("div",{className:"chat-tool-header",children:[(0,i.jsxs)("div",{className:"tool-info",children:[(0,i.jsx)("span",{className:"tool-icon",children:a}),(0,i.jsxs)("div",{className:"tool-text",children:[(0,i.jsx)("h3",{className:"tool-name",children:s}),(0,i.jsx)("p",{className:"tool-description",children:o})]})]}),(0,i.jsxs)("div",{className:"tool-controls",children:[(0,i.jsx)("button",{className:"tool-control-btn minimize-btn",onClick:()=>p(!u),title:u?"Expand":"Minimize",children:u?"\u25bc":"\u25b2"}),(0,i.jsx)("button",{className:"tool-control-btn close-btn",onClick:()=>{N(!0),setTimeout(()=>{r&&r()},300)},title:"Close tool",children:"\u2715"})]})]}),(0,i.jsx)(t.N,{children:!u&&(0,i.jsx)(l.P.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"chat-tool-content",children:n.cloneElement(d,{onComplete:e=>{c&&c(e),setTimeout(()=>{window.dispatchEvent(new CustomEvent("toolCompleted",{detail:{result:e,toolName:s}}))},100)}})})})]})})}},8823:(e,s,a)=>{a.r(s),a.d(s,{default:()=>o});var n=a(9950),t=a(5886),l=a(2875),i=a(4414);const o=e=>{let{onComplete:s,onClose:a}=e;const[o,c]=(0,n.useState)(""),[r,d]=(0,n.useState)(!1),[m,h]=(0,n.useState)(null),[u,p]=(0,n.useState)(null),x=async()=>{const e=(e=>{const s=e.replace(/\D/g,"");return s.length>=3?s.slice(0,3):null})(o);if(e){d(!0),p(null);try{await new Promise(e=>setTimeout(e,1500));const a=["315","712","641","712","515"].includes(e),n={phoneNumber:o,areaCode:e,location:N(e),riskLevel:a?"high":Math.random()<.3?"medium":"low",scamReports:Math.floor(100*Math.random()),recommendation:a?"Block this number":"Exercise normal caution"};h(n),s({type:"phone_check",data:n,summary:`Phone ${o}: ${"high"===n.riskLevel?"\u26a0\ufe0f High scam risk":"medium"===n.riskLevel?"\u26a0\ufe0f Medium risk":"\u2705 Low risk"}`})}catch(a){p("Failed to check phone number. Please try again.")}finally{d(!1)}}else p("Please enter a valid phone number")},N=e=>({315:"Syracuse, NY",712:"Iowa (Rural)",641:"Iowa (Rural)",515:"Des Moines, IA",212:"New York, NY",310:"Los Angeles, CA",415:"San Francisco, CA",305:"Miami, FL"}[e]||"Unknown Location");return(0,i.jsx)(t.Ay,{toolName:"Phone Number Checker",toolIcon:"\ud83d\udcde",toolDescription:"Check phone numbers and area codes for scam patterns",onClose:a,children:(0,i.jsxs)("div",{className:"area-code-checker-content",children:[(0,i.jsxs)("div",{className:"phone-input-section",children:[(0,i.jsxs)("div",{className:"phone-input-wrapper",children:[(0,i.jsx)(l.Cab,{className:"input-icon"}),(0,i.jsx)("input",{type:"tel",value:o,onChange:e=>{const s=(e=>{const s=e.replace(/\D/g,"");return s.length>=6?`(${s.slice(0,3)}) ${s.slice(3,6)}-${s.slice(6,10)}`:s.length>=3?`(${s.slice(0,3)}) ${s.slice(3)}`:s})(e.target.value);c(s),p(null),h(null)},placeholder:"(555) 123-4567",className:"phone-input",maxLength:14})]}),(0,i.jsxs)("button",{className:"check-btn",onClick:x,disabled:!o||r,children:[(0,i.jsx)(l.KSO,{}),"Check Number"]})]}),r&&(0,i.jsx)(t.lq,{message:"Checking scam databases..."}),u&&(0,i.jsx)(t.v4,{error:u,onRetry:x}),m&&!r&&(0,i.jsx)(t.I8,{status:"high"===m.riskLevel?"error":"medium"===m.riskLevel?"warning":"success",title:`Risk Level: ${m.riskLevel.toUpperCase()}`,message:`Area code ${m.areaCode} - ${m.location}`,details:(0,i.jsxs)("div",{className:"phone-details",children:[(0,i.jsx)("div",{className:"risk-indicator",children:(0,i.jsxs)("span",{className:"risk-badge",style:{backgroundColor:(e=>{switch(e){case"high":return"#ff3b3b";case"medium":return"#ffc107";case"low":return"#4caf50";default:return"#666"}})(m.riskLevel)},children:[m.riskLevel.toUpperCase()," RISK"]})}),(0,i.jsxs)("div",{className:"scam-info",children:[(0,i.jsxs)("p",{children:[(0,i.jsx)("strong",{children:"Scam Reports:"})," ",m.scamReports," in the last 30 days"]}),(0,i.jsxs)("p",{children:[(0,i.jsx)("strong",{children:"Recommendation:"})," ",m.recommendation]})]}),"high"===m.riskLevel&&(0,i.jsxs)("div",{className:"warning-box",children:[(0,i.jsx)(l.BS8,{}),(0,i.jsx)("p",{children:"This area code is frequently used by scammers. Be extremely cautious."})]})]}),actions:[{label:"Check Another Number",icon:"\ud83d\udd04",variant:"secondary",onClick:()=>{c(""),h(null)}},{label:"Report as Scam",icon:"\u26a0\ufe0f",variant:"primary",onClick:()=>{alert("Scam reporting feature would open here")}}]})]})})}}}]);
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.