PageSourceSearch

https://shopsavvy.com/_next/static/chunks/8137-113a2a9549e106fb.js

js shopsavvy.com collected 2026-10-01 10:31:59 UTC 29,807 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8137],{89376:function(e,t,r){r.d(t,{K:function(){return useABPageTracking}});var a=r(27378),n=r(56763),s=r(54930),i=r(64977);let c="ss_ab_device_id";async function verbWebAbEventLog(e){let{testId:t,variant:r,eventType:a,context:n}=e;if("undefined"==typeof navigator||(0,s.I)({userAgent:navigator.userAgent}))return;let o=function(){if("undefined"==typeof localStorage)return null;try{let e=localStorage.getItem(c);if(e&&e.length>0)return e;let t="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)});return localStorage.setItem(c,t),t}catch(e){return null}}();if(!o)return;let l=JSON.stringify({app:"website",device_id:o,locale:"string"==typeof navigator.language?navigator.language:void 0,events:[{test_id:t,variant:r,event_type:a,timestamp:Date.now(),...n?{context:n}:{}}]}),d="".concat((0,i.verbRefineryURLGet)(),"/api/v1/verbs/upsell-ab-test-event-log");try{if("cta_click"===a&&"function"==typeof navigator.sendBeacon){let e=navigator.sendBeacon(d,new Blob([l],{type:"application/json"}));if(e)return}await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:l,keepalive:!0})}catch(e){console.error("[Analytics] Failed to log web AB event ".concat(t,"/").concat(a,":"),e)}}function useABPageTracking(e){let{eventPrefix:t,testId:r,variant:s,viewParameters:i,trackingKey:c,ctaUseBeacon:o}=e,l=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{l.current||(l.current=!0,(0,n.h)({eventName:"".concat(t,"_page_view"),parameters:i}),verbWebAbEventLog({testId:r,variant:s,eventType:"impression"}))},[c]),{trackCTAClick:function(e){(0,n.h)({eventName:"".concat(t,"_cta_click"),parameters:{...i,cta_type:e},...o?{useBeacon:!0}:{}}),verbWebAbEventLog({testId:r,variant:s,eventType:"cta_click",context:e})}}}},35714:function(e,t,r){r.d(t,{b:function(){return useHomepageABTracking}});var a=r(89376);function useHomepageABTracking(e){let{variant:t}=e;return(0,a.K)({eventPrefix:"homepage",testId:"website_homepage",variant:t,viewParameters:{variant:t},trackingKey:t})}},54930:function(e,t,r){r.d(t,{I:function(){return verbBotDetect}});var a=r(93008);function verbBotDetect(e){let{userAgent:t}=e;if(!t)return!1;for(let e of["Google-Firebase","Firebase/","FirebaseAuth","FirebaseAnalytics","FirebaseMessaging","FirebaseCrashlytics","FirebasePerformance","Firebase-Cloud-Functions","Firebase-Admin-Node","FirebaseAdminSDK","Firebase-Hosting","Firebase-Performance-Monitor"])if(t.includes(e))return!0;try{return(0,a.Fm)(t)}catch(e){return console.error("Error in bot detection:",e),!1}}},59255:function(e,t,r){r.d(t,{a:function(){return verbPriceFormat}});function verbPriceFormat(e,t){try{return e.toLocaleString("en-US",{style:"currency",currency:t||"USD",minimumFractionDigits:2})}catch(t){return"$".concat(e.toFixed(2))}}},56763:function(e,t,r){r.d(t,{h:function(){return verbSalesFunnelEventLog}});var a=r(54930),n=r(64977);async function verbSalesFunnelEventLog(e){let{eventName:t,parameters:r={},useBeacon:s=!1}=e;if("undefined"==typeof navigator)return{success:!1,reason:"ssr"};if((0,a.I)({userAgent:navigator.userAgent}))return{success:!1,reason:"bot"};let i="".concat((0,n.verbRefineryURLGet)(),"/api/v1/verbs/log-event"),c=JSON.stringify({event_name:t,parameters:r,platform:"Web"});if(s&&"function"==typeof navigator.sendBeacon)try{let e=new Blob([c],{type:"application/json"}),t=navigator.sendBeacon(i,e);if(t)return{success:!0}}catch(e){}try{return await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:c,keepalive:!0}),{success:!0}}catch(e){return console.error("[Analytics] Failed to log event ".concat(t,":"),e),{success:!1,error:e}}}},64476:function(e,t,r){r.d(t,{Y:function(){return verbSchemaBreadcrumbGenerate}});function verbSchemaBreadcrumbGenerate(e){let{items:t}=e,r=t.filter(e=>{let t="string"==typeof e.name&&e.name.trim().length>0,r="string"==typeof e.url&&e.url.trim().length>0;return t&&r}).map((e,t)=>({"@type":"ListItem",position:t+1,name:e.name.trim(),item:e.url.trim()}));return{"@type":"BreadcrumbList",itemListElement:r}}},7304:function(e,t,r){r.d(t,{E:function(){return verbTimeAgoFormat}});function verbTimeAgoFormat(e){let t=function(e){if(!e)return null;if(e instanceof Date)return e;if("string"==typeof e){let t=new Date(e);return isNaN(t.getTime())?null:t}return"object"==typeof e&&"seconds"in e&&e.seconds?new Date(1e3*e.seconds):null}(e);if(!t)return"";let r=Date.now()-t.getTime(),a=Math.floor(r/6e4);if(a<1)return"just now";if(a<60)return"".concat(a,"m ago");let n=Math.floor(a/60);if(n<24)return"".concat(n,"h ago");let s=Math.floor(n/24);return s<7?"".concat(s,"d ago"):t.toLocaleDateString("en-US",{month:"short",day:"numeric"})}},49183:function(e,t,r){r.d(t,{c:function(){return ViewFooterSiteMinimal}});var a=r(24246),n=r(79894),s=r.n(n);function ViewFooterSiteMinimal(){return(0,a.jsx)("footer",{className:"bg-zinc-50 dark:bg-zinc-900 border-t border-zinc-200 dark:border-zinc-700",children:(0,a.jsx)("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 py-6",children:(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4",children:[(0,a.jsxs)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:["\xa9 ",new Date().getFullYear()," Monolith Technologies, Inc."]}),(0,a.jsxs)("div",{className:"flex items-center gap-4 text-sm",children:[(0,a.jsx)(s(),{href:"/help",className:"text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200 transition-colors",children:"Help"}),(0,a.jsx)(s(),{href:"/privacy",className:"text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200 transition-colors",children:"Privacy"}),(0,a.jsx)(s(),{href:"/terms-of-use",className:"text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200 transition-colors",children:"Terms"}),(0,a.jsx)(s(),{href:"/about",className:"text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200 transition-colors",children:"About"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsxs)("a",{href:"https://twitter.com/shopsavvy",target:"_blank",rel:"noopener noreferrer",className:"text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 transition-colors",children:[(0,a.jsx)("span",{className:"sr-only",children:"Twitter"}),(0,a.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"})})]}),(0,a.jsxs)("a",{href:"https://instagram.com/shopsavvy",target:"_blank",rel:"noopener noreferrer",className:"text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 transition-colors",children:[(0,a.jsx)("span",{className:"sr-only",children:"Instagram"}),(0,a.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.
1047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z",clipRule:"evenodd"})})]}),(0,a.jsxs)("a",{href:"https://facebook.com/shopsavvy",target:"_blank",rel:"noopener noreferrer",className:"text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 transition-colors",children:[(0,a.jsx)("span",{className:"sr-only",children:"Facebook"}),(0,a.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987
1h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z",clipRule:"evenodd"})})]})]})]})})})}},39788:function(e,t,r){r.d(t,{G:function(){return ViewHomepageDashboard}});var a=r(24246),n=r(27378),s=r(73977),i=r(27607),c=r(79894),o=r.n(c),l=r(64977),d=r(7304),m=r(59255);function StatCard(e){let{accentColor:t,label:r,value:n,href:s}=e;return(0,a.jsxs)(o(),{href:s,className:"rounded-xl border border-zinc-200 dark:border-zinc-700 ".concat(t," border-l-4 bg-white dark:bg-zinc-900 p-5 hover:shadow-sm transition-all group block"),children:[(0,a.jsx)("p",{className:"text-3xl font-bold tabular-nums text-zinc-900 dark:text-zinc-100",children:n}),(0,a.jsx)("p",{className:"text-xs uppercase tracking-wider text-zinc-500 dark:text-zinc-400 mt-1",children:r})]})}function ViewHomepageDashboard(e){var t;let{articlesFeatured:r=[],blogPosts:c=[]}=e,{app:h,userCurrent:x}=(0,s.XL)(),[u,p]=(0,n.useState)([]),[g,b]=(0,n.useState)([]),[f,v]=(0,n.useState)(0),[w,j]=(0,n.useState)(0),[k,z]=(0,n.useState)(!0),[y,N]=(0,n.useState)({}),S=(null==x?void 0:x.displayName)||(null==x?void 0:null===(t=x.email)||void 0===t?void 0:t.split("@")[0])||"there",A=(0,n.useCallback)(async()=>{if(!h||!x)return null;try{var e;return await (null===(e=(0,i.getAuth)(h).currentUser)||void 0===e?void 0:e.getIdToken())||null}catch(e){return null}},[h,x]);(0,n.useEffect)(()=>{if(!x){z(!1);return}!async function(){let e=await A();if(!e){z(!1);return}let t={"Content-Type":"application/json",Authorization:"Bearer ".concat(e)};try{let[e,a]=await Promise.all([fetch("".concat((0,l.verbRefineryURLGet)(),"/api/v1/verbs/user-feed-get"),{method:"POST",headers:t,body:JSON.stringify({segment:"watching",size:5,from:0})}),fetch("".concat((0,l.verbRefineryURLGet)(),"/api/v1/verbs/user-watching-get"),{method:"POST",headers:t,body:JSON.stringify({locale:"en-us"})})]);if(e.ok){var r;let t=await e.json();p((null==t?void 0:null===(r=t.items)||void 0===r?void 0:r.slice(0,5))||[])}else N(e=>({...e,feed:!0}));if(a.ok){let e=await a.json(),t=(null==e?void 0:e.products)||[],r=(null==e?void 0:e.searches)||[];v(t.length),j(r.length),b(t.slice(0,6))}else N(e=>({...e,watching:!0}))}catch(e){console.error("Error fetching dashboard data:",e),N({feed:!0,watching:!0})}z(!1)}()},[x,A]);let _=f>0||u.length>0;return(0,a.jsxs)("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 py-8",children:[(0,a.jsx)("div",{className:"rounded-xl bg-green-500 dark:bg-green-600 p-5 mb-8",children:(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-base font-semibold text-white",children:"Shopping Agent"}),(0,a.jsx)("p",{className:"text-sm text-green-100/90 dark:text-green-200/80 mt-0.5",children:"Get personalized recommendations, compare products, find the best deals"})]}),(0,a.jsx)(o(),{href:"/agent",className:"bg-white/20 hover:bg-white/30 backdrop-blur-sm text-white font-medium rounded-lg px-5 py-3 min-h-[44px] text-sm transition-colors whitespace-nowrap border border-white/20 text-center",children:"Open Agent →"})]})}),(0,a.jsxs)("div",{className:"mb-8",children:[(0,a.jsxs)("h1",{className:"text-2xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100",children:[function(){let e=new Date().getHours();return e<12?"Good morning":e<17?"Good afternoon":"Good evening"}(),", ",S]}),(0,a.jsx)("p",{className:"text-zinc-500 dark:text-zinc-400 mt-1",children:"Here's what's happening with your watched items"})]}),k?(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4 mb-8",children:[void 0,void 0,void 0].map((e,t)=>(0,a.jsxs)("div",{className:"rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 p-5",children:[(0,a.jsx)("div",{className:"shimmer-line h-8 w-16 rounded mb-2"}),(0,a.jsx)("div",{className:"shimmer-line h-3 w-24 rounded"})]},t))}):_?(0,a.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4 mb-8",children:[(0,a.jsx)(StatCard,{accentColor:"border-l-amber-500",label:"Recent Alerts",value:u.length,href:"/alerts"}),(0,a.jsx)(StatCard,{accentColor:"border-l-green-500",label:"Watched Products",value:f,href:"/watched-products"}),(0,a.jsx)(StatCard,{accentColor:"border-l-blue-500",label:"Watched Searches",value:w,href:"/watched-searches"})]}):(0,a.jsxs)("div",{className:"rounded-xl border border-dashed border-zinc-300 dark:border-zinc-600 bg-zinc-50/50 dark:bg-zinc-800/30 p-8 text-center mb-8",children:[(0,a.jsx)("div",{className:"w-12 h-12 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center mx-auto mb-4",children:(0,a.jsxs)("svg",{"aria-hidden":"true",className:"w-6 h-6 text-green-600 dark:text-green-400",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",children:[(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"}),(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})]})}),(0,a.jsx)("h2",{className:"text-lg font-semibold text-zinc-900 dark:text-zinc-100 mb-2",children:"Start watching products"}),(0,a.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400 max-w-md mx-auto mb-5",children:"Watch products to track prices across thousands of retailers. You'll get alerts when prices drop."}),(0,a.jsx)(o(),{href:"/agent",className:"inline-flex items-center gap-2 bg-green-600 hover:bg-green-700 text-white font-medium rounded-lg px-5 py-2.5 text-sm transition-colors",children:"Ask the Shopping Agent"})]}),!k&&_&&(0,a.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8 mb-8",children:[(0,a.jsxs)("div",{className:"lg:col-span-2",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-zinc-900 dark:text-zinc-100",children:"Recent Alerts"}),(0,a.jsx)(o(),{href:"/alerts",className:"text-sm text-green-600 dark:text-green-400 hover:text-green-700 font-medium",children:"View all →"})]}),y.feed?(0,a.jsx)("div",{className:"rounded-xl border border-red-200 dark:border-red-800/50 bg-red-50 dark:bg-red-900/10 p-4 text-center",children:(0,a.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:"Couldn't load your alerts"})}):0===u.length?(0,a.jsx)("div",{className:"rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 p-8 text-center",children:(0,a.jsxs)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:["No recent alerts. ",(0,a.jsx)(o(),{href:"/watched-products",className:"text-green-600 hover:underline",children:"Watch some products"})," to get started."]})}):(0,a.jsx)("div",{className:"space-y-4",children:u.map((e,t)=>{var r,n,s,i,c,l,h,x,u;let p=function(e){if(!e.campaign){var t;return"deal"===e.sourceKind?"Discovered Deal":"answer"===e.sourceKind||"review-tldr"===e.sourceKind||"best-picks"===e.sourceKind?"ShopSavvy Published":"news"===e.sourceKind?"Product News":(null===(t=e.sourceKind)||void 0===t?void 0:t.replace(/-/g," "))||""}return e.campaign.startsWith("retailer-drop")?"Price Drop Alert":e.campaign.startsWith("lowest-drop")?"New Record Low Price":e.campaign.startsWith("now-in-stock")?"Back in Stock":e.campaign.startsWith("search-alert")?"Search Alert":e.campaign.startsWith("product-watch-alert")?"Watched Product Update":e.campaign.startsWith("targeted-deal")||e.campaign.startsWith("daily-deal")?"Today's Top Deal":e.campaign.startsWith("related-deal")?"Suggested Deal":e.campaign.startsWith("all-changes-")?"Price Change Alert":e.campaign.replace(/-/g," ")}(e),g=e.headlineProduct||e.headline,b=e.headline&&e.headlineProduct&&e.headline!==e.headlineProduct?e.headline:null,f=null!==(x=null!==(h=null===(r=e.prices)||void 0===r?void 0:r.after)&&void 0!==h?h:null===(n=e.prices)||void 0===n?void 0:n.current)&&void 0!==x?x:null,v=null!==(u=null===(s=e.prices)||void 0===s?void 0:s.before)&&void 0!==u?u:null,w=null!=f&&f>0,j=w&&null!=v&&v>f,k=j?Math.round((v-f)/v*100):0,z=(null===(i=e.retailerName)||void 0===i?void 0:i.replace(/^www\./,"").replace(/\.com$/,""))||"";return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-2 py-1.5 mb-1",children:[(0,a.jsx)("span",{className:"text-[11px] uppercase tracking-wide font-semibold text-zinc-500 dark:text-zinc-400",children:p}),(0,a.jsx)("span",{className:"text-[11px] text-zinc-400 dark:text-zinc-500",children:(0,d.E)(e.timestampUpdated||e.timestamp)})]}),(0,a.jsx)(o(),{href:"/alerts",className:"block rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 hover:shadow-sm transition-all overflow-hidden",children:(0,a.jsxs)("div",{className:"p-4",children:[(0,a.jsxs)("div",{className:"flex gap-4",children:[(e.image||e.emoji)&&(0,a.jsx)("div",{className:"flex-shrink-0 w-[75px] h-[75px] relative",children:e.image?(0,a.jsx)("img",{src:"https://i.shopsavvy.com/".concat(encodeURI(e.image),"?w=150&h=150&f=fit"),alt:g||"",className:"w-full h-full rounded-lg object-contain bg-white dark:bg-zinc-800"}):(0,a.jsx)("div",{className:"w-full h-full rounded-lg bg-zinc-100 dark:bg-zinc-800 flex items-center justify-center text-3xl",children:e.emoji})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("h3",{className:"text-base font-bold leading-snug text-zinc-900 dark:text-zinc-100 line-clamp-2",children:g}),b&&(0,a.jsxs)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400 mt-1 line-clamp-1",children:[e.emoji&&(0,a.jsx)("span",{className:"mr-1",children:e.emoji}),b]}),z&&(0,a.jsxs)("p",{className:"text-xs text-zinc-400 dark:text-zinc-500 mt-1.5 flex items-center gap-1.5",children:[(0,a.jsx)("span",{children:"at"}),(0,a.jsx)("span",{className:"font-medium text-zinc-600 dark:text-zinc-300",children:z}),e.timestampUpdated&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{children:"•"}),(0,a.jsx)("span",{children:(0,d.E)(e.timestampUpdated)})]})]})]})]}),w&&(0,a.jsx)("div",{className:"mt-3 p-3 rounded-lg ".concat(j?"bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800":"bg-zinc-50 dark:bg-zinc-800/50"),children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"text-xl font-bold ".concat(j?"text-green-700 dark:text-green-400":"text-zinc-900 dark:text-zinc-100"),children:(0,m.a)(f,null===(c=e.prices)||void 0===c?void 0:c.currency)}),j&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-base line-through text-zinc-400 dark:text-zinc-500",children:(0,m.a)(v,null===(l=e.prices)||void 0===l?void 0:l.currency)}),(0,a.jsxs)("span",{className:"text-xs font-semibold px-2 py-0.5 rounded-full bg-green-100 dark:bg-green-900/50 text-green-800 dark:text-green-200",children:[k,"% OFF"]})]})]})}),e.gradeLetter&&(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,a.jsxs)("span",{className:"text-xs font-bold px-2 py-1 rounded ".concat(e.gradeLetter.startsWith("A")?"bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400":e.gradeLetter.startsWith("B")?"bg-blue-100 dar
1k:bg-blue-900/30 text-blue-700 dark:text-blue-400":e.gradeLetter.startsWith("C")?"bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-400":"bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400"),children:[e.gradeLetter,e.gradeSuffix||""]}),(0,a.jsx)("span",{className:"text-xs text-zinc-400 dark:text-zinc-500",children:"ShopSavvy Grade"})]})]})})]},t)})})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-zinc-900 dark:text-zinc-100",children:"Watched Products"}),(0,a.jsx)(o(),{href:"/watched-products",className:"text-sm text-green-600 dark:text-green-400 hover:text-green-700 font-medium",children:f>6?"All ".concat(f," →"):"Manage →"})]}),y.watching?(0,a.jsx)("div",{className:"rounded-xl border border-red-200 dark:border-red-800/50 bg-red-50 dark:bg-red-900/10 p-4 text-center",children:(0,a.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:"Couldn't load watched products"})}):0===g.length?(0,a.jsx)("div",{className:"rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 p-6 text-center",children:(0,a.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:"Not watching any products yet."})}):(0,a.jsx)("div",{className:"space-y-1",children:g.map((e,t)=>{var r,n;let s="object"==typeof e.image?null===(r=e.image)||void 0===r?void 0:r.url:e.image,i=null===(n=e.product)||void 0===n?void 0:n.replace("products/",""),c=e.title_humanized||e.brand||e.title,l=e.title_humanized||e.brand?e.title:null;return(0,a.jsxs)(o(),{href:"/products/".concat(i),className:"flex items-start gap-3 p-2.5 rounded-lg hover:bg-zinc-50 dark:hover:bg-zinc-800/50 transition-colors group",children:[(0,a.jsx)("div",{className:"flex-shrink-0 w-12 h-12 relative",children:s?(0,a.jsx)("img",{src:"https://i.shopsavvy.com/".concat(encodeURI(s),"?w=96&h=96&f=fit"),alt:c||"",className:"w-full h-full rounded-md object-contain bg-white dark:bg-zinc-800 border border-zinc-100 dark:border-zinc-700"}):(0,a.jsx)("div",{className:"w-full h-full rounded-md bg-zinc-100 dark:bg-zinc-800 border border-zinc-100 dark:border-zinc-700"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"text-sm font-semibold text-zinc-900 dark:text-zinc-100 line-clamp-1 group-hover:text-green-600 transition-colors",children:c}),l&&l!==c&&(0,a.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400 line-clamp-1 mt-0.5",children:l}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[null!=e.price&&(0,a.jsxs)("span",{className:"text-xs font-medium text-zinc-700 dark:text-zinc-300",children:[(0,m.a)(Number(e.price)),null!=e.price_compare&&e.price_compare>e.price&&(0,a.jsx)("span",{className:"line-through ml-1.5 text-zinc-400 dark:text-zinc-500 font-normal",children:(0,m.a)(Number(e.price_compare))})]}),e.time_updated&&(0,a.jsx)("span",{className:"text-[11px] text-zinc-400 dark:text-zinc-500",children:(0,d.E)(e.time_updated)})]})]})]},t)})})]})]}),c.length>0&&(0,a.jsxs)("div",{className:"mb-8",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-zinc-900 dark:text-zinc-100",children:"Latest from the Blog"}),(0,a.jsx)(o(),{href:"/blog",className:"text-sm text-green-600 dark:text-green-400 hover:text-green-700 font-medium",children:"View all →"})]}),(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:c.slice(0,4).map(e=>(0,a.jsxs)(o(),{href:"/blog/".concat(e.slug),className:"rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 p-4 hover:shadow-sm transition-all group",children:[e.emoji&&(0,a.jsx)("span",{className:"text-2xl mb-2 block",children:e.emoji}),(0,a.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100 line-clamp-2 group-hover:text-green-600 transition-colors",children:e.title}),(0,a.jsx)("p",{className:"text-xs text-zinc-400 dark:text-zinc-500 mt-2",children:e.publish_time?new Date(e.publish_time).toLocaleDateString("en-US",{month:"short",day:"numeric"}):""})]},e.slug))})]}),0===c.length&&r.length>0&&(0,a.jsxs)("div",{className:"mb-8",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-zinc-900 dark:text-zinc-100",children:"Latest Updates"}),(0,a.jsx)(o(),{href:"/blog",className:"text-sm text-green-600 dark:text-green-400 hover:text-green-700 font-medium",children:"View all →"})]}),(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:r.slice(0,4).map(e=>(0,a.jsxs)(o(),{href:"/".concat(e.path,"/").concat(e.slug),className:"rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 p-4 hover:shadow-sm transition-all group",children:[(0,a.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100 line-clamp-2 group-hover:text-green-600 transition-colors",children:e.headline}),(0,a.jsx)("p",{className:"text-xs text-zinc-400 dark:text-zinc-500 mt-2",children:e.time_published?new Date(e.time_published).toLocaleDateString("en-US",{month:"short",day:"numeric"}):""})]},e.slug))})]})]})}},1363:function(e,t,r){r.d(t,{E:function(){return ViewSupportChatFloatingButton}});var a=r(24246),n=r(79894),s=r.n(n),i=r(51789);function ViewSupportChatFloatingButton(e){let{from:t}=e;return(0,a.jsx)(s(),{href:t?"/support?from=".concat(t):"/support",children:(0,a.jsxs)("div",{className:"fixed bottom-6 right-6 z-50 group",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 bg-green-600 hover:bg-green-700 text-white px-4 py-3 rounded-full shadow-lg cursor-pointer transition-all hover:shadow-xl hover:scale-105",children:[(0,a.jsx)(i.Z,{className:"w-5 h-5"}),(0,a.jsx)("span",{className:"font-medium hidden sm:inline",children:"Chat with our team"}),(0,a.jsx)("span",{className:"font-medium sm:hidden",children:"Chat"})]}),(0,a.jsxs)("div",{className:"absolute bottom-full right-0 mb-2 px-3 py-1 bg-gray-900 text-white text-sm rounded-lg opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none whitespace-nowrap sm:hidden",children:["Chat with our team",(0,a.jsx)("div",{className:"absolute top-full right-4 w-0 h-0 border-l-4 border-r-4 border-t-4 border-transparent border-t-gray-900"})]})]})})}},93008:function(e,t,r){r.d(t,{Fm:function(){return isbot}});var a,n=/bot|crawl|http|lighthouse|scan|search|spider/i,isNonEmptyString=e=>"string"==typeof e&&""!==e,isbot=function(e){return isNonEmptyString(e)&&(function(){if(a instanceof RegExp)return a;try{a=RegExp(" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
17|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+\\.ai|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|fetcher|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|upday/|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/","i")}catch(e){a=n}return a})().test(e)}}}]);

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.