1import{j as r,C as N,g as z,B as F,aT as U,w as b,z as J,cN as K,Q,cO as X,cP as Z,W as Y,x as L,r as q,a1 as ee,Z as te,a3 as re,cQ as ie,A as ae,cU as ne,N as se,s as oe,P as le,L as de,b as ce}from"./index-tp3ZBVoO.js";import{b as y}from"./recharts-D0niEN4L.js";import{g as ge}from"./kantoor-data-CnuNrH8Z.js";import{P as me}from"./progress-CnbOAX2o.js";import{S as B,D as ue}from"./ScanDisclaimer-BAmGalge.js";import{S as ke,a as he}from"./ScanToelichting-D6BIym3o.js";import{s as pe}from"./scanToon-CW1dzd3u.js";import{R as xe}from"./rotate-ccw-DStGrL0z.js";import{u as fe}from"./useScanScrollTop-B4FcxOgT.js";import{A as ve}from"./arrow-right-F5BcStkK.js";import"./info-NHuVvVc9.js";const V=[{id:"motor",title:"Heeft u een motor?",options:[{value:"ja-een",label:"Ja, één motor"},{value:"ja-meerdere",label:"Ja, meerdere motoren"},{value:"nee",label:"Nee"}],explanations:{"ja-een":"We kijken naar de juiste dekking voor uw motor.","ja-meerdere":"Bij meerdere motoren is een verzamel- of pakketpolis vaak voordeliger.",nee:"Geen motor, er is geen motorverzekering nodig."},show:()=>!0},{id:"dekking",title:"Welke dekking heeft u op uw motor?",intro:"WA is wettelijk verplicht. WA+ (Beperkt Casco) en Allrisk dekken ook schade aan uw eigen motor.",options:[{value:"wa",label:"WA (wettelijke aansprakelijkheid)"},{value:"wa-beperkt-casco",label:"WA + Beperkt Casco"},{value:"wa-allrisk",label:"WA + Allrisk (volledig casco)"},{value:"geen",label:"Geen verzekering"},{value:"weet-niet",label:"Weet ik niet"}],explanations:{wa:"Alleen schade aan anderen is gedekt. Diefstal en schade aan uw eigen motor draagt u zelf.","wa-beperkt-casco":"Naast WA ook diefstal, brand en storm. Eigen rijschade is niet gedekt.","wa-allrisk":"Volledige dekking, vooral verstandig bij nieuwere of duurdere motoren.",geen:"Rijden zonder verzekering is strafbaar, een WA is wettelijk verplicht.","weet-niet":"Controleer uw polis, onduidelijke dekking kan grote financiële gevolgen hebben."},show:e=>e.motor==="ja-een"||e.motor==="ja-meerdere"},{id:"waarde",title:"Wat is de huidige waarde van uw motor?",options:[{value:"laag",label:"< ⬠5.000"},{value:"middel",label:"⬠5.000: ⬠15.000"},{value:"hoog",label:"⬠15.000: ⬠30.000"},{value:"premium",label:"> ⬠30.000"}],explanations:{laag:"Bij oudere of goedkopere motor kan WA(+) volstaan.",middel:"Allrisk weegt zwaar, verlies bij diefstal of schade kan flink oplopen.",hoog:"Allrisk is sterk aan te raden, onderverzekering is een groot risico.",premium:"Allrisk en taxatie zijn vrijwel altijd verstandig."},show:e=>e.dekking!==void 0&&e.dekking!=="geen"},{id:"leeftijd",title:"Hoe oud is uw motor?",options:[{value:"jong-3",label:"Jonger dan 3 jaar"},{value:"3-10",label:"3: 10 jaar"},{value:"10-20",label:"10: 20 jaar"},{value:"ouder-20",label:"Ouder dan 20 jaar (oldtimer)"}],explanations:{"jong-3":"Jonge motor, Allrisk meestal logisch.","3-10":"Allrisk vaak nog passend, afhankelijk van waarde.","10-20":"WA+ Beperkt Casco is meestal voldoende.","ouder-20":"Voor oldtimers bestaat vaak een gunstige speciale dekking."},show:e=>e.dekking!==void 0&&e.dekking!=="geen"},{id:"gebruik",title:"Hoe vaak gebruikt u de motor?",options:[{value:"weinig",label:"Weinig (< 3.000 km / jaar)"},{value:"regelmatig",label:"Regelmatig (3.000: 8.000 km / jaar)"},{value:"dagelijks",label:"Dagelijks woon-werk"},{value:"tour-veel",label:"Veel touren (> 8.000 km / jaar)"}],explanations:{weinig:"Lage kilometrage geeft vaak korting, meld dit aan de verzekeraar.",regelmatig:"Gangbaar gebruik, kies passende kilometrage in uw polis.",dagelijks:"Hoger schaderisico, let op kilometerstaffel en zakelijk gebruik.","tour-veel":"Hoog gebruik, kies een polis zonder km-limiet of met ruime staffel."},show:e=>e.dekking!==void 0&&e.dekking!=="geen"},{id:"stalling",title:"Waar staat uw motor 's nachts?",options:[{value:"straat",label:"Op straat / openbare plek"},{value:"schuur",label:"Schuur / overkapping"},{value:"garage-afgesloten",label:"Afgesloten garage"}],explanations:{straat:"Hoogste diefstalrisico, verzekeraar vereist vaak extra slot en/of tracker.",schuur:"Iets veiliger dan straat, meld dit nauwkeurig aan de verzekeraar.","garage-afgesloten":"Laagste risico op diefstal, vaak premiekorting mogelijk."},show:e=>e.dekking!==void 0&&e.dekking!=="geen"},{id:"rijder",title:"Wat is de leeftijd van de hoofdbestuurder?",options:[{value:"tot-24",label:"Tot 24 jaar"},{value:"24-50",label:"24: 50 jaar"},{value:"boven-50",label:"Boven 50 jaar"}],explanations:{"tot-24":"Jonge berijders betalen hogere premies en hebben verhoogd risico.","24-50":"Gangbare leeftijdsgroep, normaal risicoprofiel.","boven-50":"Vaak gunstig premieprofiel."},show:e=>e.dekking!==void 0&&e.dekking!=="geen"}
1,{id:"schadevrij",title:"Hoeveel schadevrije jaren heeft u op de motor?",options:[{value:"0-3",label:"0: 3 jaar"},{value:"3-7",label:"3: 7 jaar"},{value:"7-10",label:"7: 10 jaar"},{value:"10plus",label:"Meer dan 10 jaar"}],explanations:{"0-3":"Beperkte korting, premie is relatief hoog.","3-7":"Redelijke korting opgebouwd.","7-10":"Hoge korting, let op behoud bij schade.","10plus":"Maximale korting, bescherming via no-claim beschermer is overwegen."},show:e=>e.dekking!==void 0&&e.dekking!=="geen"},{id:"ervaring",title:"Hoeveel rijervaring heeft u op de motor?",options:[{value:"beginner",label:"< 2 jaar rijbewijs A"},{value:"ervaren",label:"2: 10 jaar"},{value:"veel-ervaren",label:"Meer dan 10 jaar"}],explanations:{beginner:"Beperkte ervaring verhoogt risico, overweeg cursus voortgezette rijopleiding.",ervaren:"Gangbaar ervaringsniveau.","veel-ervaren":"Ruime ervaring, laag risicoprofiel."},show:e=>e.dekking!==void 0&&e.dekking!=="geen"},{id:"accessoires",title:"Heeft u accessoires of aanvullingen op de motor?",intro:"Denk aan koffersets, navigatie, uitlaten of intercom, vaak niet standaard meeverzekerd.",options:[{value:"geen",label:"Geen"},{value:"tot-2500",label:"Tot ⬠2.500"},{value:"veel",label:"Meer dan ⬠2.500"}],explanations:{geen:"Geen aandachtspunt.","tot-2500":"Vaak standaard dekking tot ⬠1.500: ⬠2.500, controleer dit.",veel:"Vrijwel altijd aparte aangifte en uitbreiding nodig, anders niet gedekt."},show:e=>e.dekking!==void 0&&e.dekking!=="geen"}];function H(e){return V.filter(i=>i.show(e))}function E(e){if(e.motor==="nee")return 0;let i=0;return e.dekking==="geen"&&(i+=55),e.dekking==="weet-niet"&&(i+=15),e.dekking==="wa"&&(e.waarde==="middel"||e.waarde==="hoog"||e.waarde==="premium")&&(i+=15),e.dekking==="wa"&&e.waarde==="premium"&&(i+=5),e.dekking==="wa-beperkt-casco"&&e.waarde==="premium"&&(i+=8),e.stalling==="straat"&&(i+=10),e.stalling==="schuur"&&(i+=4),e.rijder==="tot-24"&&(i+=12),e.ervaring==="beginner"&&(i+=8),e.gebruik==="dagelijks"&&(i+=6),e.gebruik==="tour-veel"&&(i+=4),e.schadevrij==="0-3"&&(i+=5),e.accessoires==="veel"&&(i+=8),e.accessoires==="tot-2500"&&(i+=3),e.leeftijd==="ouder-20"&&e.dekking!=="wa"&&(i+=4),Math.min(100,Math.max(0,i))}function G(e){return e<=20?"laag":e<=40?"matig":e<=60?"verhoogd":"hoog"}const O={laag:{label:"Laag risico",tone:"ok",advies:"Uw motordekking sluit op hoofdlijnen goed aan op uw situatie."},matig:{label:"Matig risico",tone:"warn",advies:"Er zijn enkele verbeterpunten. Ons kantoor kan u helpen om uw motorverzekering te optimaliseren."},verhoogd:{label:"Verhoogd risico",tone:"alert",advies:"Uw dekking past op meerdere punten mogelijk niet bij uw situatie. We adviseren u graag."},hoog:{label:"Hoog risico",tone:"danger",advies:"U loopt aanzienlijk financieel risico. Ons kantoor kan u helpen om dit snel passend te regelen."}};function P(e){const i=[];return e.motor==="nee"||(e.dekking==="geen"?i.push({id:"dekking",titel:"Motorverzekering",tone:"danger",tekst:"Rijden zonder WA is strafbaar én bij schade aan anderen volledig voor eigen rekening."}):e.dekking==="weet-niet"?i.push({id:"dekking",titel:"Motorverzekering",tone:"alert",tekst:"Onduidelijk welke dekking u heeft, een polischeck is verstandig."}):i.push({id:"dekking",titel:"Motorverzekering",tone:"ok",tekst:"De basisdekking is aanwezig."}),e.dekking==="wa"&&(e.waarde==="middel"||e.waarde==="hoog"||e.waarde==="premium")&&i.push({id:"waarde",titel:"Dekking vs. waarde",tone:"alert",tekst:"Alleen WA bij een waardevolle motor, bij diefstal of schade verliest u de motor financieel volledig."}),e.stalling==="straat"&&i.push({id:"stalling",titel:"Stalling op straat",tone:"warn",tekst:"Hoog diefstalrisico, verzekeraar vereist vaak extra slot en/of tracker."}),e.rijder==="tot-24"&&i.push({id:"rijder",titel:"Jonge berijder",tone:"warn",tekst:"Berijders tot 24 jaar hebben verhoogd risico en hogere premies."}),e.ervaring==="beginner"&&i.push({id:"ervaring",titel:"Weinig ervaring",tone:"warn",tekst:"Beperkte rijervaring, overweeg cursus voortgezette rijopleiding."}),e.accessoires==="veel"&&i.push({id:"accessoires",titel:"Veel accessoires",tone:"alert",tekst:"Accessoires boven standaarddekking moeten apart worden aangemeld, anders niet gedekt."}),e.leeftijd==="ouder-20"&&e.dekking!=="wa"&&i.push({id:"oldtimer",titel:"Oldtimer-dekking",tone:"warn",tekst:"Voor motoren > 20 jaar bestaan vaak gunstige oldtimerpolissen, laat dit toetsen."})),i}function _(e){const i=[];return e.motor==="nee"?["Geen motor, er is geen motorverzekering nodig."]:(e.dekking==="geen"&&i.push("Geen verzekering, rijden zonder WA is strafbaar."),e.dekking==="weet-niet"&&i.push("O
1nbekend welke dekking u heeft, controleer dit in uw polis."),e.dekking==="wa"&&(e.waarde==="middel"||e.waarde==="hoog"||e.waarde==="premium")&&i.push("Alleen WA op een waardevolle motor, bij diefstal of schade draagt u alles zelf."),e.stalling==="straat"&&i.push("Stalling op straat verhoogt diefstalrisico aanzienlijk."),e.rijder==="tot-24"&&i.push("Jonge bestuurder, verhoogd risico en doorgaans hogere premie."),e.ervaring==="beginner"&&i.push("Beperkte rijervaring, overweeg een voortgezette rijopleiding (vaak premiekorting)."),e.accessoires==="veel"&&i.push("Accessoires boven ⬠2.500 zijn niet standaard meeverzekerd, meld ze expliciet."),e.accessoires==="tot-2500"&&i.push("Controleer of uw accessoires (koffers, navigatie) onder de standaarddekking vallen."),e.leeftijd==="ouder-20"&&i.push("Oldtimer (> 20 jaar), overweeg een aparte gunstige oldtimerpolis."),i.length===0&&i.push("Geen directe aandachtspunten gevonden. Een periodieke check blijft verstandig."),i)}function $(e){const i=[];return e.motor==="nee"?["Geen verdere acties nodig."]:(e.dekking==="geen"&&i.push("Sluit per direct minimaal een WA-verzekering af."),e.dekking==="weet-niet"&&i.push("Vraag een polisoverzicht op bij uw tussenpersoon of verzekeraar."),e.dekking==="wa"&&(e.waarde==="middel"||e.waarde==="hoog"||e.waarde==="premium")&&i.push("Upgrade naar WA + Beperkt Casco of Allrisk passend bij de waarde."),e.stalling==="straat"&&i.push("Controleer slot- en trackereisen van uw verzekeraar, anders geen dekking bij diefstal."),e.ervaring==="beginner"&&i.push("Doe een voortgezette rijopleiding (bv. RIS), vaak goed voor premiekorting én veiligheid."),(e.accessoires==="veel"||e.accessoires==="tot-2500")&&i.push("Meld al uw accessoires expliciet bij de verzekeraar en kies eventueel een uitbreiding."),e.leeftijd==="ouder-20"&&i.push("Laat ons uitzoeken of een oldtimerpolis voordeliger is."),i.length===0&&i.push("Plan elke 2-3 jaar een polischeck om uw motorverzekering actueel te houden."),i)}function I(e,i){if(!i||Array.isArray(i)&&i.length===0)return"-";const o=V.find(u=>u.id===e);return o?Array.isArray(i)?i.map(u=>o.options.find(t=>t.value===u)?.label??u).join(", "):o.options.find(u=>u.value===i)?.label??String(i):String(i)}const be={neutraalVragen:["motor","accessoires"],risk:{dekking:["geen","weet-niet"],stalling:["straat"],rijder:["tot-24"],ervaring:["beginner"],accessoires:["veel"]}};function je({question:e,answers:i,onSelect:o,kantoorNaam:u,navigatie:t}){const s=i[e.id],l=!!e.multi,n=l?Array.isArray(s)?s:[]:typeof s=="string"?[s]:[],a=pe(e,n,be),d=u??"uw adviseur";return r.jsx(ke,{toelichting:r.jsx(he,{waarom:e.intro,feedback:a}),navigatie:t,aiHulp:r.jsx(J,{onderwerp:`Motor Risicoscan - ${e.title}`,resetKey:e.id,kantoorNaam:d,systeemExtra:`Je bent een uitleg-assistent bij de Motor Risicoscan. Geef UITSLUITEND uitleg en achtergrond bij de huidige vraag, in gewone woorden op B1-niveau. Geef NOOIT advies of de schijn van advies over wat iemand moet kiezen of afsluiten. Verwijs voor persoonlijk advies altijd door naar een menselijke Wft-adviseur van ${d}. Houd antwoorden kort (max ~120 woorden). Gebruik nooit lange streepjes; gebruik '-' of een nieuwe zin. 2 3Huidige vraag: "${e.title}"${e.intro?` 4Intro: ${e.intro}`:""}`,context:{vraag:e.title},suggesties:["Wat wordt hier precies bedoeld?","Waarom is dit belangrijk?","Kun je dit in gewone woorden uitleggen?"]}),children:r.jsx(N,{className:"border-border/70 shadow-sm",children:r.jsxs(z,{className:"p-6 sm:p-8",children:[r.jsx("h2",{className:"text-xl sm:text-2xl font-semibold text-foreground tracking-tight",children:e.title}),e.intro&&r.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:e.intro}),r.jsx("div",{className:"mt-6 grid gap-2 sm:grid-cols-2",children:e.options.map(c=>{const x=n.includes(c.value);return r.jsxs(F,{type:"button",variant:x?"default":"outline",size:"lg",onClick:()=>o(c.value),className:b("justify-start h-auto py-3 px-4 text-left whitespace-normal gap-3",x&&"ring-2 ring-primary/40"),children:[l&&r.jsx("span",{className:b("flex h-5 w-5 shrink-0 items-center justify-center rounded border",x?"bg-primary-foreground
4/20 border-primary-foreground/40":"border-border bg-background"),children:x&&r.jsx(U,{className:"h-3.5 w-3.5"})}),r.jsx("span",{className:"flex-1",children:c.label})]},c.value)})}),r.jsx(B,{className:"mt-8 pt-4 border-t border-border/60"})]})})})}async function we(e,i,o){const u=await K(i?.logo_url),t=new Q({unit:"pt",format:"a4"}),s=t.internal.pageSize.getWidth(),l=t.internal.pageSize.getHeight(),n=48;let a=n;const d=E(e),c=G(d),x=O[c],g=P(e),f=_(e),j=$(e),S={ok:[34,139,90],warn:[202,162,30],alert:[217,119,6],danger:[200,50,50]},[W,R,k]=S[x.tone];t.setFillColor(76,145,255),t.rect(0,0,s,8,"F");const v=X(t,u);v&&(a=Math.max(a,36+v+24)),t.setFont("helvetica","bold"),t.setFontSize(20),t.setTextColor(20,30,50),a+=16,t.text("Motor Risicoscan",n,a),t.setFont("helvetica","normal"),t.setFontSize(10),t.setTextColor(120,130,145),a+=18,t.text(`Gegenereerd op ${new Date().toLocaleDateString("nl-NL",{day:"numeric",month:"long",year:"numeric"})}`,n,a),i?.naam&&(a+=14,t.setFont("helvetica","bold"),t.setFontSize(11),t.setTextColor(40,50,65),t.text(`Aangeboden door ${i.naam}`,n,a)),o?.naam&&(a+=14,t.setFont("helvetica","normal"),t.setFontSize(10),t.setTextColor(80,90,105),t.text(`Voor: ${o.naam}`,n,a)),a+=28,t.setDrawColor(232,236,241),t.setFillColor(250,251,252),t.roundedRect(n,a,s-n*2,110,8,8,"FD"),t.setFont("helvetica","bold"),t.setFontSize(48),t.setTextColor(W,R,k),t.text(String(d),n+24,a+70),t.setFontSize(10),t.setTextColor(120,130,145),t.setFont("helvetica","normal"),t.text("Risicoscore (0-100)",n+24,a+90),t.setFont("helvetica","bold"),t.setFontSize(16),t.setTextColor(W,R,k),t.text(x.label,n+180,a+40),t.setFont("helvetica","normal"),t.setFontSize(10),t.setTextColor(60,70,85);const m=t.splitTextToSize(x.advies,s-n*2-200);if(t.text(m,n+180,a+60),a+=130,g.length>0){a>l-160&&(t.addPage(),a=n),t.setFont("helvetica","bold"),t.setFontSize(13),t.setTextColor(20,30,50),t.text("Risicogebieden",n,a),a+=14,t.setFont("helvetica","normal"),t.setFontSize(10);for(const p of g){a>l-80&&(t.addPage(),a=n);const[h,T,w]=S[p.tone];t.setFont("helvetica","bold"),t.setTextColor(h,T,w),t.text(p.titel,n,a+12),t.setFont("helvetica","normal"),t.setTextColor(80,90,105);const C=t.splitTextToSize(p.tekst,s-n*2);t.text(C,n,a+24),a+=12+C.length*11+8}}if(j.length>0){a>l-120&&(t.addPage(),a=n),a+=8,t.setFont("helvetica","bold"),t.setFontSize(13),t.setTextColor(20,30,50),t.text("Aanbevolen acties",n,a),a+=6,t.setFont("helvetica","normal"),t.setFontSize(10),t.setTextColor(50,60,75);for(const p of j){a>l-80&&(t.addPage(),a=n);const h=t.splitTextToSize(`⢠${p}`,s-n*2);t.text(h,n,a+12),a+=12*h.length+4}}a>l-120&&(t.addPage(),a=n),a+=12,t.setFont("helvetica","bold"),t.setFontSize(13),t.setTextColor(20,30,50),t.text("Aandachtspunten",n,a),a+=6,t.setFont("helvetica","normal"),t.setFontSize(10),t.setTextColor(50,60,75);for(const p of f){a>l-80&&(t.addPage(),a=n);const h=t.splitTextToSize(`⢠${p}`,s-n*2);t.text(h,n,a+12),a+=12*h.length+4}a>l-80&&(t.addPage(),a=n),a+=16,t.setFont("helvetica","bold"),t.setFontSize(13),t.setTextColor(20,30,50),t.text("Uw antwoorden",n,a),a+=6;for(const p of H(e)){a>l-80&&(t.addPage(),a=n),a+=14,t.setFont("helvetica","bold"),t.setFontSize(10),t.setTextColor(40,50,65);const h=t.splitTextToSize(p.title,s-n*2);t.text(h,n,a),a+=12*h.length,t.setFont("helvetica","normal"),t.setTextColor(90,100,115
4);const T=I(p.id,e[p.id]);t.text(`Antwoord: ${T}`,n,a+2),a+=10}a+=24,a>l-90&&(t.addPage(),a=n),t.setDrawColor(232,236,241),t.setFillColor(248,249,251);const A=t.splitTextToSize(ue,s-n*2-24),M=22+A.length*10+10;t.roundedRect(n,a,s-n*2,M,6,6,"FD"),t.setFont("helvetica","bold"),t.setFontSize(9),t.setTextColor(80,90,105),t.text("Disclaimer",n+12,a+16),t.setFont("helvetica","normal"),t.setFontSize(8),t.setTextColor(110,120,135),t.text(A,n+12,a+30),Z(t,i),await Y(t,i,"Motor Risicoscan",`motor-risicoscan-${d}.pdf`,{score:d,categorie:x.label,klantNaam:o?.naam,klantEmail:o?.email,klantTelefoon:o?.telefoon,actie:o?.actie,voorkeurDag:o?.voorkeurDag,voorkeurTijdvak:o?.voorkeurTijdvak,opmerking:o?.opmerking}),t.save(`motor-risicoscan-${d}.pdf`)}const Ne="Motor Risicoscan",D={ok:{text:"text-emerald-600",bg:"bg-emerald-50",ring:"ring-emerald-200",bar:"bg-emerald-500",border:"border-emerald-200"},warn:{text:"text-yellow-600",bg:"bg-yellow-50",ring:"ring-yellow-200",bar:"bg-yellow-500",border:"border-yellow-200"},alert:{text:"text-orange-600",bg:"bg-orange-50",ring:"ring-orange-200",bar:"bg-orange-500",border:"border-orange-200"},danger:{text:"text-red-600",bg:"bg-red-50",ring:"ring-red-200",bar:"bg-red-500",border:"border-red-200"}};function ze({answers:e,onRestart:i,kantoor:o}){const u=E(e),t=G(u),s=O[t],l=D[s.tone],n=_(e),a=$(e),d=P(e),c=H(e),x=async g=>{await we(e,o??void 0,g)};return r.jsxs("div",{className:"space-y-6",children:[r.jsx(N,{className:"border-border/70 shadow-sm overflow-hidden",children:r.jsxs(z,{className:"p-6 sm:p-8",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-6",children:[r.jsxs("div",{className:b("flex flex-col items-center justify-center rounded-xl ring-1 px-6 py-5 shrink-0",l.bg,l.ring),children:[r.jsx("div",{className:b("text-5xl font-bold leading-none",l.text),children:u}),r.jsx("div",{className:"mt-2 text-xs uppercase tracking-wide text-muted-foreground",children:"van 100"})]}),r.jsxs("div",{className:"flex-1",children:[r.jsx("div",{className:b("text-sm font-semibold uppercase tracking-wide",l.text),children:s.label}),r.jsxs("h2",{className:"mt-1 text-2xl font-semibold tracking-tight",children:["Uw ",Ne]}),r.jsx("p",{className:"mt-3 text-sm text-muted-foreground leading-relaxed",children:s.advies})]})]}),r.jsxs("div",{className:"mt-6",children:[r.jsx("div",{className:"relative h-2 w-full rounded-full bg-secondary overflow-hidden",children:r.jsx("div",{className:b("absolute inset-y-0 left-0 rounded-full transition-all",l.bar),style:{width:`${u}%`}})}),r.jsxs("div",{className:"mt-2 flex justify-between text-[11px] text-muted-foreground",children:[r.jsx("span",{children:"0: Laag"}),r.jsx("span",{children:"40"}),r.jsx("span",{children:"60"}),r.jsx("span",{children:"100: Hoog"})]})]})]})}),d.length>0&&r.jsx(N,{className:"border-border/70 shadow-sm",children:r.jsxs(z,{className:"p-6 sm:p-8",children:[r.jsx("h3",{className:"text-lg font-semibold tracking-tight",children:"Uw risicogebieden"}),r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Een overzicht per onderwerp van de scan."}),r.jsx("div",{className:"mt-5 grid gap-3 sm:grid-cols-2",children:d.map((g,f)=>{const j=D[g.tone],S=g.tone==="ok"?L:q;return r.jsx("div",{className:b("rounded-lg border p-4",j.bg,j.border),children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(S,{className:b("h-5 w-5 shrink-0 mt-0.5",j.text)}),r.jsxs("div",{children:[r.jsx("div",{className:b("text-xs font-semibold uppercase tracking-wide",j.text),children:g.titel}),r.jsx("p",{className:"mt-1 text-sm leading-relaxed text-foreground/90",children:g.tekst})]})]})},`${g.id}-${f}`)})})]})}),r.jsx(N,{className:"border-border/70 shadow-sm",children:r.jsxs(z,{className:"p-6 sm:p-8",children:[r.jsx("h3",{className:"text-lg font-semibold tracking-tight",children:"Aandachtspunten"}),r.jsx("ul",{className:"mt-4 space-y-3",children:n.map((g,f)=>r.jsxs("li",{className:"flex gap-3 text-sm",children:[r.jsx(ee,{className:b("h-5 w-5 shrink-0 mt-0.5",l.text)}),r.jsx("span",{className:"text-foreground/90 leading-relaxed",children:g})]},f))})]})}),r.jsx(N,{className:"border-border/70 shadow-sm",children:r.jsxs(z,{className:"p-6 sm:p-8",children:[r.jsx("h3",{className:"text-lg font-semibold tracking-tight",children:"Aanbevolen acties"}),r.jsx("ul",{className:"mt-4 space-y-3",children:a.map((g,f)=>r.jsxs("li",{className:"flex gap-3 text-sm",children:[r.jsx(te,{className:"h-5 w-5 shrink-0 mt-0.5 text-primary"}
4),r.jsx("span",{className:"text-foreground/90 leading-relaxed",children:g})]},f))}),o&&r.jsxs("div",{className:"mt-6 rounded-md border border-primary/20 bg-primary/5 p-4 text-sm text-foreground/90 leading-relaxed",children:["Wilt u uw verzekering persoonlijk laten doorlichten?",r.jsx("br",{className:"hidden sm:block"}),r.jsxs("span",{className:"text-muted-foreground",children:[o.naam," kijkt graag vrijblijvend met u mee en regelt waar nodig de juiste aanpassingen."]})]})]})}),r.jsx(N,{className:"border-border/70 shadow-sm",children:r.jsxs(z,{className:"p-6 sm:p-8",children:[r.jsx("h3",{className:"text-lg font-semibold tracking-tight",children:"Uw antwoorden"}),r.jsx("dl",{className:"mt-4 divide-y divide-border",children:c.map(g=>r.jsxs("div",{className:"py-3 grid grid-cols-1 sm:grid-cols-2 gap-1",children:[r.jsx("dt",{className:"text-sm text-muted-foreground",children:g.title}),r.jsx("dd",{className:"text-sm font-medium text-foreground",children:I(g.id,e[g.id])})]},g.id))})]})}),r.jsx(N,{className:"border-border/70 shadow-sm",children:r.jsxs(z,{className:"p-6 sm:p-8 space-y-5",children:[r.jsx(re,{kantoor:o,onVerstuur:x,documentWoord:"rapport"}),r.jsx("div",{children:r.jsxs(F,{variant:"ghost",size:"sm",onClick:i,children:[r.jsx(xe,{className:"h-3.5 w-3.5"}),"Scan opnieuw doen"]})})]})}),r.jsx(B,{variant:"boxed"})]})}function Se({kantoor:e}){const[i,o]=y.useState({}),[u,t]=y.useState(0);ie(u);const[s,l]=y.useState(!1),n=y.useMemo(()=>H(i),[i]),a=n.length,d=Math.min(u,Math.max(0,a-1));fe(d);const c=n[d],g=(k=>{if(!k)return!1;const v=i[k.id];return Array.isArray(v)?v.length>0:!!v})(c),f=s?100:a===0?0:Math.round((d+(g?1:0))/a*100),j=k=>{c&&o(v=>{const m={...v};if(c.multi){const A=Array.isArray(v[c.id])?[...v[c.id]]:[],M=c.exclusiveValues??[];let p;if(M.includes(k))p=A.includes(k)?[]:[k];else{let h=A.filter(w=>!M.includes(w));const T=c.exclusiveGroups??[];for(const w of T)w.includes(k)&&(h=h.filter(C=>!w.includes(C)||C===k));p=h.includes(k)?h.filter(w=>w!==k):[...h,k]}m[c.id]=p}else m[c.id]=k,c.id==="motor"&&k==="nee"&&(delete m.dekking,delete m.waarde,delete m.leeftijd,delete m.gebruik,delete m.stalling,delete m.rijder,delete m.schadevrij,delete m.ervaring,delete m.accessoires),c.id==="dekking"&&k==="geen"&&(delete m.waarde,delete m.leeftijd,delete m.gebruik,delete m.stalling,delete m.rijder,delete m.schadevrij,delete m.ervaring,delete m.accessoires);return m})},S=()=>{d<a-1?t(d+1):l(!0)},W=()=>{d>0&&t(d-1)},R=()=>{o({}),t(0),l(!1)};return r.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-background to-secondary/40",children:[r.jsx("header",{className:"border-b border-border/60 bg-background/80 backdrop-blur",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-4 sm:px-6 py-4 flex items-center gap-3",children:[e?.logo_url?r.jsx("img",{src:e.logo_url,alt:e.naam,className:"max-h-12 max-w-[200px] h-auto w-auto rounded-md object-contain bg-background"}):r.jsx("div",{className:"h-9 w-9 rounded-md bg-primary/10 text-primary flex items-center justify-center",children:r.jsx(L,{className:"h-5 w-5"})}),r.jsxs("div",{className:"min-w-0",children:[r.jsx("h1",{className:"text-base font-semibold leading-none tracking-tight",children:"Motor Risicoscan"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1 truncate",children:"Ontdek in 1 minuut of uw verzekering nog passend is"})]})]})}),r.jsxs("main",{className:s?"max-w-3xl mx-auto px-4 sm:px-6 py-8 sm:py-12":"max-w-6xl mx-auto px-4 sm:px-6 py-8 sm:py-12",children:[!s&&r.jsxs("div",{className:"mb-6",children:[r.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground mb-2",children:[r.jsxs("span",{children:["Vraag ",d+1," van ",a]}),r.jsxs("span",{children:[f,"%"]})]}),r.jsx(me,{value:f,className:"h-2"})]}),!s&&c&&r.jsx(r.Fragment,{children:r.jsx(je,{question:c,answers:i,onSelect:j,kantoorNaam:e?.naam,navigatie:r.jsxs("div",{className:"flex items-center justify-between gap-3",children:[r.jsxs(F,{variant:"ghost",onClick:W,disabled:d===0,children:[r.jsx(ae,{className:"h-4 w-4"}),"Vorige"]}),r.jsxs(F,{onClick:S,disabled:!g,size:"lg",children:[d===a-1?"Bekijk resultaat":"Volgende",r.jsx(ve,{className:"h-4 w-4"})]})]})})}),s&&r.jsx(ze,{answers:i,onRestart:R,kantoor:e})]})]})}function Ve(){const{kantoorSlug:e}=ne.useParams(),[i,o]=y.useState({status:"loading"});if(y.useEffect(()=>{let t=!1;return(async()=>{o({status:"loading"});const s=await ge(e);
4if(t)return;if(!s){se(),o({status:"niet-gevonden"});return}const{data:l}=await oe.from("kantoren_publiek").select("email, telefoon, contactpersoon").eq("id",s.id).maybeSingle();t||(le(s),o({status:"ok",kantoor:{id:s.id,naam:s.naam,logo_url:s.logo_url,primaire_kleur:s.primaire_kleur,website:s.website,email:l?.email??null,telefoon:l?.telefoon??null,contactpersoon:l?.contactpersoon??null}}))})(),()=>{t=!0}},[e]),i.status==="loading")return r.jsx("div",{className:"min-h-screen flex items-center justify-center",children:r.jsx(de,{className:"h-6 w-6 animate-spin text-muted-foreground"})});if(i.status==="niet-gevonden")return r.jsxs(ye,{titel:"Kantoor niet gevonden",children:[r.jsxs("p",{className:"text-muted-foreground",children:["Het adres"," ",r.jsxs("code",{className:"bg-muted px-1.5 py-0.5 rounded",children:["/cv/",e,"/avp"]})," ","hoort niet bij een bekend kantoor."]}),r.jsx("div",{className:"mt-6",children:r.jsx(ce,{to:"/",children:r.jsx(F,{variant:"outline",children:"Terug naar home"})})})]});const u=i.kantoor.primaire_kleur||void 0;return r.jsx("div",{style:u?{"--primary":u}:void 0,children:r.jsx(Se,{kantoor:i.kantoor})})}function ye({titel:e,children:i}){return r.jsx("div",{className:"min-h-screen bg-gradient-to-b from-background to-muted/40",children:r.jsxs("section",{className:"mx-auto max-w-2xl px-6 py-24",children:[r.jsx("h1",{className:"text-3xl font-bold tracking-tight mb-4",children:e}),i]})})}export{Ve as component};
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.