PageSourceSearch

https://www.ricoai.app/assets/Check-D0SxFrdR.js

js ricoai.app collected 2026-09-25 03:39:34 UTC 19,573 bytes, 1 lines download raw bytes

1import{c as g,r as x,t as f,j as e,P as N,A as b,S as _,g as S,L as z,M as F,a as C}from"./index-DI-PxikC.js";const E=[["path",{d:"M4.5 3h15",key:"c7n0jr"}],["path",{d:"M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3",key:"m1uhx7"}],["path",{d:"M6 14h12",key:"4cwo0f"}]],P=g("beaker",E);const A=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],w=g("check",A);const L=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],D=g("lock",L);const I=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],M=g("rotate-ccw",I);const R=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],T=g("triangle-alert",R),O=[{canonical:"Fragrance / Parfum",aliases:["fragrance","parfum","perfume"],category:"Fragrance",severity:"high",why:'Common fragrance concern for sensitive skin and barrier-stressed routines. "Fragrance" can hide dozens of unlisted compounds.'},{canonical:"Methylisothiazolinone (MIT)",aliases:["methylisothiazolinone","methylchloroisothiazolinone","mit/cit","mci"],category:"Sensitizer",severity:"high",why:"Known sensitizer concern, especially for reactive or sensitive skin. The American Contact Dermatitis Society named it Allergen of the Year."},{canonical:"Limonene",aliases:["limonene"],category:"Fragrance",severity:"medium",why:"Citrus fragrance compound that oxidizes into a known sensitizer for reactive skin."},{canonical:"Linalool",aliases:["linalool"],category:"Fragrance",severity:"medium",why:"Common floral fragrance compound; oxidized form is a notable sensitizer."},{canonical:"Geraniol",aliases:["geraniol"],category:"Fragrance",severity:"medium",why:"Floral fragrance compound; can sensitize barrier-compromised skin over time."},{canonical:"Denatured alcohol",aliases:["alcohol denat","sd alcohol","ethanol denat","denatured alcohol"],category:"Drying",severity:"high",why:"Strips skin barrier in leave-on products. Different from fatty alcohols (cetyl, stearyl) which are fine."},{canonical:"Sodium Lauryl Sulfate (SLS)",aliases:["sodium lauryl sulfate","sls"],category:"Drying",severity:"medium",why:"Aggressive surfactant. Fine in shampoos, harsh on facial skin or c
1ompromised barriers."},{canonical:"Sodium Laureth Sulfate (SLES)",aliases:["sodium laureth sulfate","sles"],category:"Drying",severity:"low",why:"Milder than SLS but still strips lipids on dry/sensitive skin."},{canonical:"Parabens",aliases:["methylparaben","propylparaben","butylparaben","ethylparaben","isobutylparaben"],category:"Preservative",severity:"medium",why:"Some shoppers prefer to review parabens when checking product compatibility for acne-prone skin."},{canonical:"Phenoxyethanol",aliases:["phenoxyethanol"],category:"Preservative",severity:"low",why:"Generally well-tolerated; flagged at higher concentrations (>1%) for very reactive skin."},{canonical:"DMDM Hydantoin",aliases:["dmdm hydantoin"],category:"Formaldehyde-releaser",severity:"high",why:"Releases trace formaldehyde to preserve. Known sensitizer with regulatory restrictions in EU."},{canonical:"Quaternium-15",aliases:["quaternium-15","quaternium 15"],category:"Formaldehyde-releaser",severity:"high",why:"Formaldehyde-releaser, common contact allergen."},{canonical:"Imidazolidinyl Urea",aliases:["imidazolidinyl urea"],category:"Formaldehyde-releaser",severity:"medium",why:"Formaldehyde-releaser. Lower-tier sensitizer but worth flagging for sensitive skin."},{canonical:"Oxybenzone",aliases:["oxybenzone","benzophenone-3"],category:"Sunscreen filter",severity:"high",why:"Ingredient with regulatory or environmental concern signals worth reviewing, especially when comparing sunscreen options."},{canonical:"Octinoxate",aliases:["octinoxate","octyl methoxycinnamate"],category:"Sunscreen filter",severity:"medium",why:"Ingredient with regulatory or environmental concern signals worth reviewing. Banned in some jurisdictions."},{canonical:"Coconut Oil",aliases:["cocos nucifera","coconut oil"],category:"Comedogenic",severity:"medium",why:"Highly comedogenic on acne-prone skin. Fine for body, problematic on face for many."},{canonical:"Isopropyl Myristate",aliases:["isopropyl myristate","isopropyl palmitate"],category:"Comedogenic",severity:"medium",why:"Common in moisturizers; high comedogenic rating for clog-prone skin."},{canonical:"Lanolin",aliases:["lanolin"],category:"Comedogenic",severity:"low",why:"Occlusive emollient that clogs some skin types and is a known sensitizer for others."},{canonical:"Peppermint Oil",aliases:["mentha piperita","peppermint oil"],category:"Essential oil",severity:"medium",why:"Cooling sensation = irritation signal. Disrupts barrier on reactive skin."},{canonical:"Lavender Oil",aliases:["lavandula angustifolia","lavender oil"],category:"Essential oil",severity:"low",why:"Soothing reputation, but a known sensitizer over repeated leave-on exposure."},{canonical:"Tea Tree Oil",aliases:["melaleuca alternifolia","tea tree oil"],category:"Essential oil",severity:"low",why:"Useful at low % for spot acne; >5% concentration becomes irritating for most barriers."},{canonical:"Phthalates",aliases:["diethyl phthalate","dbp","dehp","phthalate"],category:"Endocrine concern",severity:"high",why:'Ingredient group with regulatory concern signals worth reviewing. Often hidden inside "fragrance".'},{canonical:"PEG compounds",aliases:["peg-","polyethylene glycol"],category:"Penetration enhancer",severity:"low",why:"Generally well-tolerated but can increase the absorption of other ingredients — worth reviewing in heavily-loaded formulas."}],G={high:15,medium:8,low:3},v={high:3,medium:2,low:1},k=s=>s.toLowerCase().replace(/[®™()]/g,"").trim(),q=s=>s?s.split(/[,;•\n]|\.\s/).map(n=>n.trim()).filter(n=>n.length>1&&n.length<120):[],$=s=>{const n=q(s),r=n.map(k),u=k(s),o=[],h=new Set;for(const a of O)for(const m of a.aliases){const y=m.toLowerCase(),t=u.includes(y),c=r.some(p=>p.includes(y));if((t||c)&&!h.has(a.canonical)){o.push({canonical:a.canonical,category:a.category,severity:a.severity,why:a.why,matchedIn:m}),h.add(a.canonical);break}}o.sort((a,m)=>v[m.severity]-v[a.severity]);let i=95;for(const a of o)i-=G[a.severity];i=Math.max(10,Math.min(95,i));let l,d;return i>=80?(l="Excellent",d="green"):i>=65?(l="Good",d="lime"):i>=45?(l="Caution",d="amber"):(l="Reformulate",d="red"),{score:i,scoreLabel:l,scoreColor:d,flagged:o,totalParsed:n.length}},W="Water (Aqua), Glycerin, Niacinamide, Cetearyl Alcohol, Squalane, Sodium Hyaluronate, Fragrance, Phenoxyethanol, Tocopherol, Citric Acid, Methylisothiazolinone",U={high:"bg-red-100 text-red-800 border-red-200",medium:"bg-amber-100 text-amber-800 border-amber-200",low:"bg-yellow-50 text-yellow-800 border-yellow-200"},V={green:"from-emerald-400 to-emerald-600 text-white",lime:"from-lime-300 to-lime-500 text-rico-primary",amber:"from-amber-300 to-amber-500 text-rico-primary",red:"from-rose-400 to-rose-600 text-white"},B=()=>{const[s,n]=x.useState(""),[r,u]=x.useState(null),[o,h]=x.useState(""),[i,l]=x.useState("idle");x.useEffect(()=>{f("check_page_view",{origin:document.referrer})},[]);const d=t=>{if(t.preventDefault(),!s.trim())return;const c=$(s);u(c),f("check_run",{score:c.score,flag_count:c.flagged.length,parsed_count:c.totalParsed,value_signal:"ingredient_check_completed"}),setTimeout(()=>{document.getElementById("check-result")?.scrollIntoView({behavior:"smooth",block:"start"})},100)},a=()=>{n(""),u(null),h(""),l("idle"),window.scrollTo({top:0,behavior:"smooth"})},m=()=>{n(W)},y=async t=>{if(t.preventDefault(),!o||!/^\S+@\S+\.\S+$/.test(o)){l("error");return}l("submitting"),f("check_pdf_email_submit",{email_domain:o.split("@")[1]});try{const c="rico_check_pdf_emails",p=JSON.parse(localStorage.getItem(c)||"[]");p.find(j=>j.email===o)||(p.push({email:o,score:r?.score,ts:new Date().toISOString()}),localStorage.setItem(c,JSON.stringify(p)))}catch{}setTimeout(()=>l("done"),400)};return e.jsxs("main",{className:"relative min-h-[100dvh] pt-32 md:pt-36 pb-20 px-5 sm:px-6 md:px-12",children:[e.jsx(N,{title:"Free Skin Fit Check - Rico AI",description:"Paste a skincare ingredient list, understand the formula, and choose what fits your skin with Rico AI.",path:"/check",image:"/images/rico-ai-social-preview-v2.png",imageAlt:"Rico AI free Skin Fit check and skin clarity coach"}),e.jsxs("div",{className:"absolute inset-0 z-0 pointer-events-none overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-[linear-gradient(118deg,#F7F3E9_0%,#EAF3EA_38%,#DDEBE3_66%,#D4A574_115%)] opacity-60"}),e.jsx("div",{className:"absolute -top-24 -left-20 h-[26rem] w-[26rem] rounded-full bg-white/55 blur-[100px]"}),e.jsx("div",{className:"absolute bottom-[-6rem] right-[-4rem] h-[28rem] w-[28rem] rounded-full bg-[#9CAF88]/20 blur-[110px]"})]}),e.jsxs("div",{className:"relative z-10 max-w-4xl mx-auto",children:[e.jsxs("header",{className:"mb-10 md:mb-14 text-center",children:[e.jsxs("p",{className:"mb-3 inline-flex items-center gap-2 rounded-full border border-rico-primary/20 bg-white/80 px-3.5 py-1.5 text-[12px] font-mono uppercase tracking-[0.16em] text-rico-primary/80",children:[e.jsx(P,{size:12,className:"text-rico-accent"}),"Free · No login · No download"]}),e.jsxs("h1",{className:"font-serif text-4xl md:text-6xl text-rico-primary leading-[1.05] tracking-tight mb-4",children:["Check Skin Fit",e.jsx("br",{}),"before you decide."]}),e.jsx("p",{className:"text-base md:text-lg text-rico-text leading-relaxed max-w-2xl mx-auto",children:"Paste any ingredient list. Rico helps you understand the formula and choose what fits your skin."})]}),!r&&e.jsxs("form",{onSubmit:d,className:"rounded-3xl border border-rico-primary/12 bg-white/85 backdrop-blur-sm p-5 md:p-7 shadow-[0_18px_50px_-28px_rgba(45,74,58,0.4)]",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("label",{htmlFor:"check-input",className:"text-xs font-mono uppercase tracking-[0.2em] text-rico-primary/70",children:"Paste ingredient list"}),e.jsx("button",{type:"button",onClick:m,className:"text-xs text-rico-primary/70 hover:text-rico-primary underline underline-offset-2 decoration-rico-primary/30",children:"Use a sample"})]}),e.jsx("textarea",{id:"check-input",value:s,onChange:t=>n(t.target.value),placeholder:"e.g. Water, Glycerin, Niacinamide, Fragrance, Phenoxyethanol, Tocopherol…",rows:7,className:"w-full rounded-2xl border border-rico-primary/15 bg-white px-4 py-3 text-sm md:text-base text-rico-primary placeholder:text-rico-text/40 focus:outline-none focus:ring-2 focus:ring-rico-accent transition resize-y",required:!0}),e.jsxs("div",{className:"mt-4 flex flex-col sm:flex-row sm:items-center gap-3",children:[e.jsxs("button",{type:"submit",disabled:!s.trim(),className:"rico-cta inline-flex items-center justify-center gap-2 bg-rico-primary text-white px-6 py-3.5 rounded-full font-medium magnetic-btn shadow-lg shadow-rico-primary/15 disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("span",{className:"relative z-10",children:"Check Skin Fit"}),e.jsx(b,{size:18,className:"relative z-10"}),e.jsx("div",{className:"btn-layer"})]}),e.jsx("p",{className:"text-[12px] text-rico-text/65 leading-relaxed",children:"We never store the list. Read once. Decide. Done."})]})]}),r&&e.jsxs("div",{id:"check-result",className:"space-y-6",children:[e.jsx("div",{className:"rounded-3xl border border-rico-primary/12 bg-white/90 backdrop-blur-sm p-6 md:p-8 shadow-[0_24px_60px_-32px_rgba(45,74,58,0.45)]",children:e.jsxs("div",{className:"flex flex-col md:flex-row md:items-center gap-6 md:gap-8",children:[e.jsxs("div",{className:`shrink-0 mx-auto md:mx-0 h-32 w-32 md:h-36 md:w-36 rounded-full bg-gradient-to-br ${V[r.scoreColor]} flex flex-col items-center justify-center shadow-lg`,children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-[0.18em] opacity-80 mb-0.5",children:"Skin Fit"}),e.jsx("span",{className:"font-serif text-4xl md:text-5xl leading-none",children:r.score}),e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-[0.18em] opacity-80 mt-1",children:"Score"})]}),e.jsxs("div",{className:"flex-1 text-center md:text-left",children:[e.jsxs("p",{className:"text-[12px] font-mono uppercase tracking-[0.16em] text-rico-primary/55 mb-1.5",children:[r.totalParsed," ingredients read for your Skin Fit"]}),e.jsxs("h2",{className:"font-serif text-3xl md:text-4xl text-rico-primary mb-2 leading-tight",children:[r.scoreLabel,r.flagged.length>0&&e.jsxs("span",{className:"text-rico-primary/60 text-2xl md:text-3xl",children:[" · ",r.flagged.length," flagged"]})]}),e.jsx("p",{className:"text-rico-text leading-relaxed text-sm md:text-base",children:r.flagged.length===0?"N
1othing major was flagged on Rico's short list. That does not mean it is right for your skin yet; your routine, sensitivity, and goals are the next layer.":"A few ingredients worth a closer look. Severity tags below explain why each one made the list."})]})]})}),r.flagged.length>0&&e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:r.flagged.map(t=>e.jsxs("article",{className:"rounded-2xl border border-rico-primary/10 bg-white/85 backdrop-blur-sm p-5",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3 mb-2",children:[e.jsx("h3",{className:"font-serif text-lg md:text-xl text-rico-primary leading-tight",children:t.canonical}),e.jsxs("span",{className:`shrink-0 inline-flex items-center gap-1 rounded-full px-2.5 py-1 text-[10px] font-mono uppercase tracking-[0.15em] border ${U[t.severity]}`,children:[e.jsx(T,{size:10,strokeWidth:2.5}),t.severity]})]}),e.jsx("p",{className:"text-[11px] font-mono uppercase tracking-[0.18em] text-rico-primary/55 mb-2",children:t.category}),e.jsx("p",{className:"text-sm text-rico-text leading-relaxed",children:t.why})]},t.canonical))}),e.jsxs("div",{className:"relative overflow-hidden rounded-3xl border-2 border-rico-primary bg-gradient-to-br from-white via-rico-bg to-rico-accent/15 p-6 md:p-8 shadow-[0_24px_60px_-32px_rgba(45,74,58,0.5)]",children:[e.jsxs("span",{className:"absolute -top-3 left-6 inline-flex items-center gap-1 rounded-full bg-rico-primary text-white px-3 py-1 text-[10px] font-mono uppercase tracking-[0.2em]",children:[e.jsx(_,{size:11}),"Personalized check"]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[1.4fr_1fr] gap-6 items-center mt-3",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"font-serif text-2xl md:text-3xl text-rico-primary leading-tight mb-3",children:["This first check is the same for everyone.",e.jsx("br",{}),e.jsx("span",{className:"text-rico-secondary italic",children:"Yours shouldn’t be."})]}),e.jsxs("p",{className:"text-sm md:text-base text-rico-text leading-relaxed mb-4",children:["Rico Pro supports repeat product decisions with ",e.jsx("strong",{className:"text-rico-primary",children:"unlimited scans, personalized routine recommendations, advanced ingredient analysis, and curated product recommendations"}),"."]}),e.jsx("ul",{className:"space-y-2 mb-1 text-sm",children:["Unlimited scans for repeat product checks","Personalized routine recommendations","Curated product recommendations"].map(t=>e.jsxs("li",{className:"inline-flex items-start gap-2 text-rico-primary/90 mr-3",children:[e.jsx("span",{className:"mt-1 inline-flex h-4 w-4 items-center justify-center rounded-full bg-rico-primary text-white shrink-0",children:e.jsx(w,{size:10,strokeWidth:3})}),e.jsx("span",{children:t})]},t))})]}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsxs("a",{href:S("check_trial_cta",{destination:"app_store",route:"/check",slug:"check",cta_id:"check_trial_cta",funnel_step:"post_skin_fit_result",value_signal:"skin_fit_result_completed",paywall_intent:"repeat_product_decisions"}),target:"_blank",rel:"noopener noreferrer",onClick:()=>f("cta_click_app_store",{location:"check_result",score:r.score}),className:"rico-cta inline-flex items-center justify-center gap-2 bg-rico-primary text-white px-6 py-4 rounded-full font-semibold magnetic-btn shadow-lg shadow-rico-primary/20",children:[e.jsx("span",{className:"relative z-10",children:"Get Rico on the App Store"}),e.jsx(b,{size:18,className:"relative z-10"}),e.jsx("div",{className:"btn-layer"})]}),e.jsx("p",{className:"text-center text-[11px] font-mono uppercase tracking-[0.16em] text-rico-text/65",children:"Free iOS download · Apple shows Pro terms before purchase"})]})]})]}),e.jsx("div",{className:"rounded-3xl border border-rico-primary/10 bg-white/80 backdrop-blur-sm p-6 md:p-7",children:i==="done"?e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"inline-flex h-10 w-10 items-center justify-center rounded-full bg-rico-accent/30 text-rico-primary shrink-0",children:e.jsx(w,{size:18,strokeWidth:2.5})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-serif text-xl text-rico-primary mb-1",children:"Sent to your inbox."}),e.jsxs("p",{className:"text-sm text-rico-text/85 leading-relaxed",children:["We’ll email you the “Decode Any Label in 60 Seconds” PDF as soon as the next sequence opens. In the meantime, the ",e.jsx(z,{to:"/",className:"text-rico-primary underline",children:"main site"})," has more."]})]})]}):e.jsxs("form",{onSubmit:y,className:"grid grid-cols-1 md:grid-cols-[1.3fr_1fr] gap-4 items-end",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"mb-2 inline-flex items-center gap-2 text-[12px] font-mono uppercase tracking-[0.16em] text-rico-primary/70",children:[e.jsx(F,{size:12,className:"text-rico-accent"}),"Or get the PDF"]}),e.jsx("h3",{className:"font-serif text-xl md:text-2xl text-rico-primary leading-tight mb-2",children:"“Decode Any Label in 60 Seconds”"}),e.jsx("p",{className:"text-sm text-rico-text/85 leading-relaxed",children:"Zee’s quick-read framework for the aisle. One page. Free."})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("input",{type:"email",required:!0,value:o,onChange:t=>{h(t.target.value),i==="error"&&l("idle")},placeholder:"[email protected]",className:`w-full rounded-2xl border bg-white px-4 py-3 text-sm text-rico-primary placeholder:text-rico-text/45 focus:outline-none focus:ring-2 focus:ring-rico-accent transition ${i==="error"?"border-red-400/70":"border-rico-primary/15"}`}),e.jsx("button",{type:"submit",disabled:i==="submitting",className:"inline-flex items-center justify-center gap-2 bg-rico-bg border-2 border-rico-primary text-rico-primary px-5 py-3 rounded-full font-medium text-sm hover:bg-rico-primary hover:text-white transition-colors disabled:opacity-60",children:i==="submitting"?"Sending…":"Email me the PDF"})]})]})}),e.jsxs("div",{className:"flex flex-col items-center gap-4 pt-6",children:[e.jsxs("button",{type:"button",onClick:a,className:"inline-flex items-center gap-2 text-sm font-medium text-rico-primary/85 hover:text-rico-primary underline underline-offset-4 decoration-rico-primary/30",children:[e.jsx(M,{size:14}),"Check another product"]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-5 gap-y-2 text-[12px] text-rico-primary/75",children:[e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(C,{size:13,className:"text-rico-accent"}),"Esthetician-curated, not medical advice"]}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(D,{size:13,className:"text-rico-accent"}),"Lists are processed in your browser, never sent or saved"]})]})]})]})]})]})};export{B 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.