1import{o as e,t}from"./jsx-runtime-DVpe7PXp.js";import{U as n}from"./useStore-1_i0V8rQ.js";import{t as r}from"./link-C0-sg3tz.js";import{S as i,x as a}from"./content-C4PhXUat.js";import{t as o}from"./useSuspenseQuery-C5XCrtDK.js";import{t as s}from"./createLucideIcon-ZVWMvMnB.js";import{n as c,r as l,t as u}from"./textarea-DXHjMTaR.js";import{t as ee}from"./cable-By_qfdQo.js";import{t as te}from"./FaqSection-DlvVswyR.js";import{t as ne}from"./gauge-U3HOfaxw.js";import{t as d}from"./sparkles-BIiF8pjE.js";import{t as re}from"./wrench-CB9QYgG3.js";import{t as f}from"./zap-kc1r-NuQ.js";import{r as ie}from"./contact-CuRL30M0.js";import{Cn as p,Gn as m,Jt as ae,Mn as h,Nn as g,Sn as oe,Wn as _,en as se,qt as ce,tn as le,ur as v,wn as ue,xn as y}from"./index-BVUChw4S.js";import{t as b}from"./input-CRVKsjP8.js";import{t as x}from"./label-B7J1zDZX.js";import{t as de}from"./cable-images-CSazFg8a.js";import{t as fe}from"./load-balancer-images-BslT6Ym-.js";import{n as pe}from"./mounting-images-Qw-pqpO9.js";var me=s(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),S=s(`clipboard-check`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`m9 14 2 2 4-4`,key:`df797q`}]]),C=s(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),he=s(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),ge=s(`skip-forward`,[[`path`,{d:`M21 4v16`,key:`7j8fe9`}],[`path`,{d:`M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z`,key:`zs4d6`}]]),w=e(n()),T=t();function _e({steps:e,current:t,onGoto:n,completedThrough:r}){return(0,T.jsx)(`nav`,{"aria-label":`Konfigurator-steg`,className:`border-b border-border/60 bg-background/95 backdrop-blur`,children:(0,T.jsx)(`div`,{className:`mx-auto flex max-w-6xl items-center gap-1 overflow-x-auto px-5 py-3 text-sm`,children:e.map((e,i)=>{let a=i<=r&&i!==t,o=i===t,s=i<=r+1;return(0,T.jsx)(`button`,{type:`button`,disabled:!s,onClick:()=>s&&n(i),className:g(`whitespace-nowrap rounded-sm px-3 py-1.5 text-xs font-medium uppercase tracking-wider transition-colors`,o?`bg-foreground text-background`:a?`text-foreground hover:bg-secondary`:`text-muted-foreground`,!s&&`opacity-40`),children:(0,T.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[a?(0,T.jsx)(_,{className:`size-3 text-primary`}):(0,T.jsx)(`span`,{className:g(`grid size-4 place-items-center rounded-full text-[10px]`,o?`bg-background text-foreground`:`bg-foreground
1/10 text-foreground/70`),children:i+1}),e.label]})},e.key)})})})}function E({title:e,subtitle:t,priceSek:n,priceLabel:r,imageUrl:i,selected:o,onSelect:s,badge:c,children:l,compact:u}){return(0,T.jsxs)(`button`,{type:`button`,onClick:s,"aria-pressed":o,className:g(`group relative flex flex-col overflow-hidden rounded-sm border bg-card text-left transition-all`,o?`border-primary ring-2 ring-primary/30`:`border-border/70 hover:-translate-y-0.5 hover:border-foreground/30`),children:[i&&!u&&(0,T.jsxs)(`div`,{className:`relative aspect-[5/4] overflow-hidden bg-surface`,children:[(0,T.jsx)(`img`,{src:i,alt:`${e} â tillval i laddboxkonfiguratorn`,loading:`lazy`,className:`absolute inset-0 size-full object-contain p-6`,referrerPolicy:`no-referrer`,decoding:`async`,width:1200,height:900}),c&&(0,T.jsx)(`span`,{className:`absolute top-3 left-3 rounded-sm bg-primary px-2.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-primary-foreground`,children:c})]}),(0,T.jsxs)(`div`,{className:g(`flex flex-1 flex-col gap-1 p-5`,u&&`p-4`),children:[(0,T.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,T.jsxs)(`div`,{className:`min-w-0`,children:[(0,T.jsx)(`h3`,{className:`font-display text-lg font-medium text-foreground`,children:e}),t&&(0,T.jsx)(`p`,{className:`mt-0.5 text-sm text-muted-foreground line-clamp-2`,children:t})]}),(0,T.jsx)(`span`,{"aria-hidden":!0,className:g(`grid size-6 flex-none place-items-center rounded-full border transition-colors`,o?`border-primary bg-primary text-primary-foreground`:`border-border bg-background`),children:o&&(0,T.jsx)(_,{className:`size-3.5`,strokeWidth:3})})]}),l,(0,T.jsx)(`div`,{className:`mt-auto pt-3 text-sm font-medium text-foreground`,children:r??(n==null?`â`:n===0?`IngÃ¥r (0 kr)`:`+ ${a(n)}`)})]})]})}function ve({charger:e,subtotal:t,afterGT:n,onPrev:r,onNext:i,nextLabel:o,nextDisabled:s,hidePrev:c,hideNext:u}){return(0,T.jsx)(`div`,{className:`sticky bottom-0 z-30 border-t border-border/70 bg-background/95 backdrop-blur`,children:(0,T.jsxs)(`div`,{className:`mx-auto flex max-w-6xl items-center gap-3 px-4 py-3 md:gap-6 md:px-5 md:py-4`,children:[(0,T.jsx)(`div`,{className:`hidden size-12 flex-none overflow-hidden rounded-sm border border-border bg-secondary md:grid md:place-items-center`,children:e?.image_url?(0,T.jsx)(`img`,{src:e.image_url,alt:``,className:`size-full object-contain p-1.5`,loading:`lazy`,decoding:`async`,width:1200,height:900}):(0,T.jsx)(f,{className:`size-5 text-foreground/40`})}),(0,T.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,T.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-muted-foreground`,children:n===t?`Totalt`:`Ditt pris efter Grön Teknik`}),(0,T.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-3`,children:[(0,T.jsx)(`span`,{className:`font-display text-xl font-medium text-foreground md:text-2xl`,children:a(n)}),n!==t&&(0,T.jsx)(`span`,{className:`text-xs text-muted-foreground line-through md:text-sm`,children:a(t)})]})]}),!c&&(0,T.jsxs)(h,{type:`button`,variant:`ghost`,size:`lg`,onClick:r,className:`rounded-sm`,"aria-label":`FöregÃ¥ende steg`,children:[(0,T.jsx)(l,{className:`size-4 md:mr-1`}),(0,T.jsx)(`span`,{className:`hidden md:inline`,children:`Tillbaka`})]}),!u&&(0,T.jsxs)(h,{type:`button`,size:`lg`,onClick:i,disabled:s,className:`rounded-sm bg-primary px-5 text-primary-foreground hover:bg-primary/90 md:px-8`,children:[o,` `,(0,T.jsx)(m,{className:`ml-1 size-4`})]})]})})}function ye({charger:e,lines:t,subtotal:n,gronTeknik:r,afterGT:i}){return(0,T.jsx)(`aside`,{className:`sticky top-6 hidden lg:block`,children:(0,T.jsxs)(`div`,{className:`rounded-sm border border-border/70 bg-card p-6 shadow-sm`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,T.jsx)(`div`,{className:`grid size-14 flex-none place-items-center overflow-hidden rounded-sm border border-border bg-secondary`,children:e?.image_url?(0,T.jsx)(`img`,{src:e.image_url,alt:``,className:`size-full object-contain p-1.5`,loading:`lazy`,decoding:`async`,width:1200,height:900}
1):(0,T.jsx)(f,{className:`size-5 text-foreground/40`})}),(0,T.jsxs)(`div`,{className:`min-w-0`,children:[(0,T.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-widest text-muted-foreground`,children:`Din konfiguration`}),(0,T.jsx)(`div`,{className:`truncate font-display text-base font-medium text-foreground`,children:e?.name??`Välj laddbox`})]})]}),(0,T.jsx)(`dl`,{className:`mt-5 divide-y divide-border/60 text-sm`,children:t.length===0?(0,T.jsx)(`p`,{className:`py-3 text-sm text-muted-foreground`,children:`Val du gör visas här löpande.`}):t.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-start justify-between gap-3 py-2.5`,children:[(0,T.jsx)(`dt`,{className:`text-muted-foreground`,children:e.label}),(0,T.jsx)(`dd`,{className:`whitespace-nowrap font-medium text-foreground`,children:a(e.sek)})]},t))}),t.length>0&&(0,T.jsxs)(`div`,{className:`mt-4 space-y-1.5 border-t border-border pt-4 text-sm`,children:[(0,T.jsxs)(`div`,{className:`flex justify-between text-muted-foreground`,children:[(0,T.jsx)(`span`,{children:`Delsumma`}),(0,T.jsx)(`span`,{children:a(n)})]}),r>0&&(0,T.jsxs)(`div`,{className:`flex justify-between text-primary`,children:[(0,T.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,T.jsx)(d,{className:`size-3.5`}),` Grön Teknik (50 %)`]}),(0,T.jsxs)(`span`,{className:`font-medium`,children:[`â`,a(r)]})]}),(0,T.jsxs)(`div`,{className:`flex items-baseline justify-between border-t border-border/60 pt-2`,children:[(0,T.jsx)(`span`,{className:`text-xs font-medium uppercase tracking-widest text-muted-foreground`,children:`Ditt pris`}),(0,T.jsx)(`span`,{className:`font-display text-2xl font-medium text-foreground`,children:a(i)})]}),(0,T.jsx)(`p`,{className:`pt-1 text-[11px] text-muted-foreground`,children:`Riktpris â installatören bekräftar efter platsbesök.`})]})]})})}var D={"zaptec-go":[`Vit`,`Svart`],"easee-one":[`Vit`,`Svart`,`Antracit`,`Röd`],"easee-charge-lite":[`Vit`,`Svart`],"charge-amps-halo":[`Vit`,`Svart`],"charge-amps-aura":[`Vit`,`Svart`],"garo-entity-pro":[`Vit`],"wallbox-pulsar-plus":[`Vit`,`Svart`]};function be(e){return e?D[e]??[]:[]}var O={wall:`Standardinstallation, vägg`,pole:`Standardinstallation, stolpe`,none:`Ingen installation`},k=1849;function xe(e,t,n,r,i){let a=[];t&&a.push({label:`${t.name}${e.color?` (${e.color})`:``}`,sek:t.price_sek??0}),e.install===`wall`?a.push({label:O.wall,sek:t?.install_price_sek??0}):e.install===`pole`&&a.push({label:O.pole,sek:(t?.install_price_sek??0)+k}),n&&a.push({label:`Laddkabel: ${n.name}`,sek:n.price_sek??0}),r&&a.push({label:`Lastbalansering: ${r.name}`,sek:Number(r.price_sek??0)});for(let e of i)a.push({label:`Tillbehör: ${e.name}`,sek:e.price_sek??0});return a}function A(e,t){let n=e.reduce((e,t)=>e+(t.sek||0),0),r=t?Math.round(n*.5):0;return{subtotal:n,gronTeknik:r,afterGT:n-r}}function j(e,t,n,r,i,a){let o=[];return o.push(`KONFIGURATION FRÃ
N /konfigurator`),o.push(``),t&&o.push(`
1Laddbox: ${t.name} (${t.slug})`),e.color&&o.push(`Färg: ${e.color}`),o.push(`Installation: ${O[e.install]}`),o.push(`Laddkabel: ${n?`${n.name} (${n.slug})`:`Ingen`}`),o.push(`Lastbalansering: ${r?`${r.name} (${r.slug})`:`Ingen`}`),o.push(`Tillbehör: ${i.length?i.map(e=>e.name).join(`, `):`Inga`}`),o.push(``),o.push(`Delsumma: ${a.subtotal} kr`),o.push(`Grön Teknik-avdrag: -${a.gronTeknik} kr`),o.push(`Uppskattat pris: ${a.afterGT} kr`),o.join(` 2`)}function M(){let{p:e}=ce.useSearch(),t=v(),{data:n}=o(ae),{chargers:s,brands:l,cables:d,balancers:f,mounting:m}=n,g=(0,w.useMemo)(()=>Object.fromEntries(l.map(e=>[e.id,e])),[l]),[_,x]=(0,w.useState)({chargerSlug:e||void 0,install:`wall`,accessorySlugs:[]}),[D,O]=(0,w.useState)(+!!_.chargerSlug),[k,M]=(0,w.useState)({name:``,email:``,phone:``,property_type:`villa`}),[F,I]=(0,w.useState)(!1),L=s.find(e=>e.slug===_.chargerSlug),R=d.find(e=>e.slug===_.cableSlug),z=f.find(e=>e.slug===_.balancerSlug),B=m.filter(e=>_.accessorySlugs.includes(e.slug)),V=(L?.connector_type??`Type 2`).toLowerCase().split(` `)[0],H=L?L.phases===3?11:3.7:11,U=(0,w.useMemo)(()=>{let e=d.filter(e=>e.connector_type?.toLowerCase().includes(V)).map(e=>{let t=Math.abs((e.max_power_kw??0)-H),n=Math.abs((e.length_m??5)-5);return{c:e,score:t*10+n}});return e.sort((e,t)=>e.score-t.score||(e.c.price_sek??0)-(t.c.price_sek??0)),e.slice(0,5).map(e=>e.c)},[d,V,H]),W=be(_.chargerSlug),G=W.length>0,K=(0,w.useMemo)(()=>[{key:`laddbox`,label:`Laddbox`},{key:`installation`,label:`Installation`},...G?[{key:`farg`,label:`Färg`}]:[],{key:`kabel`,label:`Laddkabel`},{key:`lastbalansering`,label:`Lastbalansering`},{key:`tillbehor`,label:`Tillbehör`},{key:`summering`,label:`Summering`}],[G]),q=xe(_,L,R,z,B),J=A(q,_.install!==`none`),Y=K[D]?.key,X=Y===`laddbox`?!!_.chargerSlug:Y===`farg`?!!_.color:!0,Se=Y===`kabel`||Y===`lastbalansering`||Y===`tillbehor`,Z=(0,w.useRef)(null);(0,w.useEffect)(()=>{Z.current?.scrollIntoView({behavior:`smooth`,block:`start`})},[D]);let Q=K[D]?.key??`okant`;(0,w.useEffect)(()=>{ue(D,Q,K.length)},[D,Q,K.length]);function $(e){e.chargerSlug&&p(`configurator_select_charger`,{charger:e.chargerSlug}),x(t=>({...t,...e}))}function Ce(){Y===`kabel`&&$({cableSlug:void 0}),Y===`lastbalansering`&&$({balancerSlug:void 0}),Y===`tillbehor`&&$({accessorySlugs:[]}),p(`configurator_skip_step`,{step_key:Y??``}),D<K.length-1&&O(D+1)}async function we(e){if(e.preventDefault(),!L){y.error(`Välj en laddbox först.`),O(0);return}if(!k.name||!k.email||!k.phone){y.error(k.name?k.email?`Fyll i ditt telefonnummer.`:`Fyll i din e-postadress.`:`Fyll i ditt namn.`);return}I(!0);try{await i({name:k.name.trim(),email:k.email.trim(),phone:k.phone.trim(),city:k.city?.trim()||void 0,postal_code:k.postal_code?.trim()||void 0,address:k.address?.trim()||void 0,property_type:k.property_type,preferred_charger_slug:L.slug,message:j(_,L,R,z,B,J)+(k.message?`\n\nMeddelande från kund:\n${k.message}`:``),source_page:`/konfigurator`}),p(`lead_submitted`,{source_page:`/konfigurator`,charger:L.slug}),y.success(`Tack! Din konfiguration är skickad.`),t({to:`/tack`})}catch(e){console.error(e),y.error(`Något gick fel. Försök igen om en stund.`)}finally{I(!1)}}return(0,T.jsxs)(`div`,{className:`flex min-h-screen flex-col bg-background`,children:[(0,T.jsx)(`div`,{className:`border-b border-border/60 bg-background`,children:(0,T.jsxs)(`div`,{className:`mx-auto flex max-w-6xl items-center justify-between px-5 py-4`,children:[(0,T.jsxs)(r,{to:`/laddboxar`,className:`inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground`,children:[(0,T.jsx)(me,{className:`size-4`}),` Avbryt`]}),(0,T.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[`Steg `,(0,T.jsx)(`span`,{className:`font-medium text-foreground`,children:D+1}),` av `,K.length]})]})}),(0,T.jsx)(_e,{steps:K,current:D,onGoto:O,completedThrough:D-1}),(0,T.jsx)(`main`,{className:`flex-1`,ref:Z,children:(0,T.jsxs)(`div`,{className:Y===`summering`?`mx-auto max-w-6xl px-5 py-10 md:py-14`:`mx-auto grid max-w-6xl gap-10 px-5 py-10 md:py-14 lg:grid-cols-[minmax(0,1fr)_320px]`,children:[(0,T.jsxs)(`div`,{className:`min-w-0`,children:[Se&&(0,T.jsx)(`div`,{className:`mb-6 flex justify-end`,children:(0,T.jsxs)(h,{type:`button`,variant:`ghost`,size:`sm`,onClick:Ce,className:`rounded-sm text-muted-foreground hover:text-foreground`,children:[(0,T.jsx)(ge,{className:`mr-1.5 size-4`}),`Hoppa över steget`]})}),Y===`laddbox`&&(0,T.jsx)(N,{icon:(0,T.jsx)(C,{className:`size-5`}),title:`Välj din laddbox`,intro:`Vilken laddbox vill du installera? Alla priser är exklusive installation.`,children:(0,T.jsx)(`div`,{className:`grid gap-5 sm:grid-cols-2 lg:grid-cols-3`,children:s.map(e=>
2(0,T.jsx)(E,{title:e.name,subtitle:`${g[e.brand_id]?.name??``} · ${e.max_power_kw} kW · ${e.phases}-fas`,priceSek:e.price_sek,priceLabel:e.price_sek?`FrÃ¥n ${a(e.price_sek)}`:void 0,imageUrl:e.image_url,selected:_.chargerSlug===e.slug,onSelect:()=>$({chargerSlug:e.slug,color:void 0}),badge:e.is_featured?`Populär`:void 0},e.id))})}),Y===`installation`&&(0,T.jsx)(N,{icon:(0,T.jsx)(re,{className:`size-5`}),title:`Välj installation`,intro:`För att ta del av Grön Teknik-avdraget (50 %) krävs att laddboxen köps med installation.`,children:(0,T.jsx)(`div`,{className:`grid gap-5 md:grid-cols-3`,children:[`wall`,`pole`,`none`].map(e=>(0,T.jsx)(E,{title:e===`wall`?`Standardinstallation, vägg`:e===`pole`?`Standardinstallation, stolpe`:`Ingen installation`,subtitle:e===`wall`?`Montage pÃ¥ fasad eller garagevägg â vanligast.`:e===`pole`?`FristÃ¥ende stolpe (t.ex. pÃ¥ uppfarten). Inkluderar extra material.`:`Du sköter installationen själv eller använder egen elektriker. Grön Teknik-avdraget uteblir.`,priceLabel:e===`wall`?a(L?.install_price_sek??0):e===`pole`?`+ ${a(1849)} extra`:`0 kr`,selected:_.install===e,onSelect:()=>$({install:e}),compact:!0},e))})}),Y===`farg`&&(0,T.jsx)(N,{icon:(0,T.jsx)(he,{className:`size-5`}),title:`Välj färg`,intro:`${L?.name} finns i flera färger.`,children:(0,T.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 md:grid-cols-4`,children:W.map(e=>(0,T.jsx)(E,{title:e,priceLabel:`0 kr`,selected:_.color===e,onSelect:()=>$({color:e}),compact:!0},e))})}),Y===`kabel`&&(0,T.jsx)(N,{icon:(0,T.jsx)(ee,{className:`size-5`}),title:`Välj laddkabel`,intro:`Här är vÃ¥ra ${U.length} bäst matchande kablar för ${L?.name??`din laddbox`}. Har du redan en kabel kan du hoppa över steget.`,children:(0,T.jsxs)(`div`,{className:`grid gap-5 sm:grid-cols-2 lg:grid-cols-3`,children:[(0,T.jsx)(E,{title:`Ingen laddkabel`,subtitle:`Jag har redan en kabel eller vill välja senare.`,priceLabel:`0 kr`,selected:!_.cableSlug,onSelect:()=>$({cableSlug:void 0}),compact:!0}),U.map(e=>(0,T.jsx)(E,{title:e.name,subtitle:`${e.brand} · ${e.length_m} m · ${e.max_power_kw} kW`,priceSek:e.price_sek,imageUrl:e.image_url??de(e),selected:_.cableSlug===e.slug,onSelect:()=>$({cableSlug:e.slug})},e.id))]})}),Y===`lastbalansering`&&(0,T.jsx)(N,{icon:(0,T.jsx)(ne,{className:`size-5`}),title:`Behöver du lastbalansering?`,intro:`Här är vÃ¥ra mest populära lösningar. Osäker? Välj 'Behövs ej / vet ej' sÃ¥ bedömer installatören pÃ¥ plats.`,children:(0,T.jsxs)(`div`,{className:`grid gap-5 sm:grid-cols-2 lg:grid-cols-3`,children:[(0,T.jsx)(E,{title:`Behövs ej / vet ej`,subt
2itle:`LÃ¥t installatören föreslÃ¥ rätt lösning i offerten.`,priceLabel:`0 kr`,selected:!_.balancerSlug,onSelect:()=>$({balancerSlug:void 0}),compact:!0}),f.slice().sort((e,t)=>Number(e.price_sek??0)-Number(t.price_sek??0)).slice(0,5).map(e=>(0,T.jsx)(E,{title:e.name,subtitle:`${e.brand} · ${e.dynamic?`Dynamisk`:`Statisk`}${e.max_amperage?` · ${e.max_amperage} A`:``}`,priceSek:e.price_sek?Number(e.price_sek):null,imageUrl:fe(e),selected:_.balancerSlug===e.slug,onSelect:()=>$({balancerSlug:e.slug})},e.id))]})}),Y===`tillbehor`&&(0,T.jsx)(N,{icon:(0,T.jsx)(C,{className:`size-5`}),title:`Tillbehör`,intro:`Vanligaste tillbehören â välj de du behöver (valfritt, flerval).`,children:(0,T.jsx)(`div`,{className:`grid gap-5 sm:grid-cols-2 lg:grid-cols-3`,children:m.slice(0,6).map(e=>{let t=_.accessorySlugs.includes(e.slug);return(0,T.jsx)(E,{title:e.name,subtitle:`${e.brand} · ${e.category}`,priceSek:e.price_sek,imageUrl:pe({...e,image_url:null}),selected:t,onSelect:()=>$({accessorySlugs:t?_.accessorySlugs.filter(t=>t!==e.slug):[..._.accessorySlugs,e.slug]})},e.id)})})}),Y===`summering`&&(0,T.jsx)(N,{icon:(0,T.jsx)(S,{className:`size-5`}),title:`Klart â granska och skicka`,intro:`Kontrollera dina val till vänster och fyll i kontaktuppgifterna till höger. Du beställer ingenting nu â du fÃ¥r en offert att ta ställning till.`,children:(0,T.jsxs)(`div`,{className:`grid gap-8 lg:grid-cols-[1.1fr_1fr]`,children:[(0,T.jsxs)(`div`,{className:`rounded-sm border border-border/70 bg-card p-6 md:p-8`,children:[(0,T.jsx)(`h3`,{className:`font-display text-lg font-medium`,children:`Sammanställning`}),(0,T.jsx)(`dl`,{className:`mt-5 divide-y divide-border/60 text-sm`,children:q.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center justify-between gap-6 py-3`,children:[(0,T.jsx)(`dt`,{className:`text-muted-foreground`,children:e.label}),(0,T.jsx)(`dd`,{className:`font-medium text-foreground`,children:a(e.sek)})]},t))}),(0,T.jsxs)(`div`,{className:`mt-4 space-y-1.5 border-t border-border pt-4 text-sm`,children:[(0,T.jsxs)(`div`,{className:`flex justify-between text-muted-foreground`,children:[(0,T.jsx)(`span`,{children:`Delsumma`}),(0,T.jsx)(`span`,{children:a(J.subtotal)})]}),J.gronTeknik>0&&(0,T.jsxs)(`div`,{className:`flex justify-between text-primary`,children:[(0,T.jsx)(`span`,{children:`â Grön Teknik-avdrag (50 %)`}),(0,T.jsxs)(`span`,{className:`font-medium`,children:[`â`,a(J.gronTeknik)]})]}),(0,T.jsxs)(`div`,{className:`flex justify-between border-t border-border/60 pt-2 text-base`,children:[(0,T.jsx)(`span`,{className:`font-medium text-foreground`,children:`Ditt pris`}),(0,T.jsx)(`span`,{className:`font-display text-xl font-medium text-foreground`,children:a(J.afterGT)})]}),(0,T.jsx)(`p`,{className:`pt-1 text-xs text-muted-foreground`,children:`Riktpris. Installatören bekräftar slutpris efter platsbesök.`})]})]}),(0,T.jsxs)(`form`,{onSubmit:we,className:`rounded-sm border border-border/70 bg-card p-6 md:p-8`,children:[(0,T.jsx)(`h3`,{className:`font-display text-lg font-medium`,children:`Sista steget â fÃ¥ din offert`}),(0,T.jsxs)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:[`En certifierad installatör gÃ¥r igenom din konfiguration och Ã¥terkommer `,ie(),` med pris.`]}),(0,T.jsxs)(`div`,{className:`mt-5 grid gap-4`,children:[(0,T.jsx)(P,{label:`Namn *`,children:(0,T.jsx)(b,{required:!0,value:k.name,onChange:e=>M({...k,name:e.target.value}),placeholder:`För- och efternamn`})}),(0,T.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,T.jsx)(P,{label:`E-post *`,children:(0,T.jsx)(b,{required:!0,type:`email`,value:k.email,onChange:e=>M({...k,email:e.target.value}),placeholder:`[email protected]`})}),(0,T.jsx)(P,{label:`Telefon *`,children:(0,T.jsx)(b,{required:!0,type:`tel`,value:k.phone,onChange:e=>M({...k,phone:e.target.value}),placeholder:`070-123 45 67`})})]}),(0,T.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,T.jsx)(P,{label:`Postnummer`,children:(0,T.jsx)(b,{value:k.postal_code??``,onChange:e=>M({...k,postal_code:e.target.value}),placeholder:`123 45`})}),(0,T.jsx)(P,{label:`Ort`,children:(0,T.jsx)(b,{value:k.city??``,onChange:e=>M({...k,city:e.target.value}),placeholder:`Stockholm`})})]}),(0,T.jsx)(P,{label:`Fastighet`,children:(0,T.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:[`villa`,`brf`,`company`,`other`].map(e=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>M({...k,property_type:e}),className:`rounded-sm border px-2 py-2 text-xs font-medium capitalize transition-colors ${k.property_type===e?`border-primary bg-primary/10 text-foreground`:`border-border bg-background text-muted-foreground hover:text-foreground`}`,children:e===`villa`?`Villa`:e===`brf`?`BRF`:e===`company`?`Företag`:`Annat`},e))})}),(0,T.jsx)(P,{label:`Meddelande`,children:(0,T.jsx)(u,{rows:3,value:k.message??``,onChange:e=>M({...k,message:e.target.value}),placeholder:`Ãvrig info om installationen (frivilligt).`})})]}),(0,T.jsxs)(h,{type:`submit`,size:`lg`,disabled:F,className:`mt-6 w-full rounded-sm bg-primary py-6 text-base font-medium text-primary-foreground hover:bg-primary/90`,children:[F&&(0,T.jsx)(c,{className:`mr-2 size-4 animate-spin`}),`Skicka konfigurationen och fÃ¥ offert`]}),(0,T.jsx)(oe,{className:`mt-4`}),(0,T.jsx)(`p`,{className:`mt-3 text-xs text-muted-foreground`,children:`Ingen bindning. Vi delar dina uppgifter endast med anlitad installatör.`}),(0,T.jsxs)(`ol`,{className:`mt-5 grid gap-2 border-t border-border/60 pt-4 text-xs text-muted-foreground`,children:[(0,T.jsxs)(`li`,{children:[(0,T.jsx)(`strong`,{className:`text-foreground`,children:`1.`}),` Vi skickar din konfiguration till installatörer i din region.`]}),(0,T.jsxs)(`li`,{children:[(0,T.jsx)(`strong`,{className:`text-foreground`,children:`2.`}),` Du fÃ¥r ett skriftligt pris â Grön Teknik-avdraget är redan draget.`]}),(0,T.jsxs)(`li`,{children:[(0,T.jsx)(`strong`,{className:`text-foreground`,children:`3.`}),` Du väljer själv om du vill boka. Tackar du nej händer inget mer.`]})]})]})]})})]}
2),Y!==`summering`&&(0,T.jsx)(ye,{charger:L,lines:q,subtotal:J.subtotal,gronTeknik:J.gronTeknik,afterGT:J.afterGT})]})}),(0,T.jsx)(`div`,{className:`mx-auto w-full max-w-4xl px-5 pb-40`,children:(0,T.jsx)(te,{items:se,title:`Vanliga frågor om konfiguratorn`,intro:`Vad priset innehåller, hur tillbehören väljs och vad som händer efter beställning.`,updated:le})}),(0,T.jsx)(ve,{charger:L,subtotal:J.subtotal,afterGT:J.afterGT,onPrev:D>0?()=>O(D-1):void 0,onNext:D<K.length-1?()=>{if(!X){y.error(Y===`laddbox`?`Välj en laddbox.`:`Välj ett alternativ.`);return}O(D+1)}:void 0,nextLabel:K[D+1]?.label??`Klar`,nextDisabled:!X,hidePrev:D===0,hideNext:Y===`summering`})]})}function N({icon:e,title:t,intro:n,children:r}){return(0,T.jsxs)(`section`,{children:[(0,T.jsxs)(`div`,{className:`mb-8 max-w-3xl`,children:[(0,T.jsxs)(`div`,{className:`inline-flex items-center gap-2 rounded-sm bg-foreground/[0.06] px-3 py-1 text-xs font-medium uppercase tracking-widest text-foreground/80`,children:[(0,T.jsx)(`span`,{className:`text-primary`,children:e}),`Konfigurator`]}),(0,T.jsx)(`h1`,{className:`mt-4 font-display text-3xl tracking-tight text-foreground md:text-4xl`,children:t}),n&&(0,T.jsx)(`p`,{className:`mt-3 text-lg text-muted-foreground`,children:n})]}),r]})}function P({label:e,children:t}){return(0,T.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,T.jsx)(x,{className:`text-xs font-medium text-foreground`,children:e}),t]})}export{M 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.