1import"https://assets.finn.no/npm/@lit-labs/ssr-client/v1/lit-element-hydrate-support.js";import Ke from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as Yt,html as U}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var Ue=(r,e)=>new Intl.NumberFormat(r,{maximumFractionDigits:0,...e});function qt(r,e={}){return Ue(r,e).format}var Ve=(r,e,t)=>qt(e,t)(r);function N(r,e){if(r==="")return r;let t=typeof r=="string"?parseInt(r,10):r;return Ve(t,e)}var T=(o=>(o.DBA="dba",o.FINN="finn",o.BLOCKET="blocket",o))(T||{});var w=(s=>(s.Car="car",s.Mc="mc",s.B2B="b2b",s.Boat="boat",s.Caravan="caravan",s))(w||{});var B=r=>{switch(r){case"dba":return"da";case"finn":return"nb";case"blocket":return"sv";default:return"en"}};import ie from"https://assets.finn.no/pkg/@finn-no/pulse-sdk/v0/client.esm.min.js";var We=r=>{typeof window>"u"||r&&ie.trackPageView(r)},u=(r,e,t)=>{if(!(typeof window>"u")&&r){let o={...r,...t&&{object:{...r.object,name:t}},...e&&{target:{...r.target,id:e}}};ie.trackEvent(o)}},He=r=>{typeof window>"u"||r&&ie.trackEvent(r)};import{html as Gt}from"https://assets.finn.no/npm/lit/v3/lit.min.js";import{ifDefined as Qt}from"https://assets.finn.no/npm/lit/v3/lit.min.js";function se({name:r,size:e="small",locale:t,class:o}){return Gt`<w-icon name="${r}" size="${e}" locale="${t}" class="${Qt(o)}"></w-icon>`}var ne=class extends Ke{static properties={imageUrl:{type:String},alt:{type:String},objectPosition:{type:String},title:{type:String},iconName:{type:String},categories:{type:Array},brand:{type:String},subvertical:{type:String},trackingEventMap:{type:Object}};static styles=[Ke.styles,Yt` 2 .hero-gradient { 3 background: linear-gradient( 4 0deg, 5 rgba(0, 0, 0, 0) 0%, 6 rgba(0, 0, 0, 0.32) 32%, 7 rgba(0, 0, 0, 0.52) 52%, 8 rgba(0, 0, 0, 0.74) 74% 9 ); 10 } 11 @media (min-width: 768px) { 12 .hero-gradient { 13 background: linear-gradient( 14 90deg, 15 rgba(0, 0, 0, 0.55) 0%, 16 rgba(0, 0, 0, 0.32) 25%, 17 rgba(0, 0, 0, 0.12) 55%, 18 rgba(0, 0, 0, 0) 80% 19 ); 20 } 21 } 22 .title-shadow { 23 text-shadow: 24 0 1px 1px rgba(0, 0, 0, 0.16), 25 0 1px 6px rgba(0, 0, 0, 0.12); 26 } 27 .scrollbar-hide { 28 -ms-overflow-style: none; 29 scrollbar-width: none; 30 } 31 .scrollbar-hide::-webkit-scrollbar {
32 display: none; 33 } 34 /* Mirror the global .page-container shortcut, which cannot reach 35 into this component's shadow root. */ 36 .page-container { 37 max-width: 1010px; 38 margin: 0; 39 padding: 0 16px; 40 } 41 @media (min-width: 1300px) { 42 .page-container { 43 margin-left: auto; 44 margin-right: auto; 45 padding-left: 31px; 46 padding-right: 31px; 47 } 48 } 49 @css-placeholder-OhZsUH; 50 `];render(){let e=B(this.brand),t=this.objectPosition||"center 35%",o=JSON.stringify(this.trackingEventMap),a=U`<mfp-sell-mobility-vehicle 51 brand="${this.brand}" 52 subvertical="${this.subvertical}" 53 trackingEventMap="${o}" 54 ></mfp-sell-mobility-vehicle>`,s=this.categories??[],[i,l]=[0,1].map(m=>s.filter((v,x)=>x%2===m)),g=m=>U`<li class="shrink-0"> 55 <a 56 class="grid grid-cols-[24px_auto] items-center gap-x-16 py-4 px-16 rounded-full s-bg-subtle hover:s-bg-hover active:s-bg-active transition-colors hover:no-underline" 57 href="${m.link}" 58 @click=${()=>u(m.trackingEvent)} 59 > 60 <span class="s-icon-secondary grid place-items-center w-24 h-24"> 61 ${se({name:m.iconName,size:"medium",locale:e})} 62 </span> 63 <span class="flex flex-col items-start justify-center min-h-[40px]"> 64 <p class="s-text text-caption font-bold mb-0">${m.title}</p> 65 ${m.hits?U`<p class="s-text-subtle font-light text-caption mb-0"> 66 ${N(m.hits,e)} 67 </p>`:""} 68 </span> 69 </a> 70 </li>`;return U` 71 <section class="relative page-container"> 72 <div class="relative w-full h-[330px] md:h-[260px]"> 73 <img 74 class="absolute top-0 left-1/2 -translate-x-1/2 w-screen max-w-none h-full object-cover" 75 style="object-position: ${t};" 76 src="${this.imageUrl}" 77 alt="${this.alt}" 78 loading="eager" 79 decoding="async" 80 /> 81 <div class="absolute top-0 left-1/2 -translate-x-1/2 w-screen max-w-none h-full hero-gradient" aria-hidden="true"></div> 82 <div class="absolute top-16 md:top-40 left-0 right-0 z-1"> 83 <div class="flex flex-col md:flex-row md:items-center md:justify-between gap-16"> 84 <div class="flex items-center gap-12 min-w-0"> 85 <span class="grid place-items-center w-32 h-32 shrink-0 s-text-inverted-static"> 86 ${se({name:this.iconName,size:"large",locale:e})} 87 </span> 88 <h1 class="t1 md:t1 m-0 s-text-inverted-static title-shadow min-w-0 break-words">${this.title}</h1> 89 </div> 90 <div class="shrink-0">${a}</div> 91 </div> 92 </div> 93 94 <nav class="absolute left-[calc(50%-50vw)] right-[calc(50%-50vw)] bottom-40 md:left-0 md:right-0"> 95 <div class="md:hidden overflow-x-auto overflow-y-hidden scrollbar-hide"> 96 <ul class="flex w-max gap-8 list-none m-0 p-0 px-16 mb-8"> 97 ${i.map(g)} 98 </ul> 99 <ul class="flex w-max gap-8 list-none m-0 p-0 px-16"> 100 ${l.map(g)} 101 </ul> 102 </div> 103 <ul class="hidden md:flex md:flex-wrap gap-8 pb-4 list-none m-0"> 104 ${s.map(g)} 105 </ul> 106 </nav> 107 </div> 108 </section> 109 `}};customElements.define("category-list",ne);import qe from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as Jt,html as le}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var Xt={all:"All Cars Tab",newCar:"New Car Tab",sell:"Sell Tab"},ce=class extends qe{static properties={activeTab:{type:String,attribute:"active-tab",reflect:!0},allLabel:{type:String,attribute:"all-label"},sellLabel:{type:String,attribute:"sell-label"},newCarLabel:{type:String,attribute:"new-car-label"},trackingEventMap:{type:Object}};constructor(){super(),this.activeTab="all",this.allLabel="All",this.sellLabel="Sell",this.newCarLabel=""}static styles=[qe.styles,Jt` 110 :host { 111 display: block; 112 } 113 @css-placeholder-RsveJX; 114 [role="tablist"] { 115 position: sticky; 116 top: 48px; 117 z-index: 10; 118 background-color: var(--w-s-color-background, #fff); 119 } 120 [role="tablist"]::before { 121 content: ""; 122 position: absolute; 123 top: 0; 124 left: 50%; 125 transform: translateX(-50%); 126 width: 100vw; 127 height: 100%; 128 background-color: var(--w-s-color-background, #fff); 129 z-index: -1; 130 } 131 @media (min-width: 768px) { 132 [role="tab"] { 133 flex: 0 0 auto; 134 padding: 8px 12px; 135 text-align: left; 136 } 137 } 138 `];#e(e){this.activeTab=e,this.#t(e);let t=this.trackingEventMap?.MS_ev47;t&&u({...t,name:Xt[e]})}#t(e){if(typeof window>"u"||!window.history?.replaceState)return;let t=new URL(window.location.href);e==="all"?t.searchParams.delete("tab"):t.searchParams.set("tab",e.toLowerCase()),window.history.replaceState(window.history.state,"",t)}#o(){let e=[{key:"all",id:"all",label:this.allLabel}];return this.newCarLabel&&e.push({key:"newCar",id:"new-car",label:this.newCarLabel}),e.push({key:"sell",id:"sell",label:this.sellLabel}),e}#r(e){let t=this.#o(),o=t.findIndex(i=>i.key===this.activeTab);if(o<0)return;let a;switch(e.key){case"ArrowRight":a=(o+1)%t.length;break;case"ArrowLeft":a=(o-1+t.length)%t.length;break;case"Home":a=0;break;case"End":a=t.length-1;break;default:return}e.preventDefault();let s=t[a];this.#e(s.key),this.updateComplete.then(()=>{this.renderRoot.querySelector(`#landing-tab-${s.id}`)?.focus()})}render(){let e=l=>`border: 0; border-bottom: 2px solid ${l?"var(--w-s-color-link, #0063fb)":"transparent"};`,t=this.#o(),o=({key:l,id:g,label:m})=>{let v=this.activeTab===l;return le`<button 139 type="button" 140 role="tab" 141 id="landing-tab-${g}" 142 aria-selected="${v?"true":"false"}" 143 aria-controls="landing-panel-${g}" 144 tabindex="${v?"0":"-1"}" 145 class="flex-1 px-16 py-12 text-center text-body font-bold bg-transparent cursor-pointer ${v?"s-text-link":"s-text-subtle hover:s-text"}" 146 style="${e(v)}" 147 @click="${()=>this.#e(l)}" 148 > 149 ${m} 150 </button>`},a=({key:l,id:g})=>le`<div id="landing-panel-${g}" role="tabpanel" aria-labelledby="landing-tab-${g}" ?hidden="${this.activeTab!==l}"> 151 <slot name="${g}"></slot> 152 </div>`,s=t.map(o),i=t.map(a);return le` 153 <div 154 class="flex gap-24 border-b s-border mb-16" 155 role="tablist" 156 aria-label="Landing page sections" 157 @keydown="${l=>this.#r(l)}" 158 > 159 ${s} 160 </div> 161 ${i} 162 `}};customElements.define("landing-tabs",ce);import Ge from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import"https://assets.finn.no/pkg/@warp-ds/elements/v2/packages/card/index.js";import{css as Zt,html as Qe}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var de=class extends Ge{static properties={collections:{type:Array},header:{type:String},brand:{type:String}};static styles=[Ge.styles,Zt` 163 .z-collection-overlay { 164 z-index: 12; 165 } 166 @css-placeholder-YBM8EB; 167 `];constructor(){super()}async connectedCallback(){super.connectedCallback()}render(){return Qe`<div class="min-h-[230] max-w-full isolate"> 168 <h3 class="t3 mb-0">${this.header}</h3> 169 <div class="-mx-16 md:-mx-10"> 170 <div 171 class="grid grid-flow-col auto-cols-[minmax(144px,1fr)] overflow-x-auto gap-16 p-16 -mb-16 md:px-10" 172 style="scrollbar-width: none;" 173 > 174 ${this.collections.map(e=>Qe`<w-card 175 class="focus-within:outline outline-4 overflow-hidden s-outline-focused rounded-8 max-h-[186] s-border border transition-transform hover:scale-102 focus-within:scale-102 hover:shadow-s focus-within:shadow-s" 176 style="background-color: var(--w-s-color-border)" 177 @click="${()=>u(e.trackingEvent)}" 178 > 179 <a 180 class="aspect-144/186 card-overlay flex flex-col relative z-collection-overlay" 181 href="${e.link}" 182 aria-label="Collection of ${e.title}. Total number of ads is ${e.hits}"
183 > 184 <div class="flex flex-col justify-end p-16 s-text-inverted-static gap-4"> 185 <label class="cursor-pointer font-bold">${e.title}</label> 186 <p class="text-s font-normal w-[112] h-[18] mb-0"> 187 ${N(e.hits,B(this.brand))} 188 </p> 189 </div> 190 </a> 191 <div 192 class="absolute bottom-0 right-0 left-0 z-10 bg-cover h-full bg-center" 193 style="background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.77) 15.63%, rgba(95, 95, 95, 0.49) 34.89%, rgba(196, 196, 196, 0.00) 50%), url('${e.imageUrl}')" 194 ></div> 195 </w-card>`)} 196 </div> 197 </div> 198 </div>`}};customElements.define("mfp-collection-cards",de);
198import{css as nr,html as lt,nothing as lr}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var $=r=>typeof r=="string",er=r=>typeof r=="function",Ye=new Map,Xe="en";function ge(r){return[...Array.isArray(r)?r:[r],Xe]}function ue(r,e,t){let o=ge(r);t||(t="default");let a;if(typeof t=="string")switch(a={day:"numeric",month:"short",year:"numeric"},t){case"full":a.weekday="long";case"long":a.month="long";break;case"short":a.month="numeric";break}else a=t;return V(()=>W("date",o,t),()=>new Intl.DateTimeFormat(o,a)).format($(e)?new Date(e):e)}function tr(r,e,t){let o;if(t||(t="default"),typeof t=="string")switch(o={second:"numeric",minute:"numeric",hour:"numeric"},t){case"full":case"long":o.timeZoneName="short";break;case"short":delete o.second}else o=t;return ue(r,e,o)}function pe(r,e,t){let o=ge(r);return V(()=>W("number",o,t),()=>new Intl.NumberFormat(o,t)).format(e)}function Je(r,e,t,{offset:o=0,...a}){let s=ge(r),i=e?V(()=>W("plural-ordinal",s),()=>new Intl.PluralRules(s,{type:"ordinal"})):V(()=>W("plural-cardinal",s),()=>new Intl.PluralRules(s,{type:"cardinal"}));return a[t]??a[i.select(t-o)]??a.other}function V(r,e){let t=r(),o=Ye.get(t);return o||(o=e(),Ye.set(t,o)),o}function W(r,e,t){let o=e.join("-");return`${r}-${o}-${JSON.stringify(t)}`}var Ze=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,et=r=>r.replace(/\\u([a-fA-F0-9]{4})|\\x([a-fA-F0-9]{2})/g,(e,t,o)=>{if(t){let a=parseInt(t,16);return String.fromCharCode(a)}else{let a=parseInt(o,16);return String.fromCharCode(a)}}),tt="%__lingui_octothorpe__%",rr=(r,e,t={})=>{let o=e||r,a=i=>typeof i=="object"?i:t[i],s=(i,l)=>{let g=Object.keys(t).length?a("number"):void 0,m=pe(o,i,g);return l.replace(new RegExp(tt,"g"),m)};return{plural:(i,l)=>{let{offset:g=0}=l,m=Je(o,!1,i,l);return s(i-g,m)},selectordinal:(i,l)=>{let{offset:g=0}=l,m=Je(o,!0,i,l);return s(i-g,m)},select:or,number:(i,l)=>pe(o,i,a(l)||{style:l}),date:(i,l)=>ue(o,i,a(l)||l),time:(i,l)=>tr(o,i,a(l)||l)}},or=(r,e)=>(Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0)??e.other;function ar(r,e,t){return(o={},a)=>{let s=rr(e,t,a),i=(g,m=!1)=>Array.isArray(g)?g.reduce((v,x)=>{if(x==="#"&&m)return v+tt;if($(x))return v+x;let[O,C,Fe]=x,oe={};C==="plural"||C==="selectordinal"||C==="select"?Object.entries(Fe).forEach(([ae,Kt])=>{oe[ae]=i(Kt,C==="plural"||C==="selectordinal")}):oe=Fe;let F;if(C){let ae=s[C];F=ae(o[O],oe)}else F=o[O];return F==null?v:v+F},""):g,l=i(r);return $(l)&&Ze.test(l)?et(l):$(l)?l:l?String(l):""}}var be=class{_events={};on(e,t){return this._events[e]??=new Set,this._events[e].add(t),()=>this.removeListener(e,t)}removeListener(e,t){let o=this._events[e];o?.delete(t),o?.size===0&&delete this._events[e]}emit(e,...t){let o=this._events[e];if(o)for(let a of[...o])a.apply(this,t)}},me=class extends be{_locale="";_locales;_messages={};_missing;_messageCompiler;constructor(e){super(),e.missing!=null&&(this._missing=e.missing),e.messages!=null&&this.load(e.messages),(typeof e.locale=="string"||e.locales)&&this.activate(e.locale??Xe,e.locales)}get locale(){return this._locale}get locales(){return this._locales}get messages(){return this._messages[this._locale]??{}}setMessagesCompiler(e){return this._messageCompiler=e,this}_load(e,t){let o=Object.prototype.hasOwnProperty.call(this._messages,e)?this._messages[e]:void 0;o?Object.assign(o,t):this._messages[e]=t}load(e,t){typeof e=="string"&&typeof t=="object"?this._load(e,t):Object.entries(e).forEach(([o,a])=>this._load(o,a)),this.emit("change")}loadAndActivate({locale:e,locales:t,messages:o}){this._locale=e,this._locales=t||void 0,this._messages[this._locale]=o,this.emit("change")}activate(e,t){this._locale=e,this._locales=t,this.emit("change")}_(e,t,o){if(!this.locale)throw new Error("Lingui: Attempted to call a translation function without setting a locale.\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\nThis issue may also occur due to a race condition in your initialization logic.");let a=o?.message;e||(e=""),$(e)||(t=e.values||t,a=e.message,e=e.id);let s=this.messages,i=Object.prototype.hasOwnProperty.call(s,e)?s[e]:void 0,l=i===void 0,g=this._missing;if(g&&l)return er(g)?g(this._locale,e):g;
198l&&this.emit("missing",{id:e,locale:this._locale});let m=i||a||e;return $(m)&&(this._messageCompiler?m=this._messageCompiler(m):console.warn(`Uncompiled message detected! Message: 199 200> ${m} 201 202That means you use raw catalog or your catalog doesn't have a translation for the message and fallback was used. 203ICU features such as interpolation and plurals will not work properly for that message. 204 205Please compile your catalog first. 206`)),$(m)&&Ze.test(m)?et(m):$(m)?m:ar(m,this._locale,this._locales)(t,o?.formats)}t=this._.bind(this);date(e,t){return ue(this._locales||this._locale,e,t)}number(e,t){return pe(this._locales||this._locale,e,t)}};function ir(r={}){return new me(r)}var n=ir();import ct from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";var rt=JSON.parse('{"6sjRAN":["Insure your car"],"HLBwg1":["Here can you find relevant content, smart tips, tricks and good advice"],"categories.title.agriparts":["Reservedele til landbrug"],"categories.title.atvmctrailers":["MC- og ATV- trailere"],"categories.title.atvparts":["ATV-tilbeh\xF8r og reservedele"],"categories.title.bapmc":["MC-udstyr og reservedele"],"categories.title.boatparts":["B\xE5dtilbeh\xF8r og reservedele"],"categories.title.boattrailers":["B\xE5dtrailere"],"categories.title.caravanparts":["Campingvogn og autocamperdele"],"categories.title.carnew":["New cars in stock"],"categories.title.carparts":["Biltilbeh\xF8r og reservedele"],"categories.title.rental":["Lejebil"],"categories.title.snowmobileparts":["Snescooterdele og tilbeh\xF8r"],"categories.title.trailers":["Trailere"],"collections.title.boatmotor":["P\xE5h\xE6ngsmotor"],"collections.title.cabincruiser":["Cabincruiser"],"collections.title.caravan":["Caravans"],"collections.title.carnew":["New cars in stock"],"collections.title.console":["Konsolb\xE5d"],"collections.title.convenient-size":["Fleksible campingvogne"],"collections.title.daycruiser":["Daycruiser"],"collections.title.easy-to-tow":["Lette campingvogne"],"collections.title.electric":["Elbil"],"collections.title.extra-space":["Rummelige campingvogne"],"collections.title.family":["Familiebil"],"collections.title.fishing":["Fiskerb\xE5d"],"collections.title.for-two":["Autocampere til to"],"collections.title.jetski":["Vandscooter"],"collections.title.large-comfortable":["Store autocampere"],"collections.title.mc.adventure":["Adventure"],"collections.title.mc.atv":["ATV"],"collections.title.mc.cross-enduro":["Cross/Enduro"],"collections.title.mc.custom":["Custom"],"collections.title.mc.light-mc":["Let MC"],"collections.title.mc.moped":["30 Knallert"],"collections.title.mc.naked":["Classic/N\xF8gen"],"collections.title.mc.scooter":["45 Scooter"],"collections.title.mc.snowmobile":["Snescooter"],"collections.title.mc.sport":["Sport"],"collections.title.mc.touring":["Touring"],"collections.title.mobilehome":["Mobile homes"],"collections.title.pluginhybrid":["Plug-in hybrid"],"collections.title.rib":["RIB & jolle"],"collections.title.sail":["Sejlb\xE5d"],"collections.title.sevenseater":["7-personersbil"],"collections.title.small":["Mikrobil"],"collections.title.sports":["Sportsvogn"],"collections.title.standard-license":["Autocampere til B-k\xF8rekort"],"collections.title.suv":["SUV"],"collections.title.van":["Varebil"],"collections.title.yacht":["Yacht"],"evergreen.view-all":["L\xE6s mere"],"frontpage.evergreen-content.title":["Alt du skal vide for en tryg bilhandel"],"frontpage.evergreen-content.title.boat":["Alt du skal vide for en tryg b\xE5thandel"],"frontpage.evergreen-content.title.car":["Alt du skal vide for en tryg bilhandel"],"frontpage.evergreen-content.title.caravan":["Alt du beh\xF8ver for en tryg autocamper- og campingvognhandel"],"frontpage.evergreen-content.title.mc":["Alt du skal vide for en tryg MC-handel"],"infobox.filter-transition.dismiss-button":["OK, forst\xE5et"],"infobox.filter-transition.message":["Det er muligt, at nogle filtre ikke viser s\xE6rligt mange resultater lige nu, men de vil blive fyldt, efterh\xE5nden som der kommer nye annoncer ind."],"infobox.filter-transition.title":["Vi er i gang med at forbedre filtrene"],"landing-page.hero.alt.b2b":["Hovedbillede for erhvervsk\xF8ret\xF8jer"],"landing-page.hero.alt.boat":["Hovedbillede for b\xE5de"],"landing-page.hero.alt.car":["Hovedbillede for biler"],"landing-page.hero.alt.caravan":["Hovedbillede for campingvogne og autocampere"],"landing-page.hero.alt.mc":["Hovedbillede for motorcykler"],"last-search.description-with-category":[["description"]," i ",["category"]],"make-model-links.column.show-less":["Vis f\xE6rre"],"make-model-links.column.show-more":["Vis flere"],"make-model-links.expand-makes-rows.show-less":["Vis f\xE6rre m\xE6rker"],"make-model-links.expand-makes-rows.show-more":["Vis flere m\xE6rker"],"make-model-links.other-brands":["Andre m\xE6rker"],"make-model-links.title.b2b":["Almindelige m\xE6rker inden for industri- og landbrugsmaskiner"],"make-model-links.title.boat":["Almindelige b\xE5dm\xE6rker p\xE5 DBA"],"make-model-links.title.car":["Almindelige bilm\xE6rker p\xE5 DBA"],"make-model-links.title.caravan":["Almindelige autocamper- og campingvognm\xE6rker"],"make-model-links.title.mc":["Almindelige MC-m\xE6rker p\xE5 DBA"],"market-frontpage.blocket-car-insurance":["7 days free insurance"],"market-frontpage.blocket-car-insurance-description":["Protect yourself and your new car from the first mile. Pre-order 7 days of insurance at no cost."],"market-frontpage.car-worth-description":["Find ud af, hvad din bil er v\xE6rd p\xE5 vores s\xF8sterside, Bilbasen. Indtast nummerpladen og f\xE5 en vejledende salgspris \u2013 baseret p\xE5 tusindvis af aktuelle handler."],"market-frontpage.car-worth-title":["Hvad er min bil v\xE6rd?"],"market-frontpage.find-your-b2b":["Find den perfekte b\xE5d til dine behov"],"market-frontpage.find-your-boat":["Find b\xE5de og b\xE5dmotorer der passer til dig"],"market-frontpage.find-your-car":["Find den rette bil for dig"],"market-frontpage.find-your-caravan":["Find autocamperen eller campingvognen, der passer dig"],"market-frontpage.find-your-mc":["Find det k\xF8ret\xF8j, der passer til dig"],"market-frontpage.last-searches.delete-all-button":["Ryd s\xF8gninger"],"market-frontpage.last-searches.description":["N\xE5r du s\xF8ger p\xE5 DBA, vil resultaterne blive vist her."],"market-frontpage.last-searches.hits":["resultater"],"market-frontpage.last-searches.title":["Seneste s\xF8gninger"],"market-frontpage.latest-models.next":["N\xE6ste"],"market-frontpage.latest-models.previous":["Forrige"],"market-frontpage.nettbil":["S\xE6lg med Nettbil"],"market-frontpage.new-ad":["Opret annonce"],"market-frontpage.new-car-tests":["Nye biltests"],"market-frontpage.new-car-tests-description":["Vi hj\xE6lper dig med at sammenligne, f\xF8r du beslutter dig."],"market-frontpage.price-advice":["Tips til priss\xE6tning af brugt bil"],"market-frontpage.price-advice-description":["F\xE5 prisestimater fra lignende biler, der er solgt p\xE5 DBA"],"market-frontpage.price-evaluation-banner.cta":["G\xE5 til vurderingen"],"market-frontpage.sell-car":["3 m\xE5der at s\xE6lge din bil p\xE5"],"market-frontpage.sell-car-description":["Indtast dit registreringsnummer og find de salgsmuligheder, der passer dig bedst"],"market-frontpage.smidig-bilhandel":["Problemfri bilhandel"],"market-frontpage.smidig-bilhandel-description":["Tryg og nem bilhandel med Smidig: betaling, ejerskifte og kontrakt."],"market-frontpage.useful-tools":["Nyttige v\xE6rkt\xF8jer og tjenester"],"market-frontpage.wheelaway":["S\xE6lg ved hj\xE6lp af Wheelaway"],"mobility-recommendations-title":["Anbefalinger til dig"],"mobility-recommendations-title-popular":["Popul\xE6re annoncer"],"newcar.makecard.model-count":[["count","plural",{"one"
206:["#"," model"],"other":["#"," modeller"]}]],"pagetitle-icon-of":["ikon med"],"sell-steps.eyebrow":["How it works"],"sell-steps.step-1.description":["Enter the registration number, mileage and answer a few questions."],"sell-steps.step-1.title":["1. Register the car"],"sell-steps.step-2.description":["Based on your information, we give you a recommendation on the most suitable way to sell your car."],"sell-steps.step-2.title":["2. Our recommendation"],"sell-steps.step-3.description":["Sell privately, with Smidig bilhandel or with Nettbil."],"sell-steps.step-3.title":["3. Choose option"],"sell-steps.title":["3 simple steps"],"seo.title":["Popul\xE6re s\xF8gninger"],"seo.title.agritrucks":["Truck"],"seo.title.buses":["Bus"],"seo.title.excavators":["Gravemaskine"],"seo.title.tractor":["Traktor"],"seo.title.trucks":["Lastbil"],"server.description.b2b":["Find dit n\xE6ste B2B-k\xF8ret\xF8j blandt tusindvis af annoncer"],"server.description.boat":["Klar til b\xE5ds\xE6sonen? P\xE5 DBA kan du k\xF8be, s\xE6lge og leje b\xE5dpladser og b\xE5de samt k\xF8be motordele og andre reservedele. Her finder du popul\xE6re m\xE6rker som Askeladden, Uttern og Yamarin. Tjek det store udvalg af nye og brugte b\xE5de p\xE5 DBA, der omfatter alt fra klassiske kabineb\xE5de til RIB og motorb\xE5de"],"server.description.car":["Find din n\xE6ste bil blandt tusindvis af annoncer"],"server.description.car.with-caravan":["Find din n\xE6ste bil eller campingvogn blandt tusindvis af annoncer"],"server.description.caravan":["Find din n\xE6ste autocamper eller campingvogn blandt tusinder af annoncer"],"server.description.mc":["Find din n\xE6ste motorcykel blandt tusindvis af annoncer"],"server.title.b2b":["Industri- og landbrugsmaskiner - DBA.dk"],"server.title.boat":["B\xE5d - DBA.dk"],"server.title.car":["Bil - DBA.dk"],"server.title.car.with-caravan":["Bil og campingvogn - DBA.dk"],"server.title.caravan":["Autocamper og campingvogn"],"server.title.mc":["MC - DBA.dk"],"tabs.car.all":["Alle biler"],"tabs.car.new":["Nye biler"],"tabs.car.sell":["S\xE6lg"]}');var ot=JSON.parse(`{"6sjRAN":["Insure your car"],"HLBwg1":["Here can you find relevant content, smart tips, tricks and good advice"],"categories.title.agriparts":["Agricultural machinery parts"],"categories.title.atvmctrailers":["ATV/Motorcycle trailers"],"categories.title.atvparts":["ATV parts"],"categories.title.bapmc":["Motorcycle parts from Marketplace"],"categories.title.boatparts":["Boat parts"],"categories.title.boattrailers":["Boat trailers"],"categories.title.caravanparts":["Caravan parts"],"categories.title.carnew":["New cars in stock"],"categories.title.carparts":["Car parts"],"categories.title.rental":["Rental car"],"categories.title.snowmobileparts":["Snowmobile parts and accessories"],"categories.title.trailers":["Trailers"],"collections.title.boatmotor":["Boat motor"],"collections.title.cabincruiser":["Cabincruiser"],"collections.title.caravan":["Caravans"],"collections.title.carnew":["New cars in stock"],"collections.title.console":["Console boat"],"collections.title.convenient-size":["Flexible caravans"],"collections.title.daycruiser":["Daycruiser"],"collections.title.easy-to-tow":["Light caravans"],"collections.title.electric":["Electrical cars"],"collections.title.extra-space":["Spacious caravans"],"collections.title.family":["Family cars"],"collections.title.fishing":["Fishing boat"],"collections.title.for-two":["Mobile homes for two"],"collections.title.jetski":["Jetski"],"collections.title.large-comfortable":["Large mobile homes"],"collections.title.mc.adventure":["Adventure"],"collections.title.mc.atv":["ATV"],"collections.title.mc.cross-enduro":["Cross/Enduro"],"collections.title.mc.custom":["Custom"],"collections.title.mc.light-mc":["Light MC"],"collections.title.mc.moped":["Moped"],"collections.title.mc.naked":["Classic/Naked"],"collections.title.mc.scooter":["Scooter"],"collections.title.mc.snowmobile":["Snowmobile"],"collections.title.mc.sport":["Sport"],"collections.title.mc.touring":["Touring"],"collections.title.mobilehome":["Mobile homes"],"collections.title.pluginhybrid":["Plugin hybrid"],"collections.title.rib":["RIB"],"collections.title.sail":["Sailboat"],"collections.title.sevenseater":["Seven seater"],"collections.title.small":["Small cars"],"collections.title.sports":["Sports cars"],"collections.title.standard-license":["Mobile homes for regular licence"],"collections.title.suv":["SUV"],"collections.title.van":["Vans"],"collections.title.yacht":["Yacht"],"evergreen.view-all":["View all"],"frontpage.evergreen-content.title":["Everything you need for a safe transaction"],"frontpage.evergreen-content.title.boat":["Everything you need for a safe boat transaction"],"frontpage.evergreen-content.title.car":["Everything you need for a safe car transaction"],"frontpage.evergreen-content.title.caravan":["Everything you need for a safe caravan transaction"],"frontpage.evergreen-content.title.mc":["Everything you need for a safe MC transaction"],"infobox.filter-transition.dismiss-button":["OK, I understand"],"infobox.filter-transition.message":["Some filters may show fewer results right now, but they will be filled as new ads roll in."],"infobox.filter-transition.title":["We're improving the filters"],"landing-page.hero.alt.b2b":["Commercial vehicles landing page hero image"],"landing-page.hero.alt.boat":["Boats landing page hero image"],"landing-page.hero.alt.car":["Cars landing page hero image"],"landing-page.hero.alt.caravan":["Caravans and motorhomes landing page hero image"],"landing-page.hero.alt.mc":["Motorcycles landing page hero image"],"last-search.description-with-category":[["description"]," i ",["category"]],"make-model-links.column.show-less":["Show less"],"make-model-links.column.show-more":["Show more"],"make-model-links.expand-makes-rows.show-less":["Show less makes"],"make-model-links.expand-makes-rows.show-more":["Show more makes"],"make-model-links.other-brands":["Other brands"],"make-model-links.title.b2b":["Common b2b brands"],"make-model-links.title.boat":["Common boat brands"],"make-model-links.title.car":["Common car brands"],"make-model-links.title.caravan":["Common caravan and motorhome brands"],"make-model-links.title.mc":["Common motorcycle brands"],"market-frontpage.blocket-car-insurance":["7 days free insurance"],"market-frontpage.blocket-car-insurance-description":["Protect yourself and your new car from the first mile. Pre-order 7 days of insurance at no cost."],"market-frontpage.car-worth-description":["Find out what your car is worth on our sister site, Bilbasen. Enter your registration number and get a guide price \u2013 based on thousands of current transactions."],"market-frontpage.car-worth-title":["What is my car worth?"],"market-frontpage.find-your-b2b":["Find the car that suits you"],"market-frontpage.find-your-boat":["Find the boat that suits you"],"market-frontpage.find-your-car":["Find the car that suits you"],"market-frontpage.find-your-caravan":["Find the caravan that suits you"],"market-frontpage.find-your-mc":["Find the MC that suits you"],"market-frontpage.last-searches.delete-all-button":["Delete all searches"],"market-frontpage.last-searches.description":["As you search on ",["brand"],", they will appear here."],"market-frontpage.last-searches.hits":["Hits"],"market-frontpage.last-searches.title":["Previous searches"],"market-frontpage.latest-models.next":["Next"],"market-frontpage.latest-models.previous":["Previous"],"market-frontpage.nettbil":["Sell using Nettbil"],"market-frontpage.new-ad":["New ad"],"market-frontpage.new-car-tests":["New car tests"],"market-frontpage.new-car-tests-description":["We help you compare before you decide."],"market-frontpage.price-advice":["Used car price tips"],"market-frontpage.price-advice-description":["Get price estimates from similar cars sold on FINN"],"market-frontpage.price-evaluation-banner.cta":["Go to valuation"],"market-frontpage.sell-car":["Three ways to sell your car"],"market-frontpage.sell-car-description":["Enter your registration number and find the sales option that best suits you"],"market-frontpage.smidig-bilhandel":["Smooth car trade"],"market-frontpage.smidig-bilhandel-description":["Safe and easy car trade with Smidig: payment, ownership transfer and contract."],"market-frontpage.useful-tools":["Useful tools"],"market-frontpage.wheelaway":["Sell using Wheelaway"],"mobility-recommendations-title":["Recommendations for you"],"mobility-recommendations-title-popular":["Popular ads"],"newcar.makecard.model-count":[["count","plural",{"one"
206:["#"," model"],"other":["#"," models"]}]],"pagetitle-icon-of":["Icon of"],"sell-steps.eyebrow":["How it works"],"sell-steps.step-1.description":["Enter the registration number, mileage and answer a few questions."],"sell-steps.step-1.title":["1. Register the car"],"sell-steps.step-2.description":["Based on your information, we give you a recommendation on the most suitable way to sell your car."],"sell-steps.step-2.title":["2. Our recommendation"],"sell-steps.step-3.description":["Sell privately, with Smidig bilhandel or with Nettbil."],"sell-steps.step-3.title":["3. Choose option"],"sell-steps.title":["3 simple steps"],"seo.title":["Popular searches"],"seo.title.agritrucks":["Trucks"],"seo.title.buses":["Buses and minibuses"],"seo.title.excavators":["Excavators"],"seo.title.tractor":["Tractors"],"seo.title.trucks":["Trucks"],"server.description.b2b":["Find your next B2B vehicle among thousands of ads"],"server.description.boat":["Ready for boat season? At FINN you can buy, sell and rent boats, moorings and parts. Askeladden, Uttern and Yamarin are popular brands you can find here. Whether you want a RIB, cabin cruiser or motorboat, you'll find both new and used boats on FINN.no"],"server.description.car":["Find your next car among thousands of ads"],"server.description.car.with-caravan":["Find your next car or caravan among thousands of ads"],"server.description.caravan":["Find your next caravan or motorhome among thousands of ads"],"server.description.mc":["Find your next motorcycle among thousands of ads"],"server.title.b2b":["B2B"],"server.title.boat":["Boats"],"server.title.car":["Mobility"],"server.title.car.with-caravan":["Mobility (with caravan)"],"server.title.caravan":["Caravan & motorhome"],"server.title.mc":["Motorcycles"],"tabs.car.all":["All cars"],"tabs.car.new":["New cars"],"tabs.car.sell":["Sell"]}`);var at=JSON.parse('{"6sjRAN":["Insure your car"],"HLBwg1":["Here can you find relevant content, smart tips, tricks and good advice"],"categories.title.agriparts":["Deler til landbruksmaskiner"],"categories.title.atvmctrailers":["ATV- og MC-tilhengere"],"categories.title.atvparts":["ATV-deler"],"categories.title.bapmc":["MC-deler"],"categories.title.boatparts":["B\xE5tdeler"],"categories.title.boattrailers":["B\xE5t- og opplagshengere"],"categories.title.caravanparts":["Caravandeler"],"categories.title.carnew":["New cars in stock"],"categories.title.carparts":["Bildeler"],"categories.title.rental":["Leiebil"],"categories.title.snowmobileparts":["Sn\xF8scooterdeler og tilbeh\xF8r"],"categories.title.trailers":["Tilhengere"],"collections.title.boatmotor":["B\xE5tmotor"],"collections.title.cabincruiser":["Cabincruiser"],"collections.title.caravan":["Caravans"],"collections.title.carnew":["New cars in stock"],"collections.title.console":["Landstedsb\xE5t"],"collections.title.convenient-size":["Fleksible campingvogner"],"collections.title.daycruiser":["Daycruiser"],"collections.title.easy-to-tow":["Lette campingvogner"],"collections.title.electric":["Elbil"],"collections.title.extra-space":["Romslige campingvogner"],"collections.title.family":["Familiebil"],"collections.title.fishing":["Fiskeb\xE5t"],"collections.title.for-two":["Bobiler for to"],"collections.title.jetski":["Vannski"],"collections.title.large-comfortable":["Store bobiler"],"collections.title.mc.adventure":["Adventure"],"collections.title.mc.atv":["ATV"],"collections.title.mc.cross-enduro":["Cross/Enduro"],"collections.title.mc.custom":["Custom"],"collections.title.mc.light-mc":["Lett-MC"],"collections.title.mc.moped":["Moped"],"collections.title.mc.naked":["Nakne"],"collections.title.mc.scooter":["Scooter"],"collections.title.mc.snowmobile":["Sn\xF8scooter"],"collections.title.mc.sport":["Sport"],"collections.title.mc.touring":["Touring"],"collections.title.mobilehome":["Mobile homes"],"collections.title.pluginhybrid":["Plug-in-hybrid"],"collections.title.rib":["Rib"],"collections.title.sail":["Seilb\xE5t"],"collections.title.sevenseater":["7-seter"],"collections.title.small":["Liten bil"],"collections.title.sports":["Sportsbil"],"collections.title.standard-license":["Bobiler - Vanlig f\xF8rerkort"],"collections.title.suv":["SUV"],"collections.title.van":["Varebil"],"collections.title.yacht":["Yacht"],"evergreen.view-all":["Les mer"],"frontpage.evergreen-content.title":["Alt du trenger til en trygg bilhandel"],"frontpage.evergreen-content.title.boat":["Tips og r\xE5d for en trygg b\xE5thandel"],"frontpage.evergreen-content.title.car":["Tips og r\xE5d for en trygg bilhandel"],"frontpage.evergreen-content.title.caravan":["Alt du trenger for et trygt bobil- og campingvognkj\xF8p"],"frontpage.evergreen-content.title.mc":["Tips og r\xE5d for en trygg MC-handel"],"infobox.filter-transition.dismiss-button":["Jeg forst\xE5r"],"infobox.filter-transition.message":["Noen filtre kan vise f\xE6rre resultater akkurat n\xE5, men de fylles ut etter hvert som nye annonser kommer inn."],"infobox.filter-transition.title":["Vi forbedrer filtrene"],"landing-page.hero.alt.b2b":["Hovedbilde for nyttekj\xF8ret\xF8y"],"landing-page.hero.alt.boat":["Hovedbilde for b\xE5ter"],"landing-page.hero.alt.car":["Hovedbilde for biler"],"landing-page.hero.alt.caravan":["Hovedbilde for campingvogner og bobiler"],"landing-page.hero.alt.mc":["Hovedbilde for motorsykler"],"last-search.description-with-category":[["description"]," i ",["category"]],"make-model-links.column.show-less":["Vis f\xE6rre"],"make-model-links.column.show-more":["Vis flere"],"make-model-links.expand-makes-rows.show-less":["Vis f\xE6rre merker"],"make-model-links.expand-makes-rows.show-more":["Vis flere merker"],"make-model-links.other-brands":["Andre merker"],"make-model-links.title.b2b":["Vanlige merker i nyttekj\xF8ret\xF8y og maskiner"],"make-model-links.title.boat":["Vanlige b\xE5tmerker p\xE5 FINN"],"make-model-links.title.car":["Vanlige bilmerker p\xE5 FINN"],"make-model-links.title.caravan":["Vanlige bobil- og campingvognmerker"],"make-model-links.title.mc":["Vanlige MC-merker p\xE5 FINN"],"market-frontpage.blocket-car-insurance":["7 days free insurance"],"market-frontpage.blocket-car-insurance-description":["Protect yourself and your new car from the first mile. Pre-order 7 days of insurance at no cost."],"market-frontpage.car-worth-description":["Finn ut hva bilen din er verdt p\xE5 v\xE5rt s\xF8sterside, Bilbasen. Tast inn bilens kjennetegn og f\xE5 veiledende salgspris \u2013 basert p\xE5 tusenvis av reelle handler."],"market-frontpage.car-worth-title":["Hva er bilen min verdt?"],"market-frontpage.find-your-b2b":["Finn ditt n\xE6ringskj\xF8ret\xF8y"],"market-frontpage.find-your-boat":["Finn b\xE5ten som passer deg"],"market-frontpage.find-your-car":["Finn bilen som passer deg"],"market-frontpage.find-your-caravan":["Finn bobilen eller campingvognen som passer deg"],"market-frontpage.find-your-mc":["Finn MC som passer deg"],"market-frontpage.last-searches.delete-all-button":["Slett alle s\xF8k"],"market-frontpage.last-searches.description":["Etter hvert som du s\xF8ker p\xE5 FINN, vil s\xF8kene dukke opp her."],"market-frontpage.last-searches.hits":["treff"],"market-frontpage.last-searches.title":["Siste s\xF8k"],"market-frontpage.latest-models.next":["Neste"],"market-frontpage.latest-models.previous":["Forrige"],"market-frontpage.nettbil":["Selg med Nettbil"],"market-frontpage.new-ad":["Ny annonse"],"market-frontpage.new-car-tests":["Nye biltester"],"market-frontpage.new-car-tests-description":["Vi hjelper deg \xE5 sammenligne f\xF8r du bestemmer deg."],"market-frontpage.price-advice":["Pristips for bruktbil"],"market-frontpage.price-advice-description":["F\xE5 prisestimat fra lignende biler solgt p\xE5 FINN"],"market-frontpage.price-evaluation-banner.cta":["G\xE5 til verdivurderingen"],"market-frontpage.sell-car":["Tre m\xE5ter \xE5 selge bilen p\xE5"],"market-frontpage.sell-car-description":["Finn den beste m\xE5ten \xE5 selge bilen din p\xE5"],"market-frontpage.smidig-bilhandel":["Smidig bilhandel"],"market-frontpage.smidig-bilhandel-description":["Trygg og enkel bilhandel med Smidig: betaling, eierskifte og kontrakt."],"market-frontpage.useful-tools":["Nyttige verkt\xF8y og tjenester"],"market-frontpage.wheelaway":["Selg med Wheelaway"],"mobility-recommendations-title":["Anbefalinger til deg"],"mobility-recommendations-title-popular":["Popul\xE6re annonser"],"newcar.makecard.model-count":[["count","plural",{"one"
206:["#"," modell"],"other":["#"," modeller"]}]],"pagetitle-icon-of":["ikon av"],"sell-steps.eyebrow":["Slik fungerer det"],"sell-steps.step-1.description":["Skriv inn registreringsnummer, kilometerstand og svar p\xE5 noen f\xE5 sp\xF8rsm\xE5l."],"sell-steps.step-1.title":["1. Registrer bilen"],"sell-steps.step-2.description":["Basert p\xE5 opplysningene dine gir vi deg en anbefaling om den best egnede m\xE5ten \xE5 selge bilen din p\xE5."],"sell-steps.step-2.title":["2. V\xE5r anbefaling"],"sell-steps.step-3.description":["Selg privat, med Smidig bilhandel eller med Nettbil."],"sell-steps.step-3.title":["3. Velg alternativ"],"sell-steps.title":["3 enkle steg"],"seo.title":["Popul\xE6re s\xF8k"],"seo.title.agritrucks":["Truck"],"seo.title.buses":["Buss"],"seo.title.excavators":["Gravemaskin"],"seo.title.tractor":["Traktor"],"seo.title.trucks":["Lastebil"],"server.description.b2b":["Kj\xF8p og salg av hagemaskiner, redskaper og nyttekj\xF8ret\xF8y p\xE5 FINN. Stort utvalg av lastebiler, traktorer, gravemaskiner og mer \u2013 b\xE5de i Norge og utlandet."],"server.description.boat":["Kj\xF8p og selg b\xE5ter p\xE5 FINN. Rimelige priser p\xE5 motorb\xE5ter, seilb\xE5ter og joller \u2013 Finn det du dr\xF8mmer om p\xE5 FINN."],"server.description.car":["Kj\xF8p og salg av biler p\xE5 FINN, b\xE5de i Norge og utlandet. Stort utvalg av elbiler og varebiler \u2013 Finn merker som Audi, BMW, Toyota og flere."],"server.description.car.with-caravan":["Kj\xF8p og salg av biler p\xE5 FINN, b\xE5de i Norge og utlandet. Stort utvalg av elbiler, bobiler, varebiler og campingvogner \u2013 Finn merker som Audi, BMW, Toyota og flere."],"server.description.caravan":["Finn din neste bobil eller campingvogn blant tusenvis av annonser"],"server.description.mc":["Kj\xF8p og salg av motorsykler p\xE5 FINN. Rimelige priser p\xE5 motorsykler \u2013 Finn det du dr\xF8mmer om p\xE5 FINN."],"server.title.b2b":["Nyttekj\xF8ret\xF8y og maskiner - FINN.no"],"server.title.boat":["B\xE5t - FINN.no"],"server.title.car":["Bil - FINN.no"],"server.title.car.with-caravan":["Bil og campingvogn - FINN.no"],"server.title.caravan":["Bobil og campingvogn"],"server.title.mc":["MC - FINN.no"],"tabs.car.all":["Alle biler"],"tabs.car.new":["Nye biler"],"tabs.car.sell":["Selg"]}');var it=JSON.parse('{"6sjRAN":["Insure your car"],"HLBwg1":["Here can you find relevant content, smart tips, tricks and good advice"],"categories.title.agriparts":["Delar till jordbruksmaskiner"],"categories.title.atvmctrailers":["ATV- och MC-sl\xE4p"],"categories.title.atvparts":["ATV-delar och tillbeh\xF6r"],"categories.title.bapmc":["MC-delar och tillbeh\xF6r"],"categories.title.boatparts":["B\xE5tdelar och tillbeh\xF6r"],"categories.title.boattrailers":["B\xE5ttrailers och b\xE5tvagnar"],"categories.title.caravanparts":["Husvagns- och husbilsdelar"],"categories.title.carnew":["Nya bilar i lager"],"categories.title.carparts":["Bildelar och biltillbeh\xF6r"],"categories.title.rental":["Hyrbil"],"categories.title.snowmobileparts":["Sn\xF6skoterdelar och tillbeh\xF6r"],"categories.title.trailers":["Sl\xE4p och trailer"],"collections.title.boatmotor":["B\xE5tmotor"],"collections.title.cabincruiser":["Kabinb\xE5t"],"collections.title.caravan":["Caravans"],"collections.title.carnew":["Nya bilar i lager"],"collections.title.console":["Styrpulpetb\xE5t"],"collections.title.convenient-size":["Flexibla husvagnar"],"collections.title.daycruiser":["Daycruiser"],"collections.title.easy-to-tow":["L\xE4tta husvagnar"],"collections.title.electric":["Elbil"],"collections.title.extra-space":["Rymliga husvagnar"],"collections.title.family":["Familjebil"],"collections.title.fishing":["Fiskeb\xE5t"],"collections.title.for-two":["Husbilar f\xF6r tv\xE5"],"collections.title.jetski":["Vattenskoter"],"collections.title.large-comfortable":["Stora husbilar"],"collections.title.mc.adventure":["\xC4ventyr"],"collections.title.mc.atv":["ATV"],"collections.title.mc.cross-enduro":["Cross/Enduro"],"collections.title.mc.custom":["Custom"],"collections.title.mc.light-mc":["L\xE4tt MC"],"collections.title.mc.moped":["Moped"],"collections.title.mc.naked":["Naken"],"collections.title.mc.scooter"
206:["MC Scooter"],"collections.title.mc.snowmobile":["Sn\xF6skoter"],"collections.title.mc.sport":["Sport"],"collections.title.mc.touring":["Touring"],"collections.title.mobilehome":["Mobile homes"],"collections.title.pluginhybrid":["Laddhybrid"],"collections.title.rib":["RIB"],"collections.title.sail":["Segelb\xE5t"],"collections.title.sevenseater":["7-sitsig bil"],"collections.title.small":["Sm\xE5bil"],"collections.title.sports":["Sportbil"],"collections.title.standard-license":["Husbilar med B-k\xF6rkort"],"collections.title.suv":["SUV"],"collections.title.van":["Yrkesfordon"],"collections.title.yacht":["Yacht"],"evergreen.view-all":["L\xE4s mer"],"frontpage.evergreen-content.title":["Allt du beh\xF6ver veta f\xF6r en trygg aff\xE4r"],"frontpage.evergreen-content.title.boat":["Allt du beh\xF6ver veta f\xF6r en trygg b\xE5taff\xE4r"],"frontpage.evergreen-content.title.car":["Allt du beh\xF6ver veta f\xF6r en trygg bilaff\xE4r"],"frontpage.evergreen-content.title.caravan":["Allt du beh\xF6ver f\xF6r en trygg husbils- och husvagnsaff\xE4r"],"frontpage.evergreen-content.title.mc":["Allt du beh\xF6ver veta f\xF6r en trygg MC-aff\xE4r"],"infobox.filter-transition.dismiss-button":["Okej, d\xE5 vet jag"],"infobox.filter-transition.message":["En del filter visar kanske f\xE4rre resultat just nu, men fylls p\xE5 vartefter nya annonser rullar in."],"infobox.filter-transition.title":["Vi f\xF6rb\xE4ttrar filtren"],"landing-page.hero.alt.b2b":["Huvudbild f\xF6r nyttofordon"],"landing-page.hero.alt.boat":["Huvudbild f\xF6r b\xE5tar"],"landing-page.hero.alt.car":["Huvudbild f\xF6r bilar"],"landing-page.hero.alt.caravan":["Huvudbild f\xF6r husbilar och husvagnar"],"landing-page.hero.alt.mc":["Huvudbild f\xF6r motorcyklar"],"last-search.description-with-category":[["description"]," i ",["category"]],"make-model-links.column.show-less":["Visa f\xE4rre"],"make-model-links.column.show-more":["Visa fler"],"make-model-links.expand-makes-rows.show-less":["Visa f\xE4rre m\xE4rken"],"make-model-links.expand-makes-rows.show-more":["Visa fler m\xE4rken"],"make-model-links.other-brands":["Andra m\xE4rken"],"make-model-links.title.b2b":["Popul\xE4ra entreprenad- och lantbruksmaskinsm\xE4rken p\xE5 Blocket"],"make-model-links.title.boat":["Popul\xE4ra b\xE5tm\xE4rken p\xE5 Blocket"],"make-model-links.title.car":["Popul\xE4ra bilm\xE4rken p\xE5 Blocket"],"make-model-links.title.caravan":["Vanliga husbils- och husvagnsm\xE4rken"],"make-model-links.title.mc":["Popul\xE4ra MC-m\xE4rken p\xE5 Blocket"],"market-frontpage.blocket-car-insurance":["7 dagars gratis f\xF6rs\xE4kring"],"market-frontpage.blocket-car-insurance-description":["Skydda dig sj\xE4lv och din nya bil fr\xE5n f\xF6rsta milen. F\xF6rbest\xE4ll 7 dagars f\xF6rs\xE4kring helt utan kostnad."],"market-frontpage.car-worth-description":["Ta reda p\xE5 vad din bil \xE4r v\xE4rd p\xE5 v\xE5r systerwebbplats, Bilbasen. Ange registreringsnumret och f\xE5 ett v\xE4gledande f\xF6rs\xE4ljningspris \u2013 baserat p\xE5 tusentals aktuella aff\xE4rer."],"market-frontpage.car-worth-title":["Vad \xE4r min bil v\xE4rd?"],"market-frontpage.find-your-b2b":["Hitta ditt nyttofordon"],"market-frontpage.find-your-boat":["Hitta b\xE5ten som passar dig"],"market-frontpage.find-your-car":["Hitta bilen som passar dig"],"market-frontpage.find-your-caravan":["Hitta husbilen eller husvagnen som passar dig"],"market-frontpage.find-your-mc":["Hitta fordonet som passar dig"],"market-frontpage.last-searches.delete-all-button":["Rensa s\xF6kningar"],"market-frontpage.last-searches.description":["N\xE4r du g\xF6r s\xF6kningar p\xE5 ",["brand"]," kommer de att visas h\xE4r."],"market-frontpage.last-searches.hits":["tr\xE4ffar"],"market-frontpage.last-searches.title":["Senaste s\xF6kningar"],"market-frontpage.latest-models.next":["N\xE4sta"],"market-frontpage.latest-models.previous":["F\xF6reg\xE5ende"],"market-frontpage.nettbil":["S\xE4lj med Nettbil"],"market-frontpage.new-ad":["Skapa annons"],"market-frontpage.new-car-tests":["Nya biltester"],"market-frontpage.new-car-tests-description":["Vi hj\xE4lper dig att j\xE4mf\xF6ra innan du best\xE4mmer dig."],"market-frontpage.price-advice":["V\xE4rdera din bil"],"market-frontpage.price-advice-description":["F\xE5 prisuppskattning fr\xE5n liknande bilar som s\xE4ljs p\xE5 Blocket."],"market-frontpage.price-evaluation-banner.cta":["G\xE5 till v\xE4rderingen"],"market-frontpage.sell-car":["Tre s\xE4tt att s\xE4lja din bil p\xE5"],"market-frontpage.sell-car-description":["Skriv ditt registreringsnummer s\xE5 f\xE5r du de s\xE4ljalternativ som passar dig b\xE4st"],"market-frontpage.smidig-bilhandel":["Smidiga bilaff\xE4rer"],"market-frontpage.smidig-bilhandel-description":["K\xF6p och s\xE4lj bil tryggt och enkelt med Smidiga bilaff\xE4rer: betalning, \xE4garbyte och avtal."],"market-frontpage.useful-tools":["Nyttiga verktyg och tj\xE4nster"],"market-frontpage.wheelaway":["S\xE4lj med Wheelaway"],"mobility-recommendations-title":["Rekommendationer f\xF6r dig"],"mobility-recommendations-title-popular":["Popul\xE4ra annonser"],"newcar.makecard.model-count":[["count","plural",{"one"
206:["#"," modell"],"other":["#"," modeller"]}]],"pagetitle-icon-of":["ikon av"],"sell-steps.eyebrow":["How it works"],"sell-steps.step-1.description":["Enter the registration number, mileage and answer a few questions."],"sell-steps.step-1.title":["1. Register the car"],"sell-steps.step-2.description":["Based on your information, we give you a recommendation on the most suitable way to sell your car."],"sell-steps.step-2.title":["2. Our recommendation"],"sell-steps.step-3.description":["Sell privately, with Smidig bilhandel or with Nettbil."],"sell-steps.step-3.title":["3. Choose option"],"sell-steps.title":["3 simple steps"],"seo.title":["Popul\xE4ra s\xF6kningar"],"seo.title.agritrucks":["Truck"],"seo.title.buses":["Buss"],"seo.title.excavators":["Gr\xE4vmaskin"],"seo.title.tractor":["Traktor"],"seo.title.trucks":["Lastebil"],"server.description.b2b":["K\xF6p och s\xE4lj tr\xE4dg\xE5rdsmaskiner, redskap och yrkesfordon p\xE5 Blocket. Stort utbud av lastbilar, traktorer, gr\xE4vmaskiner och mer \u2013 b\xE5de i Sverige och utomlands."],"server.description.boat":["K\xF6p och s\xE4lj b\xE5tar p\xE5 Blocket. Bra priser p\xE5 motorb\xE5tar, segelb\xE5tar och jollar \u2013 Hitta det du dr\xF6mmer om p\xE5 Blocket."],"server.description.car":["K\xF6p och s\xE4lj bilar p\xE5 Blocket, b\xE5de i Sverige och utomlands. Stort utbud av elbilar och transportbilar \u2013 Hitta m\xE4rken som Audi, BMW, Toyota och fler."],"server.description.car.with-caravan":["K\xF6p och s\xE4lj bilar p\xE5 Blocket, b\xE5de i Sverige och utomlands. Stort utbud av elbilar, husbilar, transportbilar och husvagnar \u2013 Hitta m\xE4rken som Audi, BMW, Toyota och fler."],"server.description.caravan":["Hitta din n\xE4sta husbil eller husvagn bland tusentals annonser"],"server.description.mc":["K\xF6p och s\xE4lj motorcyklar p\xE5 Blocket. Bra priser p\xE5 motorcyklar \u2013 Hitta det du dr\xF6mmer om p\xE5 Blocket."],"server.title.b2b":["Entreprenad- och lantbruksmaskiner |\xA0Blocket"],"server.title.boat":["B\xE5t |\xA0Blocket"],"server.title.car":["Begagnade fordon till salu | K\xF6p ett begagnat eller ny fordon | Blocket"],"server.title.car.with-caravan":["Begagnade fordon till salu | K\xF6p ett begagnat eller ny fordon | Blocket"],"server.title.caravan":["Husbil & husvagn"],"server.title.mc":["K\xF6p begagnade motorcyklar och tillbeh\xF6r |\xA0Blocket"],"tabs.car.all":["Alla bilar"],"tabs.car.new":["Nya bilar"],"tabs.car.sell":["S\xE4lja"]}');function st(r,e=globalThis.document){return r?e.documentElement.getAttribute(r):null}function nt(...r){for(let e=0;e<r.length;e++){let t=typeof r[e]=="function"?r[e]():r[e];if(t)return t}return null}var f=r=>{let e=r||nt(st("lang"),"en"),t=sr(e);n.load(e,t),n.activate(e)},sr=r=>{switch(r){case"da":return rt;case"nb":return at;case"sv":return it;default:return ot}};var he=class extends ct{static properties={subvertical:{type:w},brand:{type:String},lastSearches:{type:Array},basePath:{type:String},trackingEventMap:{type:Object}};static styles=[ct.styles,nr` 207 @css-placeholder-oSAJq8; 208 `];constructor(){super(),this.lastSearches=[]}connectedCallback(){f(),super.connectedCallback()}render(){let e=n.t({id:"market-frontpage.last-searches.hits",message:"Hits"});return this.lastSearches?.length>0?lt`<section 209 id="last-searches" 210 role="region" 211 aria-labelledby="last-searches-label" 212 data-lastsearch-delete-url="{{ deleteUrl }}" 213 data-device-type="desktop" 214 > 215 <div class="flex items-center justify-between"> 216 <h2 id="last-searches-label" class="t3 mb-0"> 217 ${n.t({id:"market-frontpage.last-searches.title",message:"Previous searches"})} 218 </h2> 219 <a 220 class="s-text-link bg-transparent" 221 href="?action=clearLastSearches" 222 @click="${()=>u(this.trackingEventMap.MO_ev66)}" 223 > 224 ${n.t({id:"market-frontpage.last-searches.delete-all-button",message:"Delete all searches"})} 225 </a> 226 </div> 227 228 <p data-empty-message class="sr-only text-14"> 229 ${n.t({id:"market-frontpage.last-searches.description",message:"As you search on {brand}, they will appear here.",values:{brand:this.brand}})} 230 </p> 231 <ul data-links-list class="flex gap-16 mb-0 overflow-x-auto" style="scrollbar-width: none;"> 232 ${this.lastSearches.map(t=>lt` 233 <li> 234 <a 235 href="${t.link}" 236 class="h-32 s-bg-info-subtle px-12 py-8 whitespace-nowrap rounded-full flex items-center gap-8 my-16 s-text font-bold text-detail" 237 @click="${()=>u(t.trackingEvent)}" 238 > 239 ${t.description}
240 <span class="ml-2 s-text-subtle font-normal"> 241 ${N(t.hits,B(this.brand))} ${e} 242 </span> 243 </a> 244 </li> 245 `)} 246 </ul> 247 248 <hr /> 249 </section>`:lr}};customElements.define("last-searches",he);import dt from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as cr,html as H,nothing as dr}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var pt=5,pr=10,bt=20,br=40,fe=class extends dt{static styles=[dt.styles,cr` 250 @css-placeholder-jShvst; 251 `];static properties={makeModelLinks:{type:Array},subvertical:{type:String},showMoreMakes:{type:Boolean}};constructor(){super(),this.showMoreMakes=!1}connectedCallback(){f(),super.connectedCallback()}showMakeWithModels=()=>this.makeModelLinks.length>0&&this.makeModelLinks[0].links&&this.makeModelLinks[0].links.length>0;defaultMakesToShow=()=>this.showMakeWithModels()?pt:bt;makesToShow=()=>this.showMakeWithModels()?this.showMoreMakes?pr:pt:this.showMoreMakes?br:bt;getPageTitle(e){switch(e){case"car":return n.t({id:"make-model-links.title.car",message:"Common car brands"});case"boat":return n.t({id:"make-model-links.title.boat",message:"Common boat brands"});case"mc":return n.t({id:"make-model-links.title.mc",message:"Common motorcycle brands"});case"b2b":return n.t({id:"make-model-links.title.b2b",message:"Common b2b brands"});case"caravan":return n.t({id:"make-model-links.title.caravan",message:"Common caravan and motorhome brands"})}}toggleShowMoreMakes(){this.showMoreMakes=!this.showMoreMakes}render(){return H` 252 <div class="flex relative -mx-[31px]"> 253 <hr class="absolute left-1/2 -translate-x-1/2 w-screen -z-10" /> 254 <div class="max-w-[1024] flex flex-col gap-16 w-full px-[31px] relative"> 255 <hr class="absolute left-0 right-0 -z-5" /> 256 <h3 class="t3 pt-56 relative z-10">${this.getPageTitle(this.subvertical)}</h3> 257 ${this.showMakeWithModels()?H`<mfp-make-with-model-links 258 makeModelLinks="${JSON.stringify(this.makeModelLinks)}" 259 subvertical="${JSON.stringify(this.subvertical)}" 260 makesToShow="${JSON.stringify(this.makesToShow())}" 261 ></mfp-make-with-model-links>`:H`<mfp-make-links 262 makeModelLinks="${JSON.stringify(this.makeModelLinks)}" 263 subvertical="${JSON.stringify(this.subvertical)}" 264 makesToShow="${JSON.stringify(this.makesToShow())}" 265 ></mfp-make-links>`} 266 ${this.makeModelLinks.length>this.defaultMakesToShow()?H`<div> 267 <button @click="${this.toggleShowMoreMakes}" class="s-text-link bg-transparent hover:underline"> 268 ${this.showMoreMakes?n.t({id:"make-model-links.expand-makes-rows.show-less",message:"Show less makes"}):n.t({id:"make-model-links.expand-makes-rows.show-more",message:"Show more makes"})} 269 </button> 270 </div>`:dr} 271 </div> 272 </div> 273 </div> 274 `}};customElements.define("mfp-make-model-seo-links",fe);import mt from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as mr,html as gt}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var ve=class extends mt{static styles=[mt.styles,mr` 275 @css-placeholder-ORC1Ce; 276 `];static properties={makeModelLinks:{type:Array},subvertical:{type:String},showMoreMakes:{type:Boolean},makesToShow:{type:Number}};constructor(){super()}connectedCallback(){super.connectedCallback()}render(){return gt`<ul id="${this.subvertical}-make-list" class="grid md:grid-cols-5 grid-cols-2 md:gap-x-56 gap-x-24 gap-y-8"> 277 ${this.makeModelLinks.map(({title:e},t)=>{let o=typeof e=="string"?e:e.displayName,a=typeof e=="string"?"":e.url;return gt`<li class="${t>=this.makesToShow?"hidden":""}"> 278 <a href="${a}" class="s-text s-text-subtle">${o}</a> 279 </li>`})} 280 </ul>`}};customElements.define("mfp-make-links",ve);import ut from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as gr,html as _,nothing as ht}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var we=4,ke=10,ye=class extends ut{static styles=[ut.styles,gr` 281 @css-placeholder-slSX52; 282 `];
282static properties={modelCountMap:{type:Object},makeModelLinks:{type:Array},subvertical:{type:String},showMoreMakes:{type:Boolean},makesToShow:{type:Number}};constructor(){super(),this.modelCountMap={}}connectedCallback(){super.connectedCallback()}increaseModelsToShow(e){let t=this.modelCountMap?.[e],o=Math.min((t??we)+3,ke);this.modelCountMap={...this.modelCountMap,[e]:o}}resetModelsToShow(e){this.modelCountMap={...this.modelCountMap,[e]:we}}render(){return _`<div class="grid grid-cols-5 lt-md:grid-cols-2 md:gap-y-32 md:gap-x-56 gap-24"> 283 ${this.makeModelLinks.map(({title:e,links:t},o)=>{let a=typeof e=="string"?e:e?.displayName,s=typeof e=="string"?"":e?.url,i=this.modelCountMap?.[a]??we;return _`<ul 284 id="${this.subvertical}-make-list" 285 class="my-8 flex flex-col gap-4 ${o>=this.makesToShow?"hidden":""}" 286 > 287 ${e?s?_`<label for="${this.subvertical}-make-list" class="font-bold" 288 ><a href="${s}" class="s-text">${a}</a></label 289 >`:_`<label for="${this.subvertical}-make-list" class="font-bold s-text">${a}</label>`:ht} 290 ${t.map(({displayName:l,url:g},m)=>{let v=ke>i&&t.length>i,x=ke===i,O=()=>{switch(!0){case(m===i-1&&v):return _`<li class="mt-4"> 291 <button 292 class="s-text-link bg-transparent no-underline hover:no-underline" 293 @click="${()=>this.increaseModelsToShow(a)}" 294 > 295 ${n.t({id:"make-model-links.column.show-more",message:"Show more"})} 296 </button> 297 </li>`;case(m===i-1&&x):return _`<li class="mt-4"> 298 <button 299 class="s-text-link bg-transparent no-underline hover:no-underline" 300 @click="${()=>this.resetModelsToShow(a)}" 301 > 302 ${n.t({id:"make-model-links.column.show-less",message:"Show less"})} 303 </button> 304 </li>`;default:return ht}};return _`<li class="${m>=i?"hidden":""}"> 305 <a href="${g}" class="s-text s-text-subtle">${l}</a> 306 </li> 307 ${O()}`})} 308 </ul>`})} 309 </div>`}};customElements.define("mfp-make-with-model-links",ye);import ft from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as ur,html as vt}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var xe=class extends ft{static styles=[ft.styles,ur` 310 @css-placeholder-Gu11-u; 311 `];static properties={links:{type:Array}};constructor(){super()}connectedCallback(){f(),super.connectedCallback()}render(){return vt` 312 <div class="flex"> 313 <div class="max-w-[1024] flex flex-col gap-16 w-full"> 314 <h3 class="t3"> 315 ${n.t({id:"seo.title",message:"Popular searches"})} 316 </h3> 317 <ul class="grid grid-cols-5 lt-md:grid-cols-2 gap-x-56 gap-y-4"> 318 ${this.links.map(e=>vt` 319 <li> 320 <a href="${e.url}" class="s-text s-text-subtle block truncate"> ${e.label} </a> 321 </li> 322 `)} 323 </ul> 324 </div> 325 </div> 326 `}};customElements.define("popular-links-for-seo",xe);var j={base:"cursor-pointer overflow-hidden relative transition-all",shadow:"group rounded-8 s-surface-elevated-200 hover:s-surface-elevated-200-hover active:s-surface-elevated-200-active",selected:"!s-bg-selected !hover:s-bg-selected-hover !active:s-bg-selected-active",outline:"absolute border-2 rounded-8 inset-0 transition-all",outlineUnselected:"border-transparent group-active:s-border-active",outlineSelected:"s-border-selected group-hover:s-border-selected-hover group-active:s-border-selected-active",flat:"border-2 rounded-4",flatUnselected:"s-bg hover:s-bg-hover active:s-bg-active s-border hover:s-border-hover active:s-border-active",flatSelected:"s-bg-selected hover:s-bg-selected-hover active:s-bg-selected-active s-border-selected hover:s-border-selected-hover active:s-border-selected-active",a11y:"sr-only"};var E="font-bold focusable justify-center transition-colors ease-in-out",h={primary:"s-text-inverted bg-[--w-color-button-primary-background] hover:bg-[--w-color-button-primary-background-hover] active:bg-[--w-color-button-primary-background-active]",secondary:"s-text-link s-border s-bg hover:s-bg-hover hover:s-border-hover active:s-bg-active",utility:"s-text s-bg hover:s-bg-hover active:s-bg-active s-border hover:s-border-hover active:s-border-active",destructive:"s-bg-negative s-text-inverted hover:s-bg-negative-hover active:s-bg-negative-active",pill:"s-icon hover:s-icon-hover active:s-icon-active bg-transparent hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]",disabled:"s-text-inverted s-bg-disabled",quiet:"bg-transparent s-text-link hover:s-bg-hover active:s-bg-active",utilityQuiet:"s-text bg-transparent hover:s-bg-hover active:s-bg-active",negativeQuiet:"bg-transparent s-text-negative hover:s-bg-negative-subtle-hover active:s-bg-negative-subtle-active",loading:"s-text s-bg-subtle",link:"s-text-link"},b={primary:`border-0 rounded-8 ${E}`,secondary:`border-2 rounded-8 ${E}`,utility:`border rounded-4 ${E}`,negative:`border-0 rounded-8 ${E}`,pill:`p-4 rounded-full border-0 inline-flex items-center justify-center hover:bg-clip-padding ${E}`,link:`bg-transparent focusable ease-in-out inline active:underline hover:underline focus:underline ${h.link}`},p={xsmall:"py-6 px-16",small:"py-8 px-16",medium:"py-10 px-14",large:"py-12 px-16",utility:"py-[11px] px-[15px]",smallUtility:"py-[7px] px-[15px]",pill:"min-h-[44px] min-w-[44px]",pillSmall:"min-h-32 min-w-32",link:"p-0"},d={medium:"text-m leading-[24]",xsmall:"text-xs"},c={inProgress:`border-transparent animate-inprogress pointer-events-none ${h.loading}`,quiet:`border-0 rounded-8 ${E}`,utilityQuiet:`border-0 rounded-4 ${E}`,negativeQuiet:`border-0 rounded-8 ${E}`,isDisabled:`font-bold justify-center transition-colors ease-in-out cursor-default pointer-events-none ${h.disabled}`},$e={secondary:`${p.medium} ${d.medium} ${b.secondary} ${h.secondary}`,secondaryHref:`${p.medium} ${d.medium} ${b.secondary} ${h.secondary}
326`,secondaryDisabled:`${p.medium} ${d.medium} ${b.secondary} ${c.isDisabled}`,secondarySmall:`${d.xsmall} ${p.xsmall} ${b.secondary} ${h.secondary}`,secondarySmallDisabled:`${d.xsmall} ${p.xsmall} ${b.secondary} ${c.isDisabled}`,secondaryQuiet:`${p.medium} ${d.medium} ${c.quiet} ${h.quiet}`,secondaryQuietDisabled:`${p.medium} ${d.medium} ${c.quiet} ${c.isDisabled}`,secondarySmallQuiet:`${d.xsmall} ${p.xsmall} ${c.quiet} ${h.quiet}`,secondarySmallQuietDisabled:`${d.xsmall} ${p.xsmall} ${c.quiet} ${c.isDisabled}`,secondaryLoading:`${p.medium} ${d.medium} ${b.secondary} ${c.inProgress}`,secondarySmallLoading:`${d.xsmall} ${p.xsmall} ${b.secondary} ${c.inProgress}`,secondarySmallQuietLoading:`${d.xsmall} ${p.xsmall} ${c.quiet} ${c.inProgress}`,secondaryQuietLoading:`${p.medium} ${d.medium} ${c.quiet} ${c.inProgress}`,primary:`${p.large} ${d.medium} ${b.primary} ${h.primary}`,primaryDisabled:`${p.large} ${d.medium} ${c.isDisabled} ${b.primary}`,primarySmall:`${p.small} ${d.xsmall} ${b.primary} ${h.primary}`,primarySmallDisabled:`${p.small} ${d.xsmall} ${c.isDisabled} ${b.primary} `,primaryQuiet:`${p.large} ${d.medium} ${c.quiet} ${h.quiet}`,primaryQuietDisabled:`${p.large} ${d.medium} ${c.quiet} ${c.isDisabled}`,primarySmallQuiet:`${p.small} ${d.xsmall} ${c.quiet} ${h.quiet}`,primarySmallQuietDisabled:`${p.small} ${d.xsmall} ${c.quiet} ${c.isDisabled}`,primaryLoading:`${p.large} ${d.medium} ${c.inProgress} ${b.primary}`,primarySmallLoading:`${p.small} ${d.xsmall} ${c.inProgress} ${b.primary}`,primarySmallQuietLoading:`${p.small} ${d.xsmall} ${c.quiet} ${c.inProgress} ${b.primary}`,primaryQuietLoading:`${p.large} ${d.medium} ${c.quiet} ${c.inProgress}`,utility:`${p.utility} ${d.medium} ${b.utility} ${h.utility}`,utilityDisabled:`${p.utility} ${d.medium} ${b.utility} ${c.isDisabled}`,utilityQuiet:`${p.large} ${d.medium} ${c.utilityQuiet} ${h.utilityQuiet}`,utilityQuietDisabled:`${p.large} ${d.medium} ${c.utilityQuiet} ${c.isDisabled}`,utilitySmall:`${p.smallUtility} ${d.xsmall} ${b.utility} ${h.utility}`,utilitySmallDisabled:`${p.smallUtility} ${d.xsmall} ${b.utility} ${c.isDisabled}`,utilitySmallQuiet:`${p.smallUtility} ${d.xsmall} ${c.utilityQuiet} ${h.utilityQuiet}`,utilitySmallQuietDisabled:`${p.smallUtility} ${d.xsmall} ${c.utilityQuiet} ${c.isDisabled}`,utilityLoading:`${p.large} ${d.medium} ${b.utility} ${c.inProgress}`,utilitySmallLoading:`${p.smallUtility} ${d.xsmall} ${b.utility} ${c.inProgress}`,utilityQuietLoading:`${p.large} ${d.medium} ${c.inProgress} ${c.utilityQuiet}`,utilitySmallQuietLoading:`${p.smallUtility} ${d.xsmall} ${c.inProgress} ${c.utilityQuiet}`,negative:`${p.large} ${d.medium} ${b.negative} ${h.destructive}`,negativeDisabled:`${p.large} ${d.medium} ${b.negative} ${c.isDisabled}`,negativeQuiet:`${p.large} ${d.medium} ${c.negativeQuiet} ${h.negativeQuiet}`,negativeQuietDisabled:`${p.large} ${d.medium} ${c.negativeQuiet}${c.isDisabled}`,negativeSmall:`${p.small} ${d.xsmall} ${b.negative} ${h.destructive}`,negativeSmallDisabled:`${p.small} ${d.xsmall} ${b.negative} ${c.isDisabled}`,negativeSmallQuiet:`${p.small} ${d.xsmall} ${c.negativeQuiet} ${h.negativeQuiet}`,negativeSmallQuietDisabled:`${p.small} ${d.xsmall} ${c.negativeQuiet} ${c.isDisabled}`,negativeLoading:`${p.large} ${d.medium} ${b.negative} ${c.inProgress}`,negativeSmallLoading:`${p.small} ${d.xsmall} ${c.inProgress} ${b.negative}`,negativeQuietLoading:`${p.large} ${d.medium} ${c.negativeQuiet} ${b.negative} ${c.inProgress}`,negativeSmallQuietLoading:`${p.small} ${d.xsmall} ${c.negativeQuiet} ${c.inProgress}`,pill:`${p.pill} ${d.medium} ${b.pill} ${h.pill}`,pillSmall:`${p.pillSmall} ${d.xsmall} ${b.pill} ${h.pill}`,pillLoading:`${p.pill} ${d.medium} ${b.pill} ${c.inProgress}`,pillSmallLoading:`${p.pillSmall} ${d.xsmall} ${b.pill} ${c.inProgress}`,link:`${p.link} ${d.medium} ${b.link}`,linkSmall:`${p.link} ${d.xsmall} ${b.link}`,linkAsButton:"inline-block active:no-underline hover:no-underline focus:no-underline text-center",a11y:"sr-only",fullWidth:"w-full max-w-full",contentWidth:"max-w-max"};var ja={backdrop:"fixed inset-0 flex sm:place-content-center sm:place-items-center items-end z-30 [--w-modal-max-height:80%] [--w-modal-width:640px] bg-[--w-black/25]",base:"pb-safe-[32] shadow-m max-h-[--w-modal-max-height] min-h-[--w-modal-min-height] w-[--w-modal-width] h-[--w-modal-height] relative transition-300 ease-in-out backface-hidden will-change-height rounded-8 mx-0 sm:mx-16 bg-[--w-s-color-surface-elevated-100] flex flex-col overflow-hidden outline-none space-y-16 pt-8 sm:pt-32 sm:pb-32 rounded-b-0 sm:rounded-b-8",content:"block overflow-y-auto overflow-x-hidden last-child:mb-0 grow shrink px-16 sm:px-32 relative",footer:"flex justify-end shrink-0 px-16 sm:px-32",transitionTitle:"transition-all duration-300",transitionTitleCenter:"justify-self-center self-center",transitionTitleColSpan:"col-span-2",title:"py-8 sm:py-0 -mt-4 sm:-mt-8 min-h-40 sm:min-h-48 grid gap-8 sm:gap-16 grid-cols-[auto_1fr_auto] items-start px-16 sm:px-32 border-b sm:border-b-0 shrink-0",titleText:"mb-0 h4 sm:h3",titleButton:`${d.medium} ${b.pill} ${h.pill} sm:min-h-[44px] sm:min-w-[44px] min-h-[32px] min-w-[32px]`,titleButtonLeft:"-ml-8 sm:-ml-12 justify-self-start",titleButtonRight:"-mr-8 sm:-mr-12 justify-self-end",titleButtonIcon:"h-16 w-16 sm:h-24 sm:w-24",titleButtonIconRotated:"transform rotate-90"};var wt="absolute top-0 bottom-0 flex justify-center items-center focusable rounded-4 focus:[--w-outline-offset:-2px] bg-transparent ",Ia={wrapper:wt+"right-0",wrapperW
326ithLabel:"w-max pr-12",wrapperWithIcon:"w-40",label:"antialiased block relative cursor-default pb-0 font-bold text-xs s-text"},Ra={wrapper:wt+"left-0",wrapperWithLabel:"w-max pl-12",wrapperWithIcon:"w-40",label:"antialiased block relative cursor-default pb-0 font-bold text-xs s-text"};var S={field:"relative text-m",wrapper:"relative py-1",wrapperRadioButtons:"inline-flex font-bold rounded-8 focus-within:focusable",wrapperRadioButtonsJustified:"flex font-bold rounded-8 focus-within:focusable",radioButtonsGroup:"group",radioButtonsGroupJustified:"grow-1 shrink-0 basis-auto",input:"peer",a11y:"sr-only",label:"peer-focus:focusable cursor-pointer text-m s-text s-border-strong py-2 pl-28 select-none relative block before:border before:absolute before:transition-all before:left-0 before:w-20 before:h-20 before:top-2",labelBefore:'before:content-[""] before:block',checkbox:"before:s-bg before:rounded-2 before:s-border-strong hover:before:s-border-strong-hover hover:before:s-bg-hover peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-icon-toggle-checked))] peer-checked:before:s-border-primary peer-checked:before:s-bg-primary peer-checked:peer-hover:before:s-border-primary-hover peer-checked:peer-hover:before:s-bg-primary-hover",checkboxInvalid:"before:s-bg before:s-border-negative before:rounded-2 hover:before:s-bg-negative-subtle-hover hover:before:s-border-negative-hover peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-icon-toggle-checked))] peer-checked:before:s-bg-negative peer-checked:before:s-border-negative peer-checked:peer-hover:before:s-bg-negative-hover peer-checked:peer-hover:before:s-border-negative-hover",checkboxDisabled:"before:s-bg-disabled-subtle before:s-border-disabled pointer-events-none before:rounded-2 peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-icon-toggle-checked))] peer-checked:before:s-border-disabled peer-checked:before:s-bg-disabled",indeterminate:'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold before:s-icon-inverted peer-indeterminate:before:s-border-primary peer-indeterminate:before:s-bg-primary peer-indeterminate:hover:before:s-border-primary-hover peer-indeterminate:hover:before:s-bg-primary-hover',indeterminateInvalid:'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold before:s-icon-inverted peer-indeterminate:before:s-border-negative peer-indeterminate:before:s-bg-negative peer-indeterminate:hover:before:s-border-negative-hover peer-indeterminate:hover:before:s-bg-negative-hover',indeterminateDisabled:'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold pointer-events-none before:s-icon-inverted peer-indeterminate:before:s-border-disabled peer-indeterminate:before:s-bg-disabled',radio:"before:s-bg before:rounded-full before:s-border-strong peer-checked:before:border-[6] peer-checked:before:s-border-selected peer-checked:peer-hover:before:s-border-selected-hover peer-hover:before:s-border-strong-hover peer-hover:before:s-bg-hover",radioInvalid:"before:s-bg before:s-border-negative before:rounded-full peer-checked:before:border-[6] peer-hover:before:s-bg-negative-subtle peer-hover:before:s-border-negative-hover peer-checked:before:s-border-negative peer-checked:peer-hover:before:s-border-negative-hover",radioDisabled:"before:s-bg-disabled-subtle before:s-border-disabled pointer-events-none before:rounded-full peer-checked:before:border-[6]",radioButtonsLabel:"peer-hover:peer-not-checked:s-bg-hover peer-checked:s-text-inverted peer-checked:s-bg-primary peer-checked:s-border-primary block relative font-bold cursor-pointer s-text-link text-center s-bg border-2 s-border group-first-of-type:rounded-tl-8 group-first-of-type:rounded-bl-8 group-last-of-type:rounded-tr-8 group-last-of-type:rounded-br-8 group-not-last-of-type:border-r-0 peer-checked:z-10 group-not-first:-ml-2",radioButtonsRegular:"text-s py-8 pl-12 pr-14",radioButtonsSmall:"text-xs py-[5px] px-[8px]"},za={wrapper:`${S.wrapper} h-20 w-20 pointer-events-none`,input:`${S.input} hidden`,inputVue:"hidden",labelVue:"-mt-2",labelRadio:`${S.label} ${S.labelBefore} ${S.radio}`,labelCheckbox:`${S.label} ${S.labelBefore} ${S.checkbox}`},I={toggle:"absolute inset-0 h-full w-full appearance-none cursor-pointer focusable focusable-inset",label:"antialiased block relative text-s font-bold s-text px-12 py-8 cursor-pointer focusable focusable-inset",buttonOrLink:"bg-transparent focusable",buttonOrLinkStretch:"inset-0 absolute"};var Pa={base:"border-2 relative flex items-start",tooltip:"s-bg-inverted border-[--w-s-color-background-inverted] shadow-m s-text-inverted-static rounded-4 py-6 px-8",callout:"bg-[--w-color-callout-background] border-[--w-color-callout-border] s-text py-8 px-16 rounded-8",highlight:"bg-[--w-color-callout-background] border-[--w-color-callout-border] s-text py-8 px-16 rounded-8 drop-shadow-m translate-z-0",popover:"bg-[--w-s-color-surface-elevated-300] border-[--w-s-color-surface-elevated-300] s-text rounded-8 p-16 drop-shadow-m translate-z-0",arrowBase:"absolute h-[14px] w-[14px] border-2 border-b-0 border-r-0 rounded-tl-4 transform",arrowDirectionLeftStart:"-left-[8px]",arrowDirectionLeft:"-left-[8px]",arrowDirectionLeftEnd:"-left-[8px]",arrowDirectionRightStart:"-right-[8px]",arrowDirectionRight:"-right-[8px]",arrowDirectionRightEnd:"-right-[8px]",arrowDirectionBottomStart:"-bottom-[8px]",arrowDirectionBottom:"-bottom-[8px]",arrowDirectionBottomEnd:"-bottom-[8px]",arrowDirectionTopStart:"-top-[8px]",arrowDirectionTop:"-top-[8px]",arrowDirectionTopEnd:"-top-[8px]",arrowTooltip:"s-bg-inverted border-[--w-s-color-background-inverted]",arrowCallout:"bg-[--w-color-callout-background] border-[--w-color-callout-border]",arrowPopover:"bg-[--w-s-color-surface-elevated-300] border-[--w-s-color-surface-elevated-300]",arrowHighlight:"bg-[--w-color-callout-background] border-[--w-color-callout-border]",content:"last-child:mb-0",notC
326allout:"absolute z-50",closeBtn:`${d.medium} ${b.pill} ${h.pill} justify-self-end -mr-8 ml-8`};import yt from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import"https://assets.finn.no/pkg/@warp-ds/elements/v2/packages/card/index.js";import{css as hr,html as xt}from"https://assets.finn.no/npm/lit/v3/lit.min.js";function kt(r,e){throw new Error(`Unhandled ${e} value: ${String(r)}`)}var Se=class extends yt{static properties={brand:{attribute:!0,type:T},baseurl:{attribute:!0,type:String},subvertical:{attribute:!0,type:w},trackingEventMap:{type:Object},wrapperClass:{type:String}};static styles=[yt.styles,hr` 327 @css-placeholder-uKFB6H; 328 `];constructor(){super()}connectedCallback(){f(),super.connectedCallback()}get newAdUrl(){let e="/create-item/start/vertical/mobility";switch(this.subvertical){case"car":return`${e}?expand=car`;case"b2b":return`${e}?expand=agriculture`;case"boat":return`${e}?expand=boat`;case"mc":return`${e}?expand=mc`;case"caravan":return`${e}?expand=caravan`;default:return kt(this.subvertical,"Subvertical in newAdUrl")}}render(){let e=this.newAdUrl,t="https://nettbil.no/finn?origin=car_browse",o=n.t({id:"market-frontpage.new-ad",message:"New ad"}),a=n.t({id:"market-frontpage.nettbil",message:"Sell using Nettbil"}),s=n.t({id:"market-frontpage.wheelaway",message:"Sell using Wheelaway"}),i=this.brand==="finn"&&this.subvertical==="car",l={url:this.brand==="finn"?t:"https://wheelaway.se",label:this.brand==="finn"?a:s,evtReference:"MO_ev11"};return xt` 329 <div class="${this.wrapperClass||"space-x-8"}"> 330 ${i?xt`<a 331 data-tracking-id=${this.brand==="finn"?"nettbil":"wheelaway"} 332 @click=${()=>u(this.trackingEventMap[l.evtReference],l.url)} 333 href=${l.url} 334 class="${$e.secondary} inline-flex px-16 items-center font-bold text-12 flex-1 hover:no-underline py-6" 335 > 336 ${l.label} 337 </a>`:""} 338 <a 339 data-tracking-id="new-ad" 340 @click=${()=>u(this.trackingEventMap.MO_ev10,e)} 341 href=${e} 342 class="${$e.secondary} inline-flex px-16 font-bold items-center text-12 flex-1 hover:no-underline py-6" 343 > 344 ${o} 345 </a> 346 </div> 347 `}};customElements.define("mfp-sell-mobility-vehicle",Se);import{css as fr,html as $t,nothing as vr}from"https://assets.finn.no/npm/lit/v3/lit.min.js";import St from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";var Ee=class extends St{static properties={subvertical:{type:w},brand:{type:String},hideDeprecationMessage:{type:Boolean}};static styles=[St.styles,fr` 348 @css-placeholder-4tS6DM; 349 `];constructor(){super(),this.showDeprecationMessage=!0,this.hidden=!0}async connectedCallback(){super.connectedCallback(),this.updateDeprecationMessage()}updateDeprecationMessage(){let e=this.brand==="dba";this.showDeprecationMessage=e?typeof localStorage<"u"&&localStorage.getItem("hideDeprecationMessage")!=="true":!1,this.hidden=!this.showDeprecationMessage}handleShowDeprecationMessage(){localStorage.setItem("hideDeprecationMessage","true"),this.showDeprecationMessage=!0,this.hidden=!0}getDeprecationMessage(){if(this.subvertical==="boat")return $t`<strong>Bemærk:</strong> Bådpladser er midlertidigt ikke tilgængelige på DBA. Vi arbejder på at få dem tilbage 350 snarest.`}render(){let e=this.getDeprecationMessage();return this.showDeprecationMessage&&e?$t`<div class="s-bg-info-subtle mt-16 p-16" style="margin-bottom: 40px;"> 351 <div class="flex justify-between items-center gap-8"> 352 <div class="flex items-center gap-x-16 w-full"> 353 <w-icon name="Info" size="24px" locale="da" class="flex items-center s-icon-primary" aria-hidden="true"></w-icon> 354 <p class="mb-0">${e}</p> 355 </div> 356 <button class="bg-transparent" aria-label="Luk" @click=${this.handleShowDeprecationMessage}> 357 <w-icon name="Close" size="24px" locale="da" class="flex items-center s-icon-primary" aria-hidden="true"></w-icon> 358 </button> 359 </div> 360 </div>`:vr}};customElements.define("show-deprecation-notice",Ee);import wr from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";var Ce=class extends wr{static properties={trackingEventMap:{type:Object}};connectedCallback(){super.connectedCallback(),We(this.trackingEventMap.MO_pv01)}};customElements.define("mfp-track-pageview",Ce);import Ct from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as yr,html as k}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var kr=()=>({finn:{car:[{category:"Tools",header:n.t({id:"market-frontpage.price-advice",message:"Used car price tips"}),body:n.t({id:"market-frontpage.price-advice-description",message:"Get price estimates from similar cars sold on FINN"}),route:"/mobility/insights/price-valuation",trackingNumber:"MS_ev04",placement:1,type:"price_valuation",icon:"Money",iconBackgroun
360d:"s-bg-warning-subtle"},{category:"Tools",header:n.t({id:"market-frontpage.smidig-bilhandel",message:"Smooth car trade"}),body:n.t({id:"market-frontpage.smidig-bilhandel-description",message:"Safe and easy car trade with Smidig: payment, ownership transfer and contract."}),route:"/motor/artikler/aktuelt/smidig-bilhandel",trackingNumber:"MS_ev05",placement:2,type:"smidig_bil",icon:"Warranty",iconBackground:"s-bg-primary-subtle"},{category:"Tools",header:n.t({id:"market-frontpage.new-car-tests",message:"New car tests"}),body:n.t({id:"market-frontpage.new-car-tests-description",message:"We help you compare before you decide."}),route:"/bilguiden/tester-og-anmeldelser",trackingNumber:"MS_ev15",placement:3,type:"sales",icon:"Car",iconBackground:"s-bg-positive-subtle",hideOnSellTab:!0}],boat:[],mc:[],b2b:[],caravan:[]},blocket:{car:[{category:"Tools",header:n.t({id:"market-frontpage.price-advice",message:"Used car price tips"}),body:n.t({id:"market-frontpage.price-advice-description",message:"Get price estimates from similar cars sold on FINN"}),route:"/mobility/insights/price-valuation",trackingNumber:"MS_ev04",placement:1,type:"price_valuation",imageUrl:"/editorial-content/tools/price-blocket.png",icon:"CarIllustration",iconBackground:""},{category:"Tools",header:n.t({id:"market-frontpage.blocket-car-insurance",message:"7 days free insurance"}),body:n.t({id:"market-frontpage.blocket-car-insurance-description",message:"Protect yourself and your new car from the first mile. Pre-order 7 days of insurance at no cost."}),route:"https://www.blocket.se/fordon/forsakringar/bestall-trygghansa-bilforsakring",trackingNumber:"MS_ev01",placement:2,type:"contract",icon:"ContractIllustration",iconBackground:"",hideOnSellTab:!0}],boat:[],mc:[],b2b:[],caravan:[]},dba:{car:[{category:"Tools",header:n.t({id:"market-frontpage.car-worth-title",message:"What is my car worth?"}),body:n.t({id:"market-frontpage.car-worth-description",message:"Find out what your car is worth on our sister site, Bilbasen. Enter your registration number and get a guide price \u2013 based on thousands of current transactions."}),route:"https://www.bilbasen.dk/bilvurdering",trackingNumber:"MS_ev07",placement:1,type:"price_valuation",icon:"Calculator",iconBackground:"s-bg-warning-subtle"}],boat:[],mc:[],b2b:[],caravan:[]}}),Et=(r,e,t)=>{let o=kr()[r]?.[e]||[];return t==="sell"?o.filter(a=>!a.hideOnSellTab):o};var Te=class extends Ct{static properties={baseurl:{attribute:!0,type:String},subVertical:{attribute:!0,type:w},trackingEventMap:{type:Object},brand:{attribute:!0,type:String},tab:{attribute:!0,type:String},carIllustrationUrl:{attribute:!0,type:String},contractIllustrationUrl:{attribute:!0,type:String}};static styles=[Ct.styles,yr` 361 @css-placeholder-zZzYmu; 362 363 .description-container { 364 grid-template-rows: subgrid; 365 grid-row: span 3; 366 } 367 `];isCardWithIcon(e){return"icon"in e}cardWithIcon(e,t=!1){return k` 368 <div class="flex-1 min-h-full ${j.base} ${j.shadow} ${j.flatUnselected}"> 369 <div class="${j.outline} ${j.outlineUnselected}"></div> 370 ${t?k` 371 <!-- Mobile layout: compact --> 372 <div class="p-16 grid gap-24 relative description-container md:hidden"> 373 ${e.icon} 374 <div> 375 <h4 class="t4 flex"> 376 <a href="${e.href}" class="s-text-primary flex-1" @click="${()=>e.track(e.href)}"> 377 <span class="${I.buttonOrLinkStretch}" aria-hidden="true"></span> 378 ${e.title} 379 </a> 380 <w-icon name="ChevronRight" size="16px" class="flex items-center" locale="nb"></w-icon> 381 </h4> 382 <p class="text-body">${e.description}</p> 383 </div> 384 </div> 385 <!-- Desktop layout: extended --> 386 <div class="p-16 relative hidden md:flex md:items-center h-full"> 387 <div class="flex gap-24 items-center flex-1"> 388 ${e.icon} 389 <div class="flex-1"> 390 <h4 class="t4 flex mb-8"> 391 <a href="${e.href}" class="s-text-primary flex-1" @click="${()=>e.track(e.href)}">
392 <span class="${I.buttonOrLinkStretch}" aria-hidden="true"></span> 393 ${e.title} 394 </a> 395 </h4> 396 <p class="text-body">${e.description}</p> 397 </div> 398 <div class="items-center self-center"> 399 <w-icon name="ChevronRight" size="16px" locale="sv"></w-icon> 400 </div> 401 </div> 402 </div> 403 `:k` 404 <div class="p-16 grid gap-24 relative description-container"> 405 ${e.icon} 406 <div> 407 <h4 class="t4 flex"> 408 <a href="${e.href}" class="s-text-primary flex-1" @click="${()=>e.track(e.href)}"> 409 <span class="${I.buttonOrLinkStretch}" aria-hidden="true"></span> 410 ${e.title} 411 </a> 412 <w-icon name="ChevronRight" size="16px" class="flex items-center" locale="sv"></w-icon> 413 </h4> 414 <p class="text-body">${e.description}</p> 415 </div> 416 </div> 417 `} 418 </div> 419 `}renderCards(e){let t=e.length<=2;return k` 420 <div class="flex flex-col md:flex-row gap-16"> 421 ${e.map(o=>this.isCardWithIcon(o)?this.cardWithIcon(o,t):"")} 422 </div> 423 `}renderButton(e){return k` 424 <w-card> 425 <a 426 href="${e.href}" 427 aria-label="${e.title}" 428 class="${I.buttonOrLinkStretch}" 429 @click="${()=>e.track(e.href)}" 430 ></a> 431 <w-button variant="link" class="grid s-bg place-items-center p-16">${e.title}</w-button> 432 </w-card> 433 `}renderButtons(e){let t=e.length;return k` 434 <div class="flex flex-col md:grid md:grid-cols-${t} gap-16 mb-56">${e.map(o=>this.renderButton(o))}</div> 435 `}connectedCallback(){f(),super.connectedCallback()}render(){let e=n.t({id:"market-frontpage.useful-tools",message:"Useful tools"}),o=Et(this.brand,this.subVertical,this.tab==="sell"?"sell":"allCars").map(a=>{let s=a.icon==="CarIllustration"?k`<img src="${this.carIllustrationUrl}" alt="Blocket" />`:a.icon==="ContractIllustration"?k`<img src="${this.contractIllustrationUrl}" alt="Blocket" />`:k`<w-icon 436 name="${a.icon}" 437 size="32px" 438 class="block h-32" 439 locale="${this.brand==="dba"?"da":this.brand==="blocket"?"sv":"nb"}" 440 ></w-icon>`,i=a.iconBackground==="s-bg-primary-subtle"?"s-bg-primary-subtle":a.iconBackground;return{icon:k`<div class="h-[100] w-[100] rounded-full grid place-items-center ${i}">${s}</div>`,href:a.route,title:a.header,description:a.body?a.body:"",track:l=>u(this.trackingEventMap[a.trackingNumber],l)}});return k` 441 <div class="flex flex-col gap-16"> 442 <h3 class="t3 mb-0">${e}</h3> 443 ${this.renderCards(o)} 444 </div> 445 `}};customElements.define("useful-tools",Te);import Tt from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as xr,html as $r}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var _e=class extends Tt{static properties={trackingEventMap:{type:Object},href:{attribute:!0,type:String},illustrationUrl:{attribute:!0,type:String}};static styles=[Tt.styles,xr` 446 @css-placeholder-A2BD48; 447 `];connectedCallback(){f(),super.connectedCallback(),He(this.trackingEventMap.MS_ev30
447)}render(){let e=n.t({id:"market-frontpage.price-advice",message:"Used car price tips"}),t=n.t({id:"market-frontpage.price-advice-description",message:"Get price estimates from similar cars sold on FINN"}),o=n.t({id:"market-frontpage.price-evaluation-banner.cta",message:"Go to valuation"});return $r` 448 <div 449 class="rounded-8 s-bg-negative-subtle py-[24px] px-[16px] md:px-[32px] flex flex-col md:flex-row md:items-center gap-16 md:gap-24" 450 > 451 <div class="flex items-start md:items-center gap-16 flex-1"> 452 <img src="${this.illustrationUrl}" alt="" class="w-[80] h-[80] md:w-[100] md:h-[100] flex-shrink-0" /> 453 <div class="flex flex-col gap-4"> 454 <h3 class="t3 mb-0">${e}</h3> 455 <p class="text-body mb-0">${t}</p> 456 </div> 457 </div> 458 <a 459 href="${this.href}" 460 class="block flex-shrink-0" 461 @click="${()=>u(this.trackingEventMap.MS_ev31,this.href)}" 462 > 463 <w-button variant="secondary" full-width>${o}</w-button> 464 </a> 465 </div> 466 `}};customElements.define("price-evaluation-banner",_e);import _t from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import{css as Sr,html as Me}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var Ae=class extends _t{static styles=[_t.styles,Sr` 467 :host { 468 display: block; 469 } 470 @css-placeholder-3Rbz8Z; 471 `];connectedCallback(){f(),super.connectedCallback()}#e(e){return Me` 472 <div class="h-48 w-48 rounded-full s-bg-subtle flex items-center justify-center"> 473 <w-icon name="${e}" size="24px" class="block h-24 w-24" locale="nb"></w-icon> 474 </div> 475 `}render(){let e=n.t({id:"sell-steps.eyebrow",message:"How it works"}),t=n.t({id:"sell-steps.title",message:"3 simple steps"}),o=[{icon:this.#e("Car"),title:n.t({id:"sell-steps.step-1.title",message:"1. Register the car"}),description:n.t({id:"sell-steps.step-1.description",message:"Enter the registration number, mileage and answer a few questions."})},{icon:this.#e("Warranty"),title:n.t({id:"sell-steps.step-2.title",message:"2. Our recommendation"}),description:n.t({id:"sell-steps.step-2.description",message:"Based on your information, we give you a recommendation on the most suitable way to sell your car."})},{icon:this.#e("ProductHighlightListing"),title:n.t({id:"sell-steps.step-3.title",message:"3. Choose option"}),description:n.t({id:"sell-steps.step-3.description",message:"Sell privately, with Smidig bilhandel or with Nettbil."})}];return Me` 476 <section aria-labelledby="sell-steps-title" class="flex flex-col gap-24"> 477 <div class="flex flex-col gap-4"> 478 <p class="text-body s-text-subtle mb-0">${e}</p> 479 <h2 id="sell-steps-title" class="t2 mb-0">${t}</h2> 480 </div> 481 <ol class="grid gap-24 md:grid-cols-3 list-none p-0 m-0"> 482 ${o.map(a=>Me` 483 <li class="flex flex-col gap-12"> 484 ${a.icon} 485 <h3 class="t4 mb-0">${a.title}</h3> 486 <p class="text-body mb-0">${a.description}</p> 487 </li> 488 `)} 489 </ol> 490 </section> 491 `}};customElements.define("sell-steps",Ae);import Mt from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import"https://assets.finn.no/pkg/@warp-ds/elements/v2/packages/card/index.js";import{css as Er,html as Cr}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var Ne=class extends Mt{static properties={class:{attribute:!0,type:String},last:{attribute:!0,type:Boolean}};static styles=[Mt.styles,Er` 492 @css-placeholder-8e-c4w; 493 `];constructor(){super()}render(){return Cr`<div class="${this.class} w-screen relative" style="left: 50%; transform: translateX(-50%); max-width: none;"> 494 <div class="container"> 495 <slot></slot> 496 </div> 497 </div> 498 </div>`}};customElements.define("mfp-with-fullwidth-bg",Ne);import"https://assets.finn.no/pkg/@warp-ds/elements/v2/packages/box/index.js";import{html as Dr,LitElement as Or}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var K=globalThis,G=K.ShadowRoot&&(K.ShadyCSS===void 0||K.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Nt=Symbol(),At=new WeakMap,q=class{constructor(e,t,o){if(this._$cssResult$=!0,o!==Nt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(G&&e===void 0){let o=t!==void 0&&t.length===1;o&&(e=At.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&At.set(t,e))}return e}toString(){return this.cssText}},Bt=r=>new q(typeof r=="string"?r:r+"",void 0,Nt);var Lt=(r,e)=>{if(G)r.adoptedStyleSheets=e.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(let t of e){let o=document.createElement("style"),a=K.litNonce;a!==void 0&&o.setAttribute("nonce",a),o.textContent=t.cssText,r.appendChild(o)}},Be=G?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(let o of e.cssRules)t+=o.cssText;return Bt(t)})(r):r;var{is:Tr,defineProperty:_r,getOwnPropertyDescriptor:Mr,getOwnPropertyNames:Ar,getOwnPropertySymbols:Nr,getPrototypeOf:Br}=Object,Q=globalThis,jt=Q.trustedTypes,Lr=jt?jt.emptyScript:"",jr=Q.reactiveElementPolyfillSupport,R=(r,e)=>r,z={toAttribute(r,e){switch(e){case Boolean:r=r?Lr:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,e){let t=r;switch(e){case Boolean:t=r!==null;break;case Number:t=r===null?null:Number(r);break;case Object:case Array:try{t=JSON.parse(r)}catch{t=null}}return t}},Y=(r,e)=>!Tr(r,e),It={attribute:!0,type:String,converter:z,reflect:!1,useDefault:!1,hasChanged:Y};Symbol.metadata??=Symbol("metadata"),Q.litPropertyMetadata??=new WeakMap;var M=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=It){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let o=Symbol(),a=this.getPropertyDescriptor(e,o,t);a!==void 0&&_r(this.prototype,e,a)}}static getPropertyDescriptor(e,t,o){let{get:a,set:s}=Mr(this.prototype,e)??{get(){return this[t]},set(i){this[t]=i}};return{get:a,set(i){let l=a?.call(this);s?.call(this,i),this.requestUpdate(e,l,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??It}static _$Ei(){if(this.hasOwnProperty(R("elementProperties")))return;let e=Br(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(R("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(R("properties"))){let t=this.properties,o=[...Ar(t),...Nr(t)];for(let a of o)this.createProperty(a,t[a])}let e=this[Symbol.metadata];if(e!==null){let t=litPropertyMetadata.get(e);
498if(t!==void 0)for(let[o,a]of t)this.elementProperties.set(o,a)}this._$Eh=new Map;for(let[t,o]of this.elementProperties){let a=this._$Eu(t,o);a!==void 0&&this._$Eh.set(a,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let o=new Set(e.flat(1/0).reverse());for(let a of o)t.unshift(Be(a))}else e!==void 0&&t.push(Be(e));return t}static _$Eu(e,t){let o=t.attribute;return o===!1?void 0:typeof o=="string"?o:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,t=this.constructor.elementProperties;for(let o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Lt(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$ET(e,t){let o=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,o);if(a!==void 0&&o.reflect===!0){let s=(o.converter?.toAttribute!==void 0?o.converter:z).toAttribute(t,o.type);this._$Em=e,s==null?this.removeAttribute(a):this.setAttribute(a,s),this._$Em=null}}_$AK(e,t){let o=this.constructor,a=o._$Eh.get(e);if(a!==void 0&&this._$Em!==a){let s=o.getPropertyOptions(a),i=typeof s.converter=="function"?{fromAttribute:s.converter}:s.converter?.fromAttribute!==void 0?s.converter:z;this._$Em=a;let l=i.fromAttribute(t,s.type);this[a]=l??this._$Ej?.get(a)??l,this._$Em=null}}requestUpdate(e,t,o,a=!1,s){if(e!==void 0){let i=this.constructor;if(a===!1&&(s=this[e]),o??=i.getPropertyOptions(e),!((o.hasChanged??Y)(s,t)||o.useDefault&&o.reflect&&s===this._$Ej?.get(e)&&!this.hasAttribute(i._$Eu(e,o))))return;this.C(e,t,o)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,t,{useDefault:o,reflect:a,wrapped:s},i){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,i??t??this[e]),s!==!0||i!==void 0)||(this._$AL.has(e)||(this.hasUpdated||o||(t=void 0),this._$AL.set(e,t)),a===!0&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[a,s]of this._$Ep)this[a]=s;this._$Ep=void 0}let o=this.constructor.elementProperties;if(o.size>0)for(let[a,s]of o){let{wrapped:i}=s,l=this[a];i!==!0||this._$AL.has(a)||l===void 0||this.C(a,void 0,s,l)}}let e=!1,t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(o=>o.hostUpdate?.()),this.update(t)):this._$EM()}catch(o){throw e=!1,this._$EM(),o}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(e){}firstUpdated(e){}};M.elementStyles=[],M.shadowRootOptions={mode:"open"},M[R("elementProperties")]=new Map,M[R("finalized")]=new Map,jr?.({ReactiveElement:M}),(Q.reactiveElementVersions??=[]).push("2.1.2");var Ir={attribute:!0,type:String,converter:z,reflect:!1,hasChanged:Y},Rr=(r=Ir,e,t)=>{let{kind:o,metadata:a}=t,s=globalThis.litPropertyMetadata.get(a);if(s===void 0&&globalThis.litPropertyMetadata.set(a,s=new Map),o==="setter"&&((r=Object.create(r)).wrapped=!0),s.set(t.name,r),o==="accessor"){let{name:i}=t;return{set(l){let g=e.get.call(this);e.set.call(this,l),this.requestUpdate(i,g,r,!0,l)},init(l){return l!==void 0&&this.C(i,void 0,r,l),l}}}if(o==="setter"){let{name:i}=t;return function(l){let g=this[i];e.call(this,l),this.requestUpdate(i,g,r,!0,l)}}throw Error("Unsupported decorator location: "+o)};function y(r){return(e,t)=>typeof t=="object"?Rr(r,e,t):((o,a,s)=>{let i=a.hasOwnProperty(s);return a.constructor.createProperty(s,o),i?Object.getOwnPropertyDescriptor(a,s):void 0})(r,e,t)}function Le(r){return y({...r,state:!0,attribute:!1})}import{classMap as Fr}from"https://assets.finn.no/npm/lit/v3/lit.min.js";import{css as Ur}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var zr=Object.defineProperty,Pr=Object.getOwnPropertyDescriptor,P=(r,e,t,o)=>{for(var a=o>1?void 0:o?Pr(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(a=(o?i(e,t,a):i(a))||a);return o&&a&&zr(e,t,a),a},Vr=Ur` 499 :host { 500 display: inline-block; 501 } 502 .w-icon { 503 --_w-icon-size: var(--w-icon-size, 24px); 504 height: var(--_w-icon-size); 505 width: var(--_w-icon-size); 506 display: flex; 507 visibility: hidden; 508 } 509 .w-icon--ready { 510 visibility: visible; 511 } 512 .w-icon svg { 513 pointer-events: none; 514 height: var(--_w-icon-size); 515 width: var(--_w-icon-size); 516 } 517 .w-icon--s { 518 --w-icon-size: 16px; 519 } 520 .w-icon--m { 521 --w-icon-size: 24px; 522 } 523 .w-icon--l { 524 --w-icon-size: 32px; 525 } 526`,X=new Map,je=new Map;function Wr(r,e){return`https://assets.finn.no/pkg/eikons/~1/${e}/${r}.svg`}function Hr(r){let e=new DOMParser().parseFromString(r,"image/svg+xml");return e.querySelector("parsererror")?null:e.querySelector("svg")}function Kr(r){if(X.has(r))return Promise.resolve(X.get(r)??null);let e=je.get(r);if(e!==void 0)return e;let t=fetch(r).then(o=>{if(!o.ok)throw new Error(`HTTP ${o.status}`);return o.text()}).then(o=>{let a=Hr(o);return X.set(r,a),a}).catch(()=>(X.set(r,null),null)).finally(()=>{je.delete(r)});return je.set(r,t),t}var A=class extends Or{constructor(){super(...arguments),this.locale=document.documentElement.lang||"en",this.svg=null,this._ready=!1,this._loadToken=null}updated(r){(r.has("name")||r.has("locale"))&&this.loadIcon()}async loadIcon(){if(!this.name){this.svg=null,this._ready=!1;return}let r=Wr(this.name,this.locale),e=Symbol();this._loadToken=e,this._ready=!1;let t=await Kr(r);this._loadToken===e&&(t?(this.svg=t.cloneNode(!0),this._ready=!0):this.svg=null)}render(){let r=this.size||"medium",e=this.name||"",t={"w-icon":!0,"w-icon--ready":this._ready,"w-icon--s":r==="small","w-icon--m":r==="medium","w-icon--l":r==="large"},o=typeof r=="string"&&r.endsWith("px")?`--w-icon-size: ${r};`:"";return Dr`<div 527 class="${Fr(t)}" 528 style="${o}" 529 part="w-${e.toLowerCase()}" 530 > 531 ${this.svg} 532 </div>`}};A.styles=[Vr],P([y({type:String,reflect:!0})],A.prototype,"name",2),P([y({type:String,reflect:!0})],A.prototype,"size",2),P([y({type:String,reflect:!0,useDefault:!0})],A.prototype,"locale",2),P([Le()],A.prototype,"svg",2),P([Le()],A.prototype,"_ready",2);customElements.get("w-icon")||customElements.define("w-icon",A);import Pt from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import"https://assets.finn.no/pkg/@warp-ds/elements/v2/packages/card/index.js";import{html as Qr,LitElement as Yr}from"https://assets.finn.no/npm/lit/v3/lit.min.js";import{css as Jr}from"https://assets.finn.no/npm/lit/v3/lit.min.js";import{unsafeCSS as Xr}from"https://assets.finn.no/npm/lit/v3/lit.min.js";import{css as eo}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var qr=Object.defineProperty,Gr=Object.getOwnPropertyDescriptor,Rt=(r,e,t,o)=>{for(var a=o>1?void 0:o?Gr(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(a=(o?i(e,t,a):i(a))||a);return o&&a&&qr(e,t,a),a},Zr=Jr` 533 *, 534 :before, 535 :after { 536 box-sizing: border-box; 537 border-style: solid; 538 border-width: 0; 539 border-color: var(--w-s-color-border); 540 } 541 html { 542 font-size: 62.5%; 543 } 544 body { 545 background-color: var(--w-s-color-background); 546 min-height: 100%; 547 margin: 0;
548 overflow-y: scroll; 549 } 550 body, 551 :host { 552 -webkit-text-size-adjust: 100%; 553 tab-size: 4; 554 -webkit-tap-highlight-color: transparent; 555 font-family: var(--w-font-family); 556 font-size: var(--w-font-size-m); 557 line-height: var(--w-line-height-m); 558 color: var(--w-s-color-text); 559 } 560 hr { 561 color: inherit; 562 border-top-width: 1px; 563 height: 0; 564 } 565 abbr:where([title]) { 566 -webkit-text-decoration: underline dotted; 567 text-decoration: underline dotted; 568 } 569 h1, 570 h2, 571 h3, 572 h4, 573 h5, 574 h6 { 575 font-size: inherit; 576 font-weight: 700; 577 } 578 a { 579 cursor: pointer; 580 color: var(--w-s-color-text-link); 581 text-decoration: none; 582 } 583 a:hover, 584 a:focus, 585 a:active { 586 text-decoration: underline; 587 } 588 a:focus-visible { 589 outline: 2px solid var(--w-s-color-border-focus); 590 outline-offset: 1px; 591 } 592 b, 593 strong { 594 font-weight: 700; 595 } 596 code, 597 kbd, 598 samp, 599 pre { 600 font-family: 601 ui-monospace, 602 SFMono-Regular, 603 Menlo, 604 Monaco, 605 Consolas, 606 Liberation Mono, 607 Courier New, 608 monospace; 609 font-size: 1em; 610 } 611 sub, 612 sup { 613 vertical-align: baseline; 614 font-size: 75%; 615 line-height: 0; 616 position: relative; 617 } 618 sub { 619 bottom: -0.25em; 620 } 621 sup { 622 top: -0.5em; 623 } 624 table { 625 text-indent: 0; 626 border-color: inherit; 627 border-collapse: collapse; 628 } 629 button, 630 input, 631 optgroup, 632 select, 633 textarea { 634 font-family: inherit; 635 font-size: 100%; 636 font-weight: inherit; 637 line-height: inherit; 638 color: inherit; 639 margin: 0; 640 padding: 0; 641 } 642 button, 643 select { 644 text-transform: none; 645 } 646 button, 647 [type="button"], 648 [type="reset"], 649 [type="submit"] { 650 -webkit-appearance: button; 651 } 652 :-moz-focusring { 653 outline: auto; 654 } 655 :-moz-ui-invalid { 656 box-shadow: none; 657 } 658 progress { 659 vertical-align: baseline; 660 } 661 ::-webkit-inner-spin-button { 662 height: auto; 663 } 664 ::-webkit-outer-spin-button { 665 height: auto; 666 } 667 [type="search"] { 668 -webkit-appearance: textfield; 669 outline-offset: -2px; 670 } 671 ::-webkit-search-decoration { 672 -webkit-appearance: none; 673 } 674 ::-webkit-file-upload-button { 675 -webkit-appearance: button; 676 font: inherit; 677 } 678 summary { 679 display: list-item; 680 } 681 blockquote, 682 dl, 683 dd, 684 h1, 685 h2, 686 h3, 687 h4, 688 h5, 689 h6, 690 hr, 691 figure, 692 p, 693 pre { 694 margin: 0; 695 } 696 fieldset { 697 margin: 0; 698 padding: 0; 699 } 700 legend { 701 padding: 0; 702 } 703 ol, 704 ul, 705 menu { 706 margin: 0; 707 padding: 0; 708 list-style: none; 709 } 710 textarea { 711 resize: vertical; 712 } 713 input::placeholder, 714 textarea::placeholder { 715 opacity: 1; 716 color: var(--w-s-color-text-placeholder); 717 } 718 button, 719 [role="button"] { 720 cursor: pointer; 721 } 722 :disabled { 723 cursor: default; 724 } 725 img, 726 svg, 727 video, 728 canvas, 729 audio, 730 iframe, 731 embed, 732 object { 733 vertical-align: middle; 734 display: block; 735 } 736 img, 737 video { 738 max-width: 100%; 739 height: auto; 740 } 741 h1 { 742 font-size: var(--w-font-size-xxl); 743 line-height: var(--w-line-height-xxl); 744 } 745 h2 { 746 font-size: var(--w-font-size-xl); 747 line-height: var(--w-line-height-xl); 748 } 749 h3 { 750 font-size: var(--w-font-size-l); 751 line-height: var(--w-line-height-l); 752 } 753 h4 { 754 font-size: var(--w-font-size-m); 755 line-height: var(--w-line-height-m); 756 } 757 h5 { 758 font-size: var(--w-font-size-s); 759 line-height: var(--w-line-height-s); 760 } 761 dt, 762 dd { 763 margin: 0 16px; 764 } 765 h1, 766 h2, 767 h3, 768 h4, 769 h5, 770 ul, 771 ol, 772 dl, 773 p, 774 blockquote { 775 margin: 0 0 8px; 776 } 777 [hidden] { 778 display: none !important; 779 } 780 [tabindex="-1"]:focus:not(:focus-visible) { 781 outline: none; 782 } 783 legend { 784 float: left; 785 width: 100%; 786 margin: 0; 787 padding: 0; 788 display: table; 789 } 790 legend + * { 791 clear: both; 792 } 793 fieldset { 794 border: 0; 795 min-width: 0; 796 margin: 0; 797 padding: 0.01em 0 0; 798 } 799 body:not(:-moz-handler-blocked) fieldset { 800 display: table-cell; 801 } 802 svg { 803 pointer-events: none; 804 } 805`,xs=Xr(`*, :before, :after { 806 --w-rotate: 0; 807 --w-rotate-x: 0; 808 --w-rotate-y: 0; 809 --w-rotate-z: 0; 810 --w-scale-x: 1; 811 --w-scale-y: 1; 812 --w-scale-z: 1; 813 --w-skew-x: 0; 814 --w-skew-y: 0; 815 --w-translate-x: 0; 816 --w-translate-y: 0; 817 --w-translate-z: 0 818 } 819 820 .h4, .t4 { 821 font-weight: 700; 822 font-size: var(--w-font-size-m); 823 line-height: var(--w-line-height-m) 824 } 825 826 .t3 { 827 font-weight: 700; 828 font-size: var(--w-font-size-l); 829 line-height: var(--w-line-height-l) 830 } 831 832 @media (min-width: 480px) { 833 .sm\\:h3 { 834 font-weight: 700; 835 font-size: var(--w-font-size-l); 836 line-height: var(--w-line-height-l) 837 } 838 } 839 840 .text-center { 841 text-align: center 842 } 843 844 .before\\:text-center:before { 845 text-align: center 846 } 847 848 .text-left { 849 text-align: left 850 } 851 852 .text-right { 853 text-align: right 854 } 855 856 .align-middle { 857 vertical-align: middle 858 } 859 860 .animate-inprogress { 861 background-image: linear-gradient(135deg, rgba(0, 0, 0, .05) 25%, transparent 0, transparent 50%, rgba(0, 0, 0, .05) 0, rgba(0, 0, 0, .05) 75%, transparent 0, transparent) !important; 862 background-size: 30px 30px; 863 animation: animate-inprogress 3s linear infinite 864 } 865 866 @keyframes animate-inprogress { 867 0% { 868 background-position: 0 0 869 } 870 to { 871 background-position: 60px 0 872 } 873 } 874 875 .\\[--w-modal-max-height\\:80\\%\\] { 876 --w-modal-max-height: 80% 877 } 878 879 .\\[--w-modal-width\\:640px\\] { 880 --w-modal-width: 640px 881 } 882 883 .focus\\:\\[--w-outline-offset\\:-2px\\]:focus { 884 --w-outline-offset: -2px 885 } 886 887 .backdrop-blur { 888 -webkit-backdrop-filter: blur(4px); 889 backdrop-filter: blur(4px) 890 } 891 892 .peer:checked ~ .peer-checked\\:before\\:bg-center:before { 893 background-position: center 894 } 895 896 .hover\\:bg-clip-padding:hover { 897 -webkit-background-clip: padding-box; 898 background-clip: padding-box 899 } 900 901 .bg-transparent, .group\\/steph:first-child .group-first\\/steph\\:bg-transparent, .group\\/steph:last-child .group-last\\/steph\\:bg-transparent { 902 background-color: transparent 903 } 904 905 .bg-\\[--w-black\\/25\\] { 906 background-color: rgba(var(--w-rgb-black), .25) 907 } 908 909 .bg-\\[--w-black\\/70\\], .bg-\\[var\\(--w-black\\)\\/70\\] { 910 background-color: rgba(var(--w-rgb-black), .7) 911 } 912 913 .bg-\\[--w-color-badge-info-background\\] { 914 background-color: var(--w-color-badge-info-background) 915 } 916 917 .bg-\\[--w-color-badge-negative-background\\] { 918 background-color: var(--w-color-badge-negative-background) 919 } 920 921 .bg-\\[--w-color-badge-neutral-background\\] { 922 background-color: var(--w-color-badge-neutral-background) 923 } 924 925 .bg-\\[--w-color-badge-positive-background\\] { 926 background-color: var(--w-color-badge-positive-background) 927 } 928 929 .bg-\\[--w-color-badge-sponsored-background\\] { 930 background-color: var(--w-color-badge-sponsored-background) 931 } 932 933 .bg-\\[--w-color-badge-warning-background\\] { 934 background-color: var(--w-color-badge-warning-background) 935 } 936 937 .bg-\\[--w-color-button-primary-background\\] { 938 background-color: var(--w-color-button-primary-background) 939 } 940 941 .bg-\\[--w-color-buttongroup-utility-background-selected\\] { 942 background-color: var(--w-color-buttongroup-utility-background-selected) 943 } 944 945 .bg-\\[--w-color-callout-background\\] { 946 background-color: var(--w-color-callout-background) 947 } 948 949 .bg-\\[--w-color-pill-suggestion-background\\] { 950 background-color: var(--w-color-pill-suggestion-background) 951 } 952 953 .bg-\\[--w-color-switch-track-background\\] { 954 background-color: var(--w-color-switch-track-background) 955 } 956 957 .bg-\\[--w-s-color-surface-elevated-100\\] { 958 background-color: var(--w-s-color-surface-elevated-100) 959 } 960 961 .bg-\\[--w-s-color-surface-elevated-300\\] { 962 background-color: var(--w-s-color-surface-elevated-300) 963 } 964 965 .bg-\\[--w-s-icon-selected\\] { 966 background-color: var(--w-s-icon-selected) 967 } 968 969 .group:hover .group-hover\\:bg-\\[--w-color-switch-track-background-hover\\] { 970 background-color: var(--w-color-switch-track-background-hover) 971 } 972 973 .hover\\:bg-\\[--w-color-button-pill-background-hover\\]:hover { 974 background-color: var(--w-color-button-pill-background-hover) 975 } 976 977 .hover\\:bg-\\[--w-color-button-primary-background-hover\\]:hover { 978 background-color: var(--w-color-button-primary-background-hover) 979 } 980 981 .hover\\:bg-\\[--w-color-buttongroup-utility-background-hover\\]:hover { 982 background-color: var(--w-color-buttongroup-utility-background-hover) 983 } 984 985 .hover\\:bg-\\[--w-color-pill-suggestion-background-hover\\]:hover { 986 background-color: var(--w-color-pill-suggestion-background-hover) 987 } 988 989 .hover\\:bg-\\[--w-s-icon-subtle\\]:hover { 990 background-color: var(--w-s-icon-subtle) 991 } 992 993 .hover\\:bg-\\[var\\(--w-black\\)\\/85\\]:hover { 994 background-color: rgba(var(--w-rgb-black), .85) 995 } 996 997 .active\\:bg-\\[--w-color-button-pill-background-active\\]:active { 998 background-color: var(--w-color-button-pill-background-active) 999 } 1000 1001 .active\\:bg-\\[--w-color-button-primary-background-active\\]:active { 1002 background-color: var(--w-color-button-primary-background-active) 1003 } 1004 1005 .active\\:bg-\\[--w-color-buttongroup-utility-background-selected\\]:active { 1006 background-color: var(--w-color-buttongroup-utility-background-selected) 1007 } 1008 1009 .active\\:bg-\\[--w-color-pill-suggestion-background-active\\]:active { 1010 background-color: var(--w-color-pill-suggestion-background-active) 1011 } 1012 1013 .active\\:bg-\\[var\\(--w-black\\)\\]:active { 1014 background-color: var(--w-black) 1015 } 1016 1017 .peer:checked ~ .peer-checked\\:before\\:bg-\\[url\\(var\\(--w-icon-toggle-checked\\)\\)\\]:before { 1018 background-image: var(--w-icon-toggle-checked) 1019 } 1020 1021 .appearance-none { 1022 -moz-appearance: none; 1023 appearance: none; 1024 -webkit-appearance: none 1025 } 1026 1027 .will-change-height { 1028 will-change: height 1029 } 1030 1031 .border, .border-1 { 1032 border-width: 1px 1033 } 1034 1035 .border-b { 1036 border-bottom-width: 1px 1037 } 1038 1039 .before\\:border:before { 1040 border-width: 1px 1041 } 1042 1043 .border-0 { 1044 border-width: 0 1045 } 1046 1047 .border-2 { 1048 border-width: 2px 1049 } 1050 1051 .border-b-0 { 1052 border-bottom-width: 0 1053 } 1054 1055 .border-b-4 { 1056 border-bottom-width: 4px 1057 } 1058 1059 .border-l-4 { 1060 border-left-width: 4px 1061 } 1062 1063 .border-r-0, .group:not(:last-of-type) .group-not-last-of-type\\:border-r-0 { 1064 border-right-width: 0 1065 } 1066 1067 .peer:checked ~ .peer-checked\\:before\\:border-\\[6\\]:before { 1068 border-width: .6rem 1069 } 1070 1071 .border-transparent { 1072 border-color: transparent 1073 } 1074 1075 .border-\\[--w-color-buttongroup-utility-border\\] { 1076 border-color: var(--w-color-buttongroup-utility-border) 1077 } 1078 1079 .border-\\[--w-color-callout-border\\] { 1080 border-color: var(--w-color-callout-border) 1081 } 1082 1083 .border-\\[--w-s-color-background-inverted\\] { 1084 border-color: var(--w-s-color-background-inverted) 1085 } 1086 1087 .border-\\[--w-s-color-surface-elevated-300\\] { 1088 border-color: var(--w-s-color-surface-elevated-300) 1089 } 1090 1091 .active\\:border-\\[--w-color-buttongroup-utility-border-selected\\]:active { 1092 border-color: var(--w-color-buttongroup-utility-border-selected) 1093 } 1094 1095 .divide-x > * + * { 1096 --w-divide-x-reverse: 0; 1097 border-left-width: calc(1px * calc(1 - var(--w-divide-x-reverse))); 1098 border-right-width: calc(1px * var(--w-divide-x-reverse)) 1099 } 1100 1101 .divide-y > * + * { 1102 --w-divide-y-reverse: 0; 1103 border-top-width: calc(1px * calc(1 - var(--w-divide-y-reverse))); 1104 border-bottom-width: calc(1px * var(--w-divide-y-reverse)) 1105 } 1106 1107 .rounded-4 { 1108 border-radius: 4px 1109 } 1110 1111 .rounded-8 { 1112 border-radius: 8px 1113 } 1114 1115 .rounded-full { 1116 border-radius: 9999px 1117 } 1118 1119 .before\\:rounded-2:before { 1120 border-radius: 2px 1121 } 1122 1123 .before\\:rounded-full:before { 1124 border-radius: 9999px 1125 } 1126 1127 .rounded-b-0 { 1128 border-bottom-left-radius: 0; 1129 border-bottom-right-radius: 0 1130 } 1131 1132 .rounded-bl-0 { 1133 border-bottom-left-radius: 0 1134 } 1135 1136 .rounded-br-0 { 1137 border-bottom-right-radius: 0 1138 } 1139 1140 .rounded-l-0 { 1141 border-top-left-radius: 0; 1142 border-bottom-left-radius: 0 1143 } 1144 1145 .rounded-l-full { 1146 border-top-left-radius: 9999px; 1147 border-bottom-left-radius: 9999px 1148 } 1149 1150 .rounded-r-0 { 1151 border-top-right-radius: 0; 1152 border-bottom-right-radius: 0 1153 } 1154 1155 .rounded-r-full { 1156 border-top-right-radius: 9999px; 1157 border-bottom-right-radius: 9999px 1158 } 1159 1160 .rounded-tl-0 { 1161 border-top-left-radius: 0 1162 } 1163 1164 .rounded-tl-4 { 1165 border-top-left-radius: 4px 1166 } 1167 1168 .rounded-tr-0 { 1169 border-top-right-radius: 0 1170 } 1171
1172 .group:first-of-type .group-first-of-type\\:rounded-bl-8 { 1173 border-bottom-left-radius: 8px 1174 } 1175 1176 .group:first-of-type .group-first-of-type\\:rounded-tl-8 { 1177 border-top-left-radius: 8px 1178 } 1179 1180 .first\\:rounded-lb-4:first-child { 1181 border-bottom-left-radius: 4px 1182 } 1183 1184 .first\\:rounded-lt-4:first-child { 1185 border-top-left-radius: 4px 1186 } 1187 1188 .first\\:rounded-rt-4:first-child { 1189 border-top-right-radius: 4px 1190 } 1191 1192 .group:last-of-type .group-last-of-type\\:rounded-br-8 { 1193 border-bottom-right-radius: 8px 1194 } 1195 1196 .group:last-of-type .group-last-of-type\\:rounded-tr-8 { 1197 border-top-right-radius: 8px 1198 } 1199 1200 .last\\:rounded-lb-4:last-child { 1201 border-bottom-left-radius: 4px 1202 } 1203 1204 .last\\:rounded-rb-4:last-child { 1205 border-bottom-right-radius: 4px 1206 } 1207 1208 .last\\:rounded-rt-4:last-child { 1209 border-top-right-radius: 4px 1210 } 1211 1212 .caret-current { 1213 caret-color: currentColor 1214 } 1215 1216 .opacity-25 { 1217 opacity: 25% 1218 } 1219 1220 .block { 1221 display: block 1222 } 1223 1224 .before\\:block:before { 1225 display: block 1226 } 1227 1228 .inline-block { 1229 display: inline-block 1230 } 1231 1232 .inline { 1233 display: inline 1234 } 1235 1236 .flex, .open\\:flex[open] { 1237 display: flex 1238 } 1239 1240 .inline-flex { 1241 display: inline-flex 1242 } 1243 1244 .grid { 1245 display: grid 1246 } 1247 1248 .inline-grid { 1249 display: inline-grid 1250 } 1251 1252 .hidden, .group\\/stepv:last-child .group-last\\/stepv\\:hidden { 1253 display: none 1254 } 1255 1256 .before\\:hidden:before { 1257 display: none 1258 } 1259 1260 .hover\\:underline:hover { 1261 text-decoration-line: underline 1262 } 1263 1264 .focus\\:underline:focus { 1265 text-decoration-line: underline 1266 } 1267 1268 .focus-visible\\:underline:focus-visible { 1269 text-decoration-line: underline 1270 } 1271 1272 .active\\:underline:active { 1273 text-decoration-line: underline 1274 } 1275 1276 .hover\\:no-underline:hover { 1277 text-decoration: none 1278 } 1279 1280 .focus\\:no-underline:focus { 1281 text-decoration: none 1282 } 1283 1284 .active\\:no-underline:active { 1285 text-decoration: none 1286 } 1287 1288 .flex-1 { 1289 flex: 1 1 0% 1290 } 1291 1292 .shrink { 1293 flex-shrink: 1 1294 } 1295 1296 .shrink-0 { 1297 flex-shrink: 0 1298 } 1299 1300 .shrink-0\\! { 1301 flex-shrink: 0 !important 1302 } 1303 1304 .grow, .grow-1 { 1305 flex-grow: 1 1306 } 1307 1308 .basis-auto { 1309 flex-basis: auto 1310 } 1311 1312 .flex-col { 1313 flex-direction: column 1314 } 1315 1316 .focus-within\\:focusable:focus-within { 1317 outline: 2px solid var(--w-s-color-border-focus); 1318 outline-offset: var(--w-outline-offset, 1px) 1319 } 1320 1321 .focusable:focus, .focusable:focus-visible { 1322 outline: 2px solid var(--w-s-color-border-focus); 1323 outline-offset: var(--w-outline-offset, 1px) 1324 } 1325 1326 .focusable:not(:focus-visible) { 1327 outline: none 1328 } 1329 1330 .peer:focus ~ .peer-focus\\:focusable, .peer:focus-visible ~ .peer-focus\\:focusable { 1331 outline: 2px solid var(--w-s-color-border-focus); 1332 outline-offset: var(--w-outline-offset, 1px) 1333 } 1334 1335 .peer:not(:focus-visible) ~ .peer-focus\\:focusable { 1336 outline: none 1337 } 1338 1339 .focusable-inset { 1340 --w-outline-offset: -3px 1341 } 1342 1343 .gap-12 { 1344 gap: 1.2rem 1345 } 1346 1347 .gap-8 { 1348 gap: .8rem 1349 } 1350 1351 .gap-x-16 { 1352 column-gap: 1.6rem 1353 } 1354 1355 .gap-y-16 { 1356 row-gap: 1.6rem 1357 } 1358 1359 .row-span-2 {
1360 grid-row: span 2/span 2 1361 } 1362 1363 .col-span-2 { 1364 grid-column: span 2/span 2 1365 } 1366 1367 .col-span-3 { 1368 grid-column: span 3/span 3 1369 } 1370 1371 .row-start-1 { 1372 grid-row-start: 1 1373 } 1374 1375 .row-start-2 { 1376 grid-row-start: 2 1377 } 1378 1379 .col-start-2 { 1380 grid-column-start: 2 1381 } 1382 1383 .auto-rows-auto { 1384 grid-auto-rows: auto 1385 } 1386 1387 .grid-flow-col { 1388 grid-auto-flow: column 1389 } 1390 1391 .grid-rows-\\[20px_auto\\] { 1392 grid-template-rows:20px auto 1393 } 1394 1395 .grid-rows-\\[auto_20px\\] { 1396 grid-template-rows:auto 20px 1397 } 1398 1399 .grid-cols-\\[1fr_20px_1fr\\] { 1400 grid-template-columns:1fr 20px 1fr 1401 } 1402 1403 .grid-cols-\\[1fr_20px\\] { 1404 grid-template-columns:1fr 20px 1405 } 1406 1407 .grid-cols-\\[20px_1fr\\] { 1408 grid-template-columns:20px 1fr 1409 } 1410 1411 .grid-cols-\\[auto_1fr_auto\\] { 1412 grid-template-columns:auto 1fr auto 1413 } 1414 1415 .grid-cols-1 { 1416 grid-template-columns:repeat(1, minmax(0, 1fr)) 1417 } 1418 1419 .grid-cols-2 { 1420 grid-template-columns:repeat(2, minmax(0, 1fr)) 1421 } 1422 1423 .grid-cols-3 { 1424 grid-template-columns:repeat(3, minmax(0, 1fr)) 1425 } 1426 1427 .grid-cols-4 { 1428 grid-template-columns:repeat(4, minmax(0, 1fr)) 1429 } 1430 1431 .grid-cols-5 { 1432 grid-template-columns:repeat(5, minmax(0, 1fr)) 1433 } 1434 1435 .grid-cols-6 { 1436 grid-template-columns:repeat(6, minmax(0, 1fr)) 1437 } 1438 1439 .grid-cols-7 { 1440 grid-template-columns:repeat(7, minmax(0, 1fr)) 1441 } 1442 1443 .grid-cols-8 { 1444 grid-template-columns:repeat(8, minmax(0, 1fr)) 1445 } 1446 1447 .grid-cols-9 { 1448 grid-template-columns:repeat(9, minmax(0, 1fr)) 1449 } 1450 1451 .overflow-hidden { 1452 overflow: hidden 1453 } 1454 1455 .overflow-x-hidden { 1456 overflow-x: hidden 1457 } 1458 1459 .overflow-y-auto { 1460 overflow-y: auto 1461 } 1462 1463 .list-none { 1464 list-style-type: none 1465 } 1466 1467 .outline-\\[--w-s-color-border-negative\\]\\! { 1468 outline-color: var(--w-s-color-border-negative) !important 1469 } 1470 1471 .outline-none { 1472 outline: 2px solid transparent; 1473 outline-offset: 2px 1474 } 1475 1476 .focus\\:outline-none:focus { 1477 outline: 2px solid transparent; 1478 outline-offset: 2px 1479 } 1480 1481 .items-start { 1482 align-items: flex-start 1483 } 1484 1485 .items-end { 1486 align-items: flex-end 1487 } 1488 1489 .items-center { 1490 align-items: center 1491 } 1492 1493 .self-center { 1494 align-self: center 1495 } 1496 1497 .inset-0 { 1498 top: 0rem; 1499 right: 0rem; 1500 bottom: 0rem; 1501 left: 0rem 1502 } 1503 1504 .-bottom-0 { 1505 bottom: -0rem 1506 } 1507 1508 .bottom-0 { 1509 bottom: 0rem 1510 } 1511 1512 .bottom-10 { 1513 bottom: 1rem 1514 } 1515 1516 .bottom-16 { 1517 bottom: 1.6rem 1518 } 1519 1520 .left-0 { 1521 left: 0rem 1522 } 1523 1524 .left-4 { 1525 left: .4rem 1526 } 1527 1528 .right-0 { 1529 right: 0rem 1530 } 1531 1532 .right-8 { 1533 right: .8rem 1534 } 1535 1536 .top-\\[1\\.92rem\\] { 1537 top: 1.92rem 1538 } 1539 1540 .top-0 { 1541 top: 0rem 1542 } 1543 1544 .top-20 { 1545 top: 2rem 1546 } 1547 1548 .top-4 { 1549 top: .4rem 1550 } 1551 1552 .top-8 { 1553 top: .8rem 1554 } 1555 1556 .before\\:bottom-0:before { 1557 bottom: 0rem 1558 } 1559 1560 .before\\:left-0:before { 1561 left: 0rem 1562 } 1563 1564 .before\\:right-0:before { 1565 right: 0rem 1566 } 1567 1568 .before\\:top-2:before { 1569 top: .2rem 1570 } 1571 1572 .-bottom-\\[8px\\] { 1573 bottom: -8px 1574 } 1575 1576 .-left-\\[8px\\] { 1577 left: -8px 1578 } 1579 1580 .-right-\\[8px\\] { 1581 right: -8px 1582 } 1583 1584 .-top-\\[8px\\] { 1585 top: -8px 1586 } 1587 1588 .top-\\[19px\\] { 1589 top: 19px 1590 } 1591 1592 .top-\\[30\\%\\] { 1593 top: 30% 1594 } 1595 1596 .justify-end { 1597 justify-content: flex-end 1598 } 1599 1600 .justify-center { 1601 justify-content: center 1602 } 1603 1604 .justify-between { 1605 justify-content: space-between 1606 } 1607 1608 .justify-items-center { 1609 justify-items: center 1610 } 1611 1612 .justify-self-start { 1613 justify-self: start 1614 } 1615 1616 .justify-self-end { 1617 justify-self: end 1618 } 1619 1620 .justify-self-center { 1621 justify-self: center 1622 } 1623 1624 .absolute { 1625 position: absolute 1626 } 1627 1628 .fixed { 1629 position: fixed 1630 } 1631 1632 .relative { 1633 position: relative 1634 } 1635 1636 .open\\:fixed[open] { 1637 position: fixed 1638 } 1639 1640 .before\\:absolute:before { 1641 position: absolute 1642 } 1643 1644 .z-10, .peer:checked ~ .peer-checked\\:z-10 { 1645 z-index: 10 1646 } 1647 1648 .z-30 { 1649 z-index: 30 1650 } 1651 1652 .z-50 { 1653 z-index: 50 1654 } 1655 1656 .hover\\:z-30:hover { 1657 z-index: 30 1658 } 1659 1660 .\\!s-bg-selected { 1661 background-color: var(--w-s-color-background-selected) !important 1662 } 1663 1664 .s-bg { 1665 background-color: var(--w-s-color-background) 1666 } 1667 1668 .s-bg-disabled { 1669 background-color: var(--w-s-color-background-disabled) 1670 } 1671 1672 .s-bg-disabled-subtle { 1673 background-color: var(--w-s-color-background-disabled-subtle) 1674 } 1675 1676 .s-bg-info-subtle { 1677 background-color: var(--w-s-color-background-info-subtle) 1678 } 1679 1680 .s-bg-inverted { 1681 background-color: var(--w-s-color-background-inverted) 1682 } 1683 1684 .s-bg-negative { 1685 background-color: var(--w-s-color-background-negative) 1686 } 1687 1688 .s-bg-negative-subtle { 1689 background-color: var(--w-s-color-background-negative-subtle) 1690 } 1691 1692 .s-bg-positive-subtle { 1693 background-color: var(--w-s-color-background-positive-subtle) 1694 } 1695 1696 .s-bg-primary, .peer:checked ~ .peer-checked\\:s-bg-primary { 1697 background-color: var(--w-s-color-background-primary) 1698 } 1699 1700 .s-bg-selected { 1701 background-color: var(--w-s-color-background-selected) 1702 } 1703 1704 .s-bg-subtle { 1705 background-color: var(--w-s-color-background-subtle) 1706 } 1707 1708 .s-bg-warning-subtle { 1709 background-color: var(--w-s-color-background-warning-subtle) 1710 } 1711 1712 .peer:checked:hover ~ .peer-checked\\:peer-hover\\:before\\:s-bg-negative-hover:before { 1713 background-color: var(--w-s-color-background-negative-hover) 1714 } 1715 1716 .peer:checked:hover ~ .peer-checked\\:peer-hover\\:before\\:s-bg-primary-hover:before { 1717 background-color: var(--w-s-color-background-primary-hover) 1718 } 1719 1720 .peer:checked ~ .peer-checked\\:before\\:s-bg-disabled:before { 1721 background-color: var(--w-s-color-background-disabled) 1722 } 1723 1724 .peer:checked ~ .peer-checked\\:before\\:s-bg-negative:before { 1725 background-color: var(--w-s-color-background-negative) 1726 } 1727 1728 .peer:checked ~ .peer-checked\\:before\\:s-bg-primary:before { 1729 background-color: var(--w-s-color-background-primary) 1730 } 1731 1732 .peer:indeterminate ~ .peer-indeterminate\\:before\\:s-bg-disabled:before { 1733 background-color: var(--w-s-color-background-disabled) 1734 } 1735 1736 .peer:indeterminate ~ .peer-indeterminate\\:before\\:s-bg-negative:before { 1737 background-color: var(--w-s-color-background-negative) 1738 } 1739 1740 .peer:indeterminate ~ .peer-indeterminate\\:before\\:s-bg-primary:before { 1741 background-color: var(--w-s-color-background-primary) 1742 } 1743 1744 .peer:indeterminate ~ .peer-indeterminate\\:hover\\:before\\:s-bg-negative-hover:hover:before { 1745 background-color: var(--w-s-color-background-negative-hover) 1746 } 1747 1748 .peer:indeterminate ~ .peer-indeterminate\\:hover\\:before\\:s-bg-primary-hover:hover:before { 1749 background-color: var(--w-s-color-background-primary-hover) 1750 } 1751 1752 .\\!hover\\:s-bg-selected-hover:hover { 1753 background-color: var(--w-s-color-background-selected-hover) !important 1754 } 1755 1756 .group:hover .group-hover\\:s-bg-primary-hover { 1757 background-color: var(--w-s-color-background-primary-hover) 1758 } 1759 1760 .hover\\:before\\:s-bg-hover:hover:before { 1761 background-color: var(--w-s-color-background-hover) 1762 } 1763 1764 .hover\\:before\\:s-bg-negative-subtle-hover:hover:before { 1765 background-color: var(--w-s-color-background-negative-subtle-hover) 1766 } 1767 1768 .hover\\:s-bg-hover:hover { 1769 background-color: var(--w-s-color-background-hover) 1770 } 1771 1772 .hover\\:s-bg-negative-hover:hover { 1773 background-color: var(--w-s-color-background-negative-hover) 1774 } 1775 1776 .hover\\:s-bg-negative-subtle-hover:hover { 1777 background-color: var(--w-s-color-background-negative-subtle-hover) 1778 } 1779 1780 .hover\\:s-bg-primary-hover:hover { 1781 background-color: var(--w-s-color-background-primary-hover) 1782 } 1783 1784 .hover\\:s-bg-selected-hover:hover { 1785 background-color: var(--w-s-color-background-selected-hover) 1786 } 1787 1788 .peer:hover:not(:checked) ~ .peer-hover\\:peer-not-checked\\:s-bg-hover { 1789 background-color: var(--w-s-color-background-hover) 1790 } 1791 1792 .peer:hover ~ .peer-hover\\:before\\:s-bg-hover:before { 1793 background-color: var(--w-s-color-background-hover) 1794 } 1795 1796 .peer:hover ~ .peer-hover\\:before\\:s-bg-negative-subtle:before { 1797 background-color: var(--w-s-color-background-negative-subtle) 1798 } 1799 1800 .focus\\:s-bg-primary-hover:focus { 1801 background-color: var(--w-s-color-background-primary-hover) 1802 } 1803 1804 .\\!active\\:s-bg-selected-active:active { 1805 background-color: var(--w-s-color-background-selected-active) !important 1806 } 1807 1808 .active\\:s-bg-active:active { 1809 background-color: var(--w-s-color-background-active) 1810 } 1811 1812 .active\\:s-bg-negative-active:active { 1813 background-color: var(--w-s-color-background-negative-active) 1814 } 1815 1816 .active\\:s-bg-negative-subtle-active:active { 1817 background-color: var(--w-s-color-background-negative-subtle-active) 1818 } 1819 1820 .active\\:s-bg-primary-active:active { 1821 background-color: var(--w-s-color-background-primary-active) 1822 } 1823 1824 .active\\:s-bg-selected-active:active { 1825 background-color: var(--w-s-color-background-selected-active) 1826 } 1827 1828 .before\\:s-bg-disabled-subtle:before { 1829 background-color: var(--w-s-color-background-disabled-subtle) 1830 } 1831 1832 .before\\:s-bg:before { 1833 background-color: var(--w-s-color-background) 1834 } 1835 1836 .s-text { 1837 color: var(--w-s-color-text) 1838 } 1839 1840 .s-text-disabled { 1841 color: var(--w-s-color-text-disabled) 1842 } 1843 1844 .s-text-inverted, .peer:checked ~ .peer-checked\\:s-text-inverted { 1845 color: var(--w-s-color-text-inverted) 1846 } 1847 1848 .s-text-inverted-static { 1849 color: var(--w-s-color-text-inverted-static) 1850 } 1851 1852 .s-text-link { 1853 color: var(--w-s-color-text-link) 1854 } 1855 1856 .s-text-negative { 1857 color: var(--w-s-color-text-negative) 1858 } 1859 1860 .s-text-subtle { 1861 color: var(--w-s-color-text-subtle) 1862 } 1863 1864 .hover\\:s-text-link:hover { 1865 color: var(--w-s-color-text-link) 1866 } 1867 1868 .active\\:s-text:active { 1869 color: var(--w-s-color-text) 1870 } 1871 1872 .placeholder\\:s-text-placeholder::placeholder { 1873 color: var(--w-s-color-text-placeholder) 1874 } 1875 1876 .s-icon { 1877 color: var(--w-s-color-icon) 1878 } 1879 1880 .s-icon-info { 1881 color: var(--w-s-color-icon-info) 1882 } 1883 1884 .s-icon-inverted { 1885 color: var(--w-s-color-icon-inverted) 1886 } 1887 1888 .s-icon-negative { 1889 color: var(--w-s-color-icon-negative) 1890 } 1891 1892 .s-icon-positive { 1893 color: var(--w-s-color-icon-positive) 1894 } 1895 1896 .s-icon-warning { 1897 color: var(--w-s-color-icon-warning) 1898 } 1899 1900 .hover\\:s-icon-hover:hover { 1901 color: var(--w-s-color-icon-hover) 1902 } 1903 1904 .active\\:s-icon-active:active { 1905 color: var(--w-s-color-icon-active) 1906 } 1907 1908 .before\\:s-icon-inverted:before { 1909 color: var(--w-s-color-icon-inverted) 1910 } 1911 1912 .s-border { 1913 border-color: var(--w-s-color-border) 1914 } 1915 1916 .s-border-disabled { 1917 border-color: var(--w-s-color-border-disabled) 1918 } 1919 1920 .s-border-info-subtle { 1921 border-color: var(--w-s-color-border-info-subtle) 1922 } 1923 1924 .s-border-l-info { 1925 border-left-color: var(--w-s-color-border-info) 1926 } 1927 1928 .s-border-l-negative { 1929 border-left-color: var(--w-s-color-border-negative) 1930 } 1931 1932 .s-border-l-positive { 1933 border-left-color: var(--w-s-color-border-positive) 1934 } 1935 1936 .s-border-l-warning { 1937 border-left-color: var(--w-s-color-border-warning) 1938 } 1939 1940 .s-border-negative { 1941 border-color: var(--w-s-color-border-negative) 1942 } 1943 1944 .s-border-negative-subtle { 1945 border-color: var(--w-s-color-border-negative-subtle) 1946 } 1947 1948 .s-border-positive-subtle { 1949 border-color: var(--w-s-color-border-positive-subtle) 1950 } 1951 1952 .s-border-primary, .peer:checked ~ .peer-checked\\:s-border-primary { 1953 border-color: var(--w-s-color-border-primary) 1954 } 1955 1956 .s-border-selected { 1957 border-color: var(--w-s-color-border-selected) 1958 } 1959 1960 .s-border-warning-subtle { 1961 border-color: var(--w-s-color-border-warning-subtle) 1962 } 1963 1964 .peer:checked:hover ~ .peer-checked\\:peer-hover\\:before\\:s-b
1964order-negative-hover:before { 1965 border-color: var(--w-s-color-border-negative-hover) 1966 } 1967 1968 .peer:checked:hover ~ .peer-checked\\:peer-hover\\:before\\:s-border-primary-hover:before { 1969 border-color: var(--w-s-color-border-primary-hover) 1970 } 1971 1972 .peer:checked:hover ~ .peer-checked\\:peer-hover\\:before\\:s-border-selected-hover:before { 1973 border-color: var(--w-s-color-border-selected-hover) 1974 } 1975 1976 .peer:checked ~ .peer-checked\\:before\\:s-border-disabled:before { 1977 border-color: var(--w-s-color-border-disabled) 1978 } 1979 1980 .peer:checked ~ .peer-checked\\:before\\:s-border-negative:before { 1981 border-color: var(--w-s-color-border-negative) 1982 } 1983 1984 .peer:checked ~ .peer-checked\\:before\\:s-border-primary:before { 1985 border-color: var(--w-s-color-border-primary) 1986 } 1987 1988 .peer:checked ~ .peer-checked\\:before\\:s-border-selected:before { 1989 border-color: var(--w-s-color-border-selected) 1990 } 1991 1992 .peer:indeterminate ~ .peer-indeterminate\\:before\\:s-border-disabled:before { 1993 border-color: var(--w-s-color-border-disabled) 1994 } 1995 1996 .peer:indeterminate ~ .peer-indeterminate\\:before\\:s-border-negative:before { 1997 border-color: var(--w-s-color-border-negative) 1998 } 1999 2000 .peer:indeterminate ~ .peer-indeterminate\\:before\\:s-border-primary:before { 2001 border-color: var(--w-s-color-border-primary) 2002 } 2003 2004 .peer:indeterminate ~ .peer-indeterminate\\:hover\\:before\\:s-border-negative-hover:hover:before { 2005 border-color: var(--w-s-color-border-negative-hover) 2006 } 2007 2008 .peer:indeterminate ~ .peer-indeterminate\\:hover\\:before\\:s-border-primary-hover:hover:before { 2009 border-color: var(--w-s-color-border-primary-hover) 2010 } 2011 2012 .group:hover .group-hover\\:s-border-selected-hover { 2013 border-color: var(--w-s-color-border-selected-hover) 2014 } 2015 2016 .hover\\:before\\:s-border-negative-hover:hover:before { 2017 border-color: var(--w-s-color-border-negative-hover) 2018 } 2019 2020 .hover\\:before\\:s-border-primary:hover:before { 2021 border-color: var(--w-s-color-border-primary) 2022 } 2023 2024 .hover\\:s-border-disabled:hover { 2025 border-color: var(--w-s-color-border-disabled) 2026 } 2027 2028 .hover\\:s-border-hover:hover { 2029 border-color: var(--w-s-color-border-hover) 2030 } 2031 2032 .hover\\:s-border-negative-hover:hover { 2033 border-color: var(--w-s-color-border-negative-hover) 2034 } 2035 2036 .hover\\:s-border-primary-hover:hover { 2037 border-color: var(--w-s-color-border-primary-hover) 2038 } 2039 2040 .hover\\:s-border-primary:hover { 2041 border-color: var(--w-s-color-border-primary) 2042 } 2043 2044 .hover\\:s-border-selected-hover:hover { 2045 border-color: var(--w-s-color-border-selected-hover) 2046 } 2047 2048 .peer:hover ~ .peer-hover\\:before\\:s-border-negative-hover:before { 2049 border-color: var(--w-s-color-border-negative-hover) 2050 } 2051 2052 .peer:hover ~ .peer-hover\\:before\\:s-border-primary:before { 2053 border-color: var(--w-s-color-border-primary) 2054 } 2055 2056 .focus\\:s-border-primary-hover:focus { 2057 border-color: var(--w-s-color-border-primary-hover) 2058 } 2059 2060 .active\\:s-border-active:active { 2061 border-color: var(--w-s-color-border-active) 2062 } 2063 2064 .active\\:s-border-disabled:active { 2065 border-color: var(--w-s-color-border-disabled) 2066 } 2067 2068 .active\\:s-border-primary-active:active { 2069 border-color: var(--w-s-color-border-primary-active) 2070 } 2071 2072 .active\\:s-border-selected-active:active { 2073 border-color: var(--w-s-color-border-selected-active) 2074 } 2075 2076 .active\\:s-border-selected:active { 2077 border-color: var(--w-s-color-border-selected) 2078 } 2079 2080 .group:active .group-active\\:s-border-active { 2081 border-color: var(--w-s-color-border-active) 2082 } 2083 2084 .group:active .group-active\\:s-border-selected-active { 2085 border-color: var(--w-s-color-border-selected-active) 2086 } 2087 2088 .before\\:s-border-disabled:before { 2089 border-color: var(--w-s-color-border-disabled) 2090 } 2091 2092 .before\\:s-border-negative:before { 2093 border-color: var(--w-s-color-border-negative) 2094 } 2095 2096 .s-surface-sunken { 2097 background-color: var(--w-s-color-surface-sunken) 2098 } 2099 2100 .s-surface-elevated-200 { 2101 background-color: var(--w-s-color-surface-elevated-200); 2102 box-shadow: var(--w-s-shadow-surface-elevated-200) 2103 } 2104 2105 .hover\\:s-surface-elevated-200-hover:hover { 2106 background-color: var(--w-s-color-surface-elevated-200-hover); 2107 box-shadow: var(--w-s-shadow-surface-elevated-200-hover) 2108 } 2109 2110 .active\\:s-surface-elevated-200-active:active { 2111 background-color: var(--w-s-color-surface-elevated-200-active); 2112 box-shadow: var(--w-s-shadow-surface-elevated-200-active) 2113 } 2114 2115 .drop-shadow-m {
2116 filter: drop-shadow(rgba(64, 64, 64, .24) 0 3px 8px) drop-shadow(rgba(64, 64, 64, .16) 0 3px 6px) 2117 } 2118 2119 .shadow-m { 2120 box-shadow: var(--w-shadow-m) 2121 } 2122 2123 .shadow-s { 2124 box-shadow: var(--w-shadow-s) 2125 } 2126 2127 .shadow-\\[--w-shadow-slider\\] { 2128 box-shadow: var(--w-shadow-slider) 2129 } 2130 2131 .hover\\:shadow-\\[--w-shadow-slider-handle-hover\\]:hover { 2132 box-shadow: var(--w-shadow-slider-handle-hover) 2133 } 2134 2135 .focus\\:shadow-\\[--w-shadow-slider-handle-hover\\]:focus { 2136 box-shadow: var(--w-shadow-slider-handle-hover) 2137 } 2138 2139 .active\\:shadow-\\[--w-shadow-slider-handle-active\\]:active { 2140 box-shadow: var(--w-shadow-slider-handle-active) 2141 } 2142 2143 .h-0 { 2144 height: 0rem 2145 } 2146 2147 .h-16 { 2148 height: 1.6rem 2149 } 2150 2151 .h-2 { 2152 height: .2rem 2153 } 2154 2155 .h-20 { 2156 height: 2rem 2157 } 2158 2159 .h-24 { 2160 height: 2.4rem 2161 } 2162 2163 .h-4 { 2164 height: .4rem 2165 } 2166 2167 .h-44 { 2168 height: 4.4rem 2169 } 2170 2171 .h-6 { 2172 height: .6rem 2173 } 2174 2175 .h-8 { 2176 height: .8rem 2177 } 2178 2179 .h-full { 2180 height: 100% 2181 } 2182 2183 .h-unset { 2184 height: unset 2185 } 2186 2187 .max-h-unset { 2188 max-height: unset 2189 } 2190 2191 .max-w-full { 2192 max-width: 100% 2193 } 2194 2195 .max-w-max { 2196 max-width: max-content 2197 } 2198 2199 .max-w-unset { 2200 max-width: unset 2201 } 2202 2203 .min-h-32 { 2204 min-height: 3.2rem 2205 } 2206 2207 .min-h-40 { 2208 min-height: 4rem 2209 } 2210 2211 .min-w-16 { 2212 min-width: 1.6rem 2213 } 2214 2215 .min-w-32 { 2216 min-width: 3.2rem 2217 } 2218 2219 .w-16 { 2220 width: 1.6rem 2221 } 2222 2223 .w-2 { 2224 width: .2rem 2225 } 2226 2227 .w-20 { 2228 width: 2rem 2229 } 2230 2231 .w-24 { 2232 width: 2.4rem 2233 } 2234 2235 .w-32 { 2236 width: 3.2rem 2237 } 2238 2239 .w-40 { 2240 width: 4rem 2241 } 2242 2243 .w-44 { 2244 width: 4.4rem 2245 } 2246 2247 .w-8 { 2248 width: .8rem 2249 } 2250 2251 .w-full { 2252 width: 100% 2253 } 2254 2255 .w-max { 2256 width: max-content 2257 } 2258 2259 .w-unset { 2260 width: unset 2261 } 2262 2263 .before\\:h-20:before { 2264 height: 2rem 2265 } 2266 2267 .before\\:h-full:before { 2268 height: 100% 2269 } 2270 2271 .before\\:w-20:before { 2272 width: 2rem 2273 } 2274 2275 .before\\:w-32:before { 2276 width: 3.2rem 2277 } 2278 2279 .h-\\[--w-modal-height\\] { 2280 height: var(--w-modal-height) 2281 } 2282 2283 .h-\\[14px\\] { 2284 height: 14px 2285 } 2286 2287 .h-\\[16px\\] { 2288 height: 16px 2289 } 2290 2291 .max-h-\\[--w-modal-max-height\\] { 2292 max-height: var(--w-modal-max-height) 2293 } 2294 2295 .min-h-\\[--w-modal-min-height\\] { 2296 min-height: var(--w-modal-min-height) 2297 } 2298 2299 .min-h-\\[32px\\] { 2300 min-height: 32px 2301 } 2302 2303 .min-h-\\[40px\\] { 2304 min-height: 40px 2305 } 2306 2307 .min-h-\\[42\\] { 2308 min-height: 4.2rem 2309 } 2310 2311 .min-h-\\[44px\\] { 2312 min-height: 44px 2313 } 2314 2315 .min-w-\\[32px\\] { 2316 min-width: 32px 2317 } 2318 2319 .min-w-\\[40px\\] { 2320 min-width: 40px 2321 } 2322 2323 .min-w-\\[44px\\] { 2324 min-width: 44px 2325 } 2326 2327 .w-\\[--w-modal-width\\] { 2328 width: var(--w-modal-width) 2329 } 2330 2331 .w-\\[14px\\] { 2332 width: 14px 2333 } 2334 2335 .w-\\[16px\\] { 2336 width: 16px 2337 } 2338 2339 .space-x-8 > :not([hidden]) ~ :not([hidden]) { 2340 --w-space-x-reverse: 0; 2341 margin-left: calc(.8rem * calc(1 - var(--w-space-x-reverse))); 2342 margin-right: calc(.8rem * var(--w-space-x-reverse)) 2343 } 2344 2345 .space-y-16 > :not([hidden]) ~ :not([hidden]) { 2346 --w-space-y-reverse: 0; 2347 margin-top: calc(1.6rem * calc(1 - var(--w-space-y-reverse))); 2348 margin-bottom: calc(1.6rem * var(--w-space-y-reverse)) 2349 } 2350 2351 .m-0 { 2352 margin: 0rem 2353 } 2354 2355 .m-auto { 2356 margin: auto 2357 } 2358 2359 .-mx-16 { 2360 margin-left: -1.6rem; 2361 margin-right: -1.6rem 2362 } 2363 2364 .mx-0 { 2365 margin-left: 0rem; 2366 margin-right: 0rem 2367 } 2368 2369 .mx-8 { 2370 margin-left: .8rem; 2371 margin-right: .8rem 2372 } 2373 2374 .mx-auto { 2375 margin-left: auto; 2376 margin-right: auto 2377 } 2378 2379 .-mb-1 { 2380 margin-bottom: -.1rem 2381 } 2382 2383 .-ml-8 { 2384 margin-left: -.8rem 2385 } 2386 2387 .-mr-1 { 2388 margin-right: -.1rem 2389 } 2390 2391 .-mr-8 { 2392 margin-right: -.8rem 2393 } 2394 2395 .-mt-2 { 2396 margin-top: -.2rem 2397 } 2398 2399 .-mt-4 { 2400 margin-top: -.4rem 2401 } 2402 2403 .last-child\\:mb-0 > :last-child, .mb-0 { 2404 margin-bottom: 0rem 2405 } 2406 2407 .mb-32 { 2408 margin-bottom: 3.2rem 2409 } 2410 2411 .ml-8 { 2412 margin-left: .8rem 2413 } 2414 2415 .ml-auto { 2416 margin-left: auto 2417 } 2418 2419 .mr-8 { 2420 margin-right: .8rem 2421 } 2422 2423 .mt-16 { 2424 margin-top: 1.6rem 2425 } 2426 2427 .mt-4 { 2428 margin-top: .4rem 2429 } 2430 2431 .group:not(:first-child) .group-not-first\\:-ml-2 { 2432 margin-left: -.2rem 2433 } 2434 2435 .last\\:mb-0:last-child { 2436 margin-bottom: 0rem 2437 } 2438 2439 .last\\:mr-0:last-child { 2440 margin-right: 0rem 2441 } 2442 2443 .m-\\[8px\\] { 2444 margin: 8px 2445 } 2446 2447 .p-0 { 2448 padding: 0rem 2449 } 2450 2451 .p-16 { 2452 padding: 1.6rem 2453 } 2454 2455 .p-4 { 2456 padding: .4rem 2457 } 2458 2459 .p-8 { 2460 padding: .8rem 2461 } 2462 2463 .px-0 { 2464 padding-left: 0rem; 2465 padding-right: 0rem 2466 } 2467 2468 .px-1 { 2469 padding-left: .1rem; 2470 padding-right: .1rem 2471 } 2472 2473 .px-12 { 2474 padding-left: 1.2rem; 2475 padding-right: 1.2rem 2476 } 2477 2478 .px-14 { 2479 padding-left: 1.4rem; 2480 padding-right: 1.4rem 2481 } 2482 2483 .px-16 { 2484 padding-left: 1.6rem; 2485 padding-right: 1.6rem 2486 } 2487 2488 .px-8 { 2489 padding-left: .8rem; 2490 padding-right: .8rem 2491 } 2492 2493 .py-0 { 2494 padding-top: 0rem; 2495 padding-bottom: 0rem 2496 } 2497 2498 .py-1 { 2499 padding-top: .1rem; 2500 padding-bottom: .1rem 2501 } 2502 2503 .py-10 { 2504 padding-top: 1rem; 2505 padding-bottom: 1rem 2506 } 2507 2508 .py-12 { 2509 padding-top: 1.2rem; 2510 padding-bottom: 1.2rem 2511 } 2512 2513 .py-2 { 2514 padding-top: .2rem; 2515 padding-bottom: .2rem 2516 } 2517 2518 .py-4 { 2519 padding-top: .4rem; 2520 padding-bottom: .4rem 2521 } 2522 2523 .py-6 { 2524 padding-top: .6rem; 2525 padding-bottom: .6rem 2526 } 2527 2528 .py-8 { 2529 padding-top: .8rem; 2530 padding-bottom: .8rem 2531 } 2532 2533 .pb-0 { 2534 padding-bottom: 0rem 2535 } 2536 2537 .pb-32 { 2538 padding-bottom: 3.2rem 2539 } 2540 2541 .pb-4 { 2542 padding-bottom: .4rem 2543 } 2544 2545 .pb-8 { 2546 padding-bottom: .8rem 2547 } 2548 2549 .pl-0 { 2550 padding-left: 0rem 2551 } 2552 2553 .pl-1 { 2554 padding-left: .1rem 2555 } 2556 2557 .pl-12 { 2558 padding-left: 1.2rem 2559 } 2560 2561 .pl-28 { 2562 padding-left: 2.8rem 2563 } 2564 2565 .pl-4 { 2566 padding-left: .4rem 2567 } 2568 2569 .pl-8 { 2570 padding-left: .8rem 2571 } 2572 2573 .pr-12 { 2574 padding-right: 1.2rem 2575 } 2576 2577 .pr-14 { 2578 padding-right: 1.4rem 2579 } 2580 2581 .pr-2 { 2582 padding-right: .2rem 2583 } 2584 2585 .pr-32 { 2586 padding-right: 3.2rem 2587 } 2588 2589 .pr-40 { 2590 padding-right: 4rem 2591 } 2592 2593 .pt-0 { 2594 padding-top: 0rem 2595 } 2596 2597 .pt-1 { 2598 padding-top: .1rem 2599 } 2600 2601 .pt-16 { 2602 padding-top: 1.6rem 2603 } 2604 2605 .pt-24 { 2606 padding-top: 2.4rem 2607 } 2608 2609 .pt-8 { 2610 padding-top: .8rem 2611 } 2612 2613 .group\\/step:last-child .group-last\\/step\\:last\\:pb-0:last-child { 2614 padding-bottom: 0rem 2615 } 2616 2617 .last\\:pb-1:last-child { 2618 padding-bottom: .1rem 2619 } 2620 2621 .last\\:pr-1:last-child { 2622 padding-right: .1rem 2623 } 2624 2625 .p-\\[8px\\] { 2626 padding: 8px 2627 } 2628 2629 .px-\\[15px\\] { 2630 padding-left: 15px; 2631 padding-right: 15px 2632 } 2633 2634 .px-\\[8px\\] { 2635 padding-left: 8px; 2636 padding-right: 8px 2637 } 2638 2639 .py-\\[11px\\] { 2640 padding-top: 11px; 2641 padding-bottom: 11px 2642 } 2643 2644 .py-\\[5px\\] { 2645 padding-top: 5px; 2646 padding-bottom: 5px 2647 } 2648 2649 .py-\\[7px\\] { 2650 padding-top: 7px; 2651 padding-bottom: 7px 2652 } 2653 2654 .pl-\\[var\\(--w-prefix-width\\,_40px\\)\\] { 2655 padding-left: var(--w-prefix-width, 40px) 2656 } 2657 2658 .invisible { 2659 visibility: hidden 2660 } 2661 2662 .backface-hidden { 2663 backface-visibility: hidden 2664 } 2665 2666 .break-words { 2667 overflow-wrap: break-word 2668 } 2669 2670 .before\\:content-\\[\\"\xE2\u20AC\u201C\\"\\]:before { 2671 content: "\xE2\u20AC\u201C" 2672 } 2673 2674 .before\\:content-\\[\\"\\"\\]:before { 2675 content: "" 2676 } 2677 2678 .cursor-default { 2679 cursor: default 2680 } 2681 2682 .cursor-pointer { 2683 cursor: pointer 2684 } 2685 2686 .antialiased { 2687 -webkit-font-smoothing: antialiased; 2688 -moz-osx-font-smoothing: grayscale; 2689 font-smoothing: grayscale 2690 } 2691 2692 .font-bold { 2693 font-weight: 700 2694 } 2695 2696 .before\\:font-bold:before { 2697 font-weight: 700 2698 } 2699 2700 .font-normal { 2701 font-weight: 400 2702 } 2703 2704 .pointer-events-auto { 2705 pointer-events: auto 2706 } 2707 2708 .pointer-events-none { 2709 pointer-events: none 2710 } 2711 2712 .before\\:pointer-events-none:before { 2713 pointer-events: none 2714 } 2715 2716 .pb-safe-\\[32\\] { 2717 padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px)) 2718 } 2719 2720 .sr-only { 2721 position: absolute; 2722 width: 1px; 2723 height: 1px; 2724 padding: 0; 2725 margin: -1px; 2726 overflow: hidden; 2727 clip: rect(0, 0, 0, 0); 2728 white-space: nowrap; 2729 border-width: 0 2730 } 2731 2732 .touch-pan-y { 2733 touch-action: pan-y 2734 } 2735 2736 .select-none { 2737 -webkit-user-select: none; 2738 user-select: none 2739 } 2740 2741 .translate-x-20 { 2742 --w-translate-x: 2rem; 2743 transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z)) 2744 } 2745 2746 .translate-z-0 { 2747 --w-translate-z: 0rem; 2748 transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z)) 2749 } 2750 2751 .-rotate-180, .part-\\[w-icon-chevron-down-16-part\\]\\:-rotate-180::part(w-icon-chevron-down-16-part) { 2752 --w-rotate-x: 0; 2753 --w-rotate-y: 0; 2754 --w-rotate-z: 0; 2755 --w-rotate: -180deg; 2756 transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z)) 2757 } 2758 2759 .part-\\[w-icon-chevron-up-16-part\\]\\:rotate-180::part(w-icon-chevron-up-16-part), .rotate-180 { 2760 --w-rotate-x: 0; 2761 --w-rotate-y: 0; 2762 --w-rotate-z: 0; 2763 --w-rotate: 180deg; 2764 transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z)) 2765 } 2766 2767 .rotate-90 { 2768 --w-rotate-x: 0; 2769 --w-rotate-y: 0; 2770 --w-rotate-z: 0; 2771 --w-rotate: 90deg; 2772 transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z)) 2773 } 2774 2775 .part-\\[w-icon-chevron-down-16-part\\]\\:transform::part(w-icon-chevron-down-16-part), .part-\\[w-icon-chevron-up-16-part\\]\\:transform::part(w-icon-chevron-up-16-part), .transform { 2776 transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z)) 2777
2777 } 2778 2779 .part-\\[w-icon-chevron-down-16-part\\]\\:transform-gpu::part(w-icon-chevron-down-16-part), .part-\\[w-icon-chevron-up-16-part\\]\\:transform-gpu::part(w-icon-chevron-up-16-part), .transform-gpu { 2780 transform: translate3d(var(--w-translate-x), var(--w-translate-y), var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z)) 2781 } 2782 2783 .part-\\[w-icon-chevron-down-16-part\\]\\:transition-transform::part(w-icon-chevron-down-16-part), .part-\\[w-icon-chevron-up-16-part\\]\\:transition-transform::part(w-icon-chevron-up-16-part), .transition-transform { 2784 transition-property: transform; 2785 transition-timing-function: cubic-bezier(.4, 0, .2, 1); 2786 transition-duration: .15s 2787 } 2788 2789 .transition-300 { 2790 transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; 2791 transition-timing-function: cubic-bezier(.4, 0, .2, 1); 2792 transition-duration: .3s 2793 } 2794 2795 .transition-all { 2796 transition-property: all; 2797 transition-timing-function: cubic-bezier(.4, 0, .2, 1); 2798 transition-duration: .15s 2799 } 2800 2801 .transition-colors { 2802 transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; 2803 transition-timing-function: cubic-bezier(.4, 0, .2, 1); 2804 transition-duration: .15s 2805 } 2806 2807 .transition-shadow { 2808 transition-property: box-shadow; 2809 transition-timing-function: cubic-bezier(.4, 0, .2, 1); 2810 transition-duration: .15s 2811 } 2812 2813 .before\\:transition-all:before { 2814 transition-property: all; 2815 transition-timing-function: cubic-bezier(.4, 0, .2, 1); 2816 transition-duration: .15s 2817 } 2818 2819 .duration-300 { 2820 transition-duration: .3s 2821 } 2822 2823 .ease-in-out, .part-\\[w-icon-chevron-down-16-part\\]\\:ease-in-out::part(w-icon-chevron-down-16-part), .part-\\[w-icon-chevron-up-16-part\\]\\:ease-in-out::part(w-icon-chevron-up-16-part) { 2824 transition-timing-function: cubic-bezier(.4, 0, .2, 1) 2825 } 2826 2827 .text-m { 2828 font-size: var(--w-font-size-m); 2829 line-height: var(--w-line-height-m) 2830 } 2831 2832 .text-s { 2833 font-size: var(--w-font-size-s); 2834 line-height: var(--w-line-height-s) 2835 } 2836 2837 .text-xs { 2838 font-size: var(--w-font-size-xs); 2839 line-height: var(--w-line-height-xs) 2840 } 2841 2842 .leading-m { 2843 line-height: var(--w-line-height-m) 2844 } 2845 2846 .before\\:leading-xs:before { 2847 line-height: var(--w-line-height-xs) 2848 } 2849 2850 .leading-\\[24\\] { 2851 line-height: 2.4rem 2852 } 2853 2854 @media (max-width: 479.9px) { 2855 .lt-sm\\:rounded-b-0 { 2856 border-bottom-left-radius: 0; 2857 border-bottom-right-radius: 0 2858 } 2859 } 2860 @media (min-width: 480px) { 2861 .sm\\:border-b-0 { 2862 border-bottom-width: 0 2863 } 2864 2865 .sm\\:rounded-8 { 2866 border-radius: 8px 2867 } 2868 2869 .sm\\:rounded-b-8 { 2870 border-bottom-left-radius: 8px; 2871 border-bottom-right-radius: 8px 2872 } 2873 2874 .sm\\:gap-16 { 2875 gap: 1.6rem 2876 } 2877 2878 .sm\\:place-content-center { 2879 place-content: center 2880 } 2881 2882 .sm\\:place-items-center { 2883 place-items: center 2884 } 2885 2886 .sm\\:h-24 { 2887 height: 2.4rem 2888 } 2889 2890 .sm\\:min-h-48 { 2891 min-height: 4.8rem 2892 } 2893 2894 .sm\\:w-24 { 2895 width: 2.4rem 2896 } 2897 2898 .sm\\:min-h-\\[32px\\] { 2899 min-height: 32px 2900 } 2901 2902 .sm\\:min-h-\\[44px\\] { 2903 min-height: 44px 2904 } 2905 2906 .sm\\:min-h-\\[45\\] { 2907 min-height: 4.5rem 2908 } 2909 2910 .sm\\:min-w-\\[32px\\] { 2911 min-width: 32px 2912 } 2913 2914 .sm\\:min-w-\\[44px\\] { 2915 min-width: 44px 2916 } 2917 2918 .sm\\:mx-0 { 2919 margin-left: 0rem; 2920 margin-right: 0rem 2921 } 2922 2923 .sm\\:mx-16 { 2924 margin-left: 1.6rem; 2925 margin-right: 1.6rem 2926 } 2927 2928 .sm\\:-ml-12 { 2929 margin-left: -1.2rem 2930 } 2931
2932 .sm\\:-mr-12 { 2933 margin-right: -1.2rem 2934 } 2935 2936 .sm\\:-mt-8 { 2937 margin-top: -.8rem 2938 } 2939 2940 .sm\\:px-32 { 2941 padding-left: 3.2rem; 2942 padding-right: 3.2rem 2943 } 2944 2945 .sm\\:py-0 { 2946 padding-top: 0rem; 2947 padding-bottom: 0rem 2948 } 2949 2950 .sm\\:pb-32 { 2951 padding-bottom: 3.2rem 2952 } 2953 2954 .sm\\:pt-24 { 2955 padding-top: 2.4rem 2956 } 2957 2958 .sm\\:pt-32 { 2959 padding-top: 3.2rem 2960 } 2961 } 2962 @media (min-width: 768px) { 2963 .md\\:block { 2964 display: block 2965 } 2966 2967 .md\\:hidden { 2968 display: none 2969 } 2970 } 2971 `),to=eo` 2972 :host { 2973 --_background-color: var( 2974 --w-c-badge-bg, 2975 var(--w-color-badge-neutral-background) 2976 ); 2977 --_color: var(--w-c-badge-color, var(--w-s-color-text)); 2978 --_border-radius: var(--w-c-badge-border-radius, 4px); 2979 --_border-width: var(--w-c-badge-border-width, 0); 2980 --_border-color: var(--w-c-badge-border-color, transparent); 2981 --_font-size: var(--w-c-badge-font-size, var(--w-font-size-xs)); 2982 --_line-height: var(--w-c-badge-line-height, var(--w-line-height-xs)); 2983 --_padding-x: var(--w-c-badge-padding-x, 0.8rem); 2984 --_padding-y: var(--w-c-badge-padding-y, 0.4rem); 2985 --_backdrop-filter: var(--w-c-badge-backdrop-filter, none); 2986 } 2987 2988 :host([variant="neutral"]) { 2989 --_background-color: var( 2990 --w-c-badge-bg, 2991 var(--w-color-badge-neutral-background) 2992 ); 2993 } 2994 2995 :host([variant="info"]) { 2996 --_background-color: var( 2997 --w-c-badge-bg, 2998 var(--w-color-badge-info-background) 2999 ); 3000 } 3001 3002 :host([variant="positive"]) { 3003 --_background-color: var( 3004 --w-c-badge-bg, 3005 var(--w-color-badge-positive-background) 3006 ); 3007 } 3008 3009 :host([variant="warning"]) { 3010 --_background-color: var( 3011 --w-c-badge-bg, 3012 var(--w-color-badge-warning-background) 3013 ); 3014 } 3015 3016 :host([variant="negative"]) { 3017 --_background-color: var( 3018 --w-c-badge-bg, 3019 var(--w-color-badge-negative-background) 3020 ); 3021 } 3022 3023 :host([variant="disabled"]) { 3024 --_background-color: var( 3025 --w-c-badge-bg, 3026 var(--w-s-color-background-disabled) 3027 ); 3028 } 3029 3030 :host([variant="price"]) { 3031 --_background-color: var(--w-c-badge-bg, rgba(var(--w-rgb-black), 0.7)); 3032 --_color: var(--w-c-badge-color, var(--w-s-color-text-inverted-static)); 3033 } 3034 3035 :host([variant="sponsored"]) { 3036 --_background-color: var( 3037 --w-c-badge-bg, 3038 var(--w-color-badge-sponsored-background) 3039 ); 3040 } 3041 3042 :host([position]) { 3043 --_backdrop-filter: var(--w-c-badge-backdrop-filter, blur(4px)); 3044 } 3045 3046 :host([position="top-left"]) { 3047 inset: 0 auto auto 0; 3048 } 3049 3050 :host([position="top-right"]) { 3051 inset: 0 0 auto auto; 3052 } 3053 3054 :host([position="bottom-right"]) { 3055 inset: auto 0 0 auto; 3056 } 3057 3058 :host([position="bottom-left"]) { 3059 inset: auto auto 0 0; 3060 } 3061 3062 [part="base"] { 3063 background-color: var(--_background-color); 3064 border: var(--_border-width) solid var(--_border-color); 3065 border-radius: var(--_border-radius); 3066 color: var(--_color); 3067 display: inline-flex; 3068 font-size: var(--_font-size); 3069 line-height: var(--_line-height); 3070 padding: var(--_padding-y) var(--_padding-x); 3071 } 3072 3073 :host([position]) [part="base"] { 3074 -webkit-backdrop-filter: var(--_backdrop-filter); 3075 backdrop-filter: var(--_backdrop-filter); 3076 } 3077 3078 :host([position]) { 3079 position: absolute; 3080 } 3081 3082 :host([position="top-left"]) [part="base"] { 3083 border-top-left-radius: 0; 3084 border-top-right-radius: 0; 3085 border-bottom-left-radius: 0; 3086 } 3087 3088 :host([position="top-right"]) [part="base"] { 3089 border-top-left-radius: 0; 3090 border-top-right-radius: 0; 3091 border-bottom-right-radius: 0; 3092 } 3093 3094 :host([position="bottom-right"]) [part="base"] { 3095 border-top-right-radius: 0; 3096 border-bottom-right-radius: 0; 3097 border-bottom-left-radius: 0; 3098 } 3099 3100 :host([position="bottom-left"]) [part="base"] { 3101 border-top-left-radius: 0; 3102 border-bottom-right-radius: 0; 3103 border-bottom-left-radius: 0; 3104 } 3105`,Z=class extends Yr{constructor(){super(...arguments),this.variant="neutral"}render(){return Qr`<div part="base"><slot></slot></div>`}};Z.styles=[Zr,to],Rt([y({type:String,reflect:!0,useDefault:!0})],Z.prototype,"variant",2),Rt([y({type:String,reflect:!0})],Z.prototype,"position",2);customElements.get("w-badge")||customElements.define("w-badge",Z);import{css as ro,html as ee}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var zt=r=>{switch(r){case"car":return n.t({id:"frontpage.evergreen-content.title.car",message:"Everything you need for a safe car transaction"});case"boat":return n.t({id:"frontpage.evergreen-content.title.boat",message:"Everything you need for a safe boat transaction"});case"mc":return n.t({id:"frontpage.evergreen-content.title.mc",message:"Everything you need for a safe MC transaction"});case"caravan":return n.t({id:"frontpage.evergreen-content.title.caravan",message:"Everything you need for a safe caravan transaction"});default:return n.t({id:"frontpage.evergreen-content.title",message:"Everything you need for a safe transaction"})}};var Ie=class extends Pt{static properties={trackingEventMap:{type:Object},evergreen:{attribute:!0,type:Array,converter:{fromAttribute:e=>{try{return e?JSON.parse(e):[]}catch{return[]}}}},viewAllLink:{attribute:!0,type:String},subvertical:{attribute:!0,type:String}};static styles=[Pt.styles,ro` 3106 @css-placeholder-dVZ6TA; 3107 3108 /* No CSS needed - using inline styles for gradients */ 3109 `];constructor(){super(),this.evergreen=[]}connectedCallback(){f(),super.connectedCallback()}get header(){return zt(this.subvertical)}render(){let e=this.evergreen?.length===1;return ee`<div class="grid gap-16 min-h-[230] max-w-full isolate"> 3110 <div class="flex items-baseline justify-between"> 3111 <h3 class="t3 mb-0">${this.header}</h3> 3112 <div class="flex items-center gap-8 whitespace-nowrap"> 3113 <a 3114 href="${this.viewAllLink}" 3115 class=" text-s font-normal s-text-secondary " 3116 @click="${()=>u(this.trackingEventMap.MS_ev03,this.viewAllLink)}" 3117 >
3118 <span class="hover:underline">${n.t({id:"evergreen.view-all",message:"View all"})}</span> 3119 </a> 3120 <span class="s-text-primary text-m" aria-hidden="true">âº</span> 3121 </div> 3122 </div> 3123 <div 3124 class="grid gap-16 grid-rows-3 gap-12 md:gap-16 md:grid-rows-none ${e?"md:grid-cols-1":"md:grid-cols-[632px_1fr]"}" 3125 > 3126 ${this.evergreen?.slice(0,1).map(t=>ee`<a 3127 href="${t.link}" 3128 aria-label="${t.header}" 3129 @click="${()=>u(this.trackingEventMap.MS_ev02,t.link)}" 3130 class="block group" 3131 > 3132 <div 3133 class="focus-within:outline outline-4 overflow-hidden s-outline-focused rounded-8 transition-all duration-300 hover:scale-[1.02] focus-within:scale-[1.02] h-full relative h-[240px] md:h-[356px] ${e?"md:w-full":"md:w-[632px]"}" 3134 style="background-color: var(--w-s-color-border)" 3135 > 3136 <w-badge position="top-left" variant="info" class="z-20 relative whitespace-nowrap"> 3137 ${t.badge} 3138 </w-badge> 3139 <div 3140 class="absolute inset-0 w-full h-full bg-cover bg-center transition-transform duration-300 group-hover:scale-105 z-0" 3141 style="background-image: url('${t.imageUrl}');" 3142 ></div> 3143 <div 3144 class="absolute bottom-0 left-0 right-0 z-10 pointer-events-none evg-fade-sm h-[220px]" 3145 style="background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.58) 76%, rgba(0, 0, 0, 0.92) 100%);" 3146 ></div> 3147 3148 <div class="absolute bottom-0 left-0 right-0 flex flex-col justify-end p-20 md:p-24 z-30 h-[146px]"> 3149 <span class="block text-white md:t3 t4 leading-tight s-text-inverted-static">${t.header}</span> 3150 </div> 3151 </div> 3152 </a>`)} 3153 ${e?"":ee`<div class="grid grid-rows-2 gap-16 h-full contents md:grid"> 3154 ${this.evergreen.slice(1,3).map(t=>ee`<a 3155 href="${t.link}" 3156 aria-label="${t.header}" 3157 @click="${()=>u(this.trackingEventMap.MS_ev02,t.link)}" 3158 class="block group" 3159 > 3160 <div 3161 class="focus-within:outline outline-4 overflow-hidden s-outline-focused rounded-8 transition-all duration-300 hover:scale-[1.02] focus-within:scale-[1.02] relative h-[240px] md:h-[170px] md:w-[300px]" 3162 style="background-color: var(--w-s-color-border)" 3163 > 3164 <w-badge position="top-left" variant="info" class="z-30 relative whitespace-nowrap"> 3165 ${t.badge} 3166 </w-badge> 3167 <div 3168 class="absolute inset-0 z-0 bg-cover bg-center transition-transform duration-300 group-hover:scale-105" 3169 style="background-image:url('${t.imageUrl}')" 3170 ></div> 3171 3172 <div 3173 class="absolute bottom-0 left-0 right-0 z-10 pointer-events-none evg-fade-sm h-[146px]" 3174 style="background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.95) 100%);" 3175 ></div> 3176 3177 <div class="absolute bottom-0 left-0 right-0 z-20 flex flex-col justify-end p-16 h-[146px]">
3178 <span class="block text-white t4 leading-tight s-text-inverted-static"> 3179 ${t.header} 3180 </span> 3181 </div> 3182 </div> 3183 </a>`)} 3184 </div>`} 3185 </div> 3186 </div>`}};customElements.define("evergreen-content",Ie);import Vt from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import"https://assets.finn.no/pkg/@warp-ds/elements/v2/packages/card/index.js";import{css as ao,html as te,nothing as D}from"https://assets.finn.no/npm/lit/v3/lit.min.js";function Dt(r,e,t){let o=e-r;return o>0?o:t}function Ot(r,e,t){return r==="ArrowLeft"&&e?-1:r==="ArrowRight"&&t?1:null}var oo=3;function Ft(r,e){if(r<=0)return 0;let t=Math.floor(e/r);return Math.max(1,Math.min(oo,t))*r}function Ut(r,e,t){return{canPrev:r>25,canNext:t-e-r>25}}var Re="newcar-latest-models-heading",io="flex items-center justify-center w-48 h-48 rounded-full s-surface-elevated-200 shadow-m hover:shadow-l transition",so="opacity-0 pointer-events-none",ze=class extends Vt{static properties={header:{type:String},items:{type:Array},canPrev:{state:!0},canNext:{state:!0}};static styles=[Vt.styles,ao` 3187 :host { 3188 display: block; 3189 } 3190 .carousel-track { 3191 scrollbar-width: none; 3192 scroll-snap-type: x mandatory; 3193 /* The track is padded so card focus rings aren't clipped by overflow-x-auto. 3194 Without matching scroll padding the first card snaps 12px out of position and 3195 the ring it protects gets cut off anyway. */ 3196 scroll-padding-inline-start: 12px; 3197 } 3198 .carousel-track::-webkit-scrollbar {
3199 display: none; 3200 } 3201 .carousel-track > * { 3202 scroll-snap-align: start; 3203 } 3204 /* The cards are lazy-loaded, so the box has to be right before the bytes arrive â 3205 otherwise the row resizes mid-scroll, which is exactly when the off-screen images 3206 start loading. The width/height attributes reserve it; this non-auto aspect-ratio 3207 also keeps it, because an auto ratio hands control back to the intrinsic one on load 3208 and would shift the layout again the day the CDN returns something other than 2:1. */ 3209 .card-image { 3210 aspect-ratio: 2 / 1; 3211 object-fit: cover; 3212 } 3213 /* Keep the placeholder LAST. The Warp plugin swaps the token but leaves the trailing 3214 semicolon, and a stray top-level ";" is parsed as the start of a qualified rule â 3215 it swallows the selector of whatever rule comes next, silently dropping it. */ 3216 @css-placeholder---qIKG; 3217 `];#e;#t=null;constructor(){super(),this.header="",this.items=[],this.canPrev=!1,this.canNext=!1}connectedCallback(){f(),super.connectedCallback()}firstUpdated(){let e=this.#r;e&&(this.#e=new ResizeObserver(()=>this.#a()),this.#e.observe(e),this.#a())}updated(e){e.has("items")&&this.#a(),this.#o()}#o(){let e=this.shadowRoot?.activeElement;!(e instanceof HTMLElement)||e.getAttribute("aria-disabled")!=="true"||this.renderRoot.querySelector('button[aria-disabled="false"]')?.focus()}disconnectedCallback(){this.#e?.disconnect(),this.#e=void 0,this.#t!==null&&cancelAnimationFrame(this.#t),this.#t=null,super.disconnectedCallback()}get#r(){return this.renderRoot.querySelector(".carousel-track")}#a(){let e=this.#r;if(!e)return;let t=Ut(e.scrollLeft,e.clientWidth,e.scrollWidth);this.canPrev=t.canPrev,this.canNext=t.canNext}#n(){this.#t===null&&(this.#t=requestAnimationFrame(()=>{this.#t=null,this.#a()}))}#i(e){let t=this.#r;if(!t)return;let o=t.children[0],a=t.children[1],s=Dt(o?.offsetLeft??0,a?.offsetLeft??0,t.clientWidth),i=window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth";t.scrollBy({left:e*Ft(s,t.clientWidth),behavior:i})}#l(e){let t=Ot(e.key,this.canPrev,this.canNext);t!==null&&(e.preventDefault(),this.#i(t))}#s(e,t,o){return te`<button 3218 type="button" 3219 aria-label="${o}" 3220 aria-disabled="${!t}" 3221 tabindex="${t?D:"-1"}" 3222 @click="${()=>t&&this.#i(e)}" 3223 @keydown="${this.#l}" 3224 class="${io} ${t?"pointer-events-auto":so}" 3225 > 3226 <w-icon 3227 name="${e===-1?"ChevronLeft":"ChevronRight"}" 3228 size="24px" 3229 locale="sv" 3230 class="block w-24 h-24 s-icon" 3231 aria-hidden="true" 3232 ></w-icon> 3233 </button>`}render(){let e=this.canPrev||this.canNext,t=n.t({id:"market-frontpage.latest-models.previous",message:"Previous"}),o=n.t({id:"market-frontpage.latest-models.next",message:"Next"});return te`<section class="grid gap-16 max-w-full" aria-roledescription="carousel" aria-labelledby="${Re}"> 3234 <h3 class="t3 mb-0" id="${Re}">${this.header}</h3> 3235 <div class="relative -m-12 min-w-0"> 3236 <div 3237 class="carousel-track flex gap-16 overflow-x-auto overscroll-x-contain p-12 focusable" 3238 role="${e?"group":D}" 3239 aria-labelledby="${e?Re:D}" 3240 tabindex="${e?"0":D}" 3241 @scroll="${this.#n}" 3242 > 3243 ${this.items.map(a=>{let s=a.textColor==="light"?"s-text-inverted-static":a.textColor==="dark"?"s-text-static":"s-text",i=`newcar-latest-model-${a.id}`;return te`<w-card class="max-w-[223] min-w-[223]"> 3244 <article class="flex flex-col p-16 pb-24 ${s}" style="background-color:${a.backgroundColor}"> 3245 <a 3246 href="${a.href}" 3247 aria-owns="${i}" 3248 class="absolute inset-0 rounded-8 focusable focusable-inset" 3249 @click="${()=>a.trackingEvent&&u(a.trackingEvent)}" 3250 ></a> 3251 <h4 class="t4 mb-4" id="${i}">${a.name}</h4> 3252 <p class="text-caption mb-24">${a.displayPrice}</p> 3253 <img 3254 src="${a.image}" 3255 class="mx-auto w-91/100 card-image" 3256 loading="lazy" 3257 width="800" 3258 height="400" 3259 alt="${a.name}" 3260 /> 3261 </article> 3262 </w-card>`})} 3263 </div> 3264 ${e?te`<div class="pointer-events-none absolute inset-0 z-10 hidden sm:flex items-center justify-between px-8"> 3265 ${this.#s(-1,this.canPrev,t)} ${this.#s(1,this.canNext,o)} 3266 </div>`:D} 3267 </div> 3268 </section>`}};customElements.define("new-car-latest-models",ze);import Wt from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import"https://assets.finn.no/pkg/@warp-ds/elements/v2/packages/card/index.js";
3268import{css as no,html as Pe}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var De=class extends Wt{static properties={header:{type:String},description:{type:String},items:{type:Array}};static styles=[Wt.styles,no` 3269 :host { 3270 display: block; 3271 } 3272 @css-placeholder-cbLnOi; 3273 `];constructor(){super(),this.header="",this.description="",this.items=[]}connectedCallback(){f(),super.connectedCallback()}render(){return Pe`<div class="grid gap-16 max-w-full"> 3274 <div class="grid gap-4"> 3275 <h3 class="t3 mb-0">${this.header}</h3> 3276 ${this.description?Pe`<p class="s-text-subtle mb-0">${this.description}</p>`:""} 3277 </div> 3278 <div class="grid gap-16 grid-cols-1 md:grid-cols-3"> 3279 ${this.items.map(e=>{let t=`newcar-make-${e.id}`;return Pe`<w-card class="relative grid grid-rows-1 h-full"> 3280 <a 3281 href="${e.href}" 3282 aria-owns="${t}" 3283 class="absolute inset-0 rounded-8 focusable focusable-inset" 3284 @click="${()=>e.trackingEvent&&u(e.trackingEvent)}" 3285 ></a> 3286 <div class="flex items-center gap-24 pr-16 h-full pointer-events-none"> 3287 <div class="relative w-[112] h-[112] shrink-0"> 3288 <img class="w-full h-full object-cover" src="${e.image}" alt="" loading="lazy" /> 3289 <div class="absolute inset-0" style="background-color: rgba(0, 0, 0, 0.3)"></div> 3290 <img class="absolute left-12 top-12 w-32 h-32 object-contain" src="${e.logoUrl}" alt="" loading="lazy" /> 3291 </div> 3292 <div class="flex flex-col gap-4 min-w-0"> 3293 <span class="font-bold s-text" id="${t}">${e.name}</span> 3294 <span class="text-s s-text-subtle" 3295 >${n.t({id:"newcar.makecard.model-count",message:"{count, plural, one {# model} other {# models}}",values:{count:e.modelCount}})}</span 3296 > 3297 </div> 3298 </div> 3299 </w-card>`})} 3300 </div> 3301 </div>`}};customElements.define("new-car-make-list",De);import Ht from"https://assets.finn.no/pkg/@warp-ds/elements-core/v2/element.js";import"https://assets.finn.no/pkg/@warp-ds/elements/v2/packages/card/index.js";import{css as lo,html as re}from"https://assets.finn.no/npm/lit/v3/lit.min.js";var Oe=class extends Ht{static properties={header:{type:String},items:{type:Array}};static styles=[Ht.styles,lo` 3302 :host { 3303 display: block; 3304 } 3305 @css-placeholder-xCz34O; 3306 `];constructor(){super(),this.header="",this.items=[]}render(){return re`<div class="grid gap-16 max-w-full"> 3307 <h3 class="t3 mb-0">${this.header}</h3> 3308 <div class="grid gap-16 grid-cols-1 md:grid-cols-3"> 3309 ${this.items.map(e=>{let t=`newcar-model-${e.id}`;return re`<w-card class="relative grid grid-rows-1 h-full"> 3310 <article class="flex flex-col gap-16 p-16 h-full"> 3311 ${e.href?re`<a 3312 href="${e.href}" 3313 aria-owns="${t}" 3314 class="absolute inset-0 rounded-8 focusable focusable-inset" 3315 @click="${()=>e.trackingEvent&&u(e.trackingEvent)}" 3316 ></a>`:""} 3317 <div class="flex flex-col gap-4"> 3318 <span class="font-bold s-text" id="${t}">${e.name}</span> 3319 <span class="s-text-subtle">${e.displayPrice}</span> 3320 </div> 3321 <!-- width/height are the intrinsic render size from the image contract 3322 (cars render 800Ã500 = 8:5) so the browser reserves the box and the 3323 image scales to the card width instead of a fixed thumbnail height. 3324 Mirrors the mb-new-car-frontend ModelCard. --> 3325 <img 3326 class="object-cover pb-8 mx-auto w-91/100" 3327 width="800" 3328 height="500" 3329 loading="lazy" 3330 src="${e.image}" 3331 alt="${e.name}" 3332 /> 3333 <!-- All spec headings + values come from the API (highlightedSpecifications, 3334 e.g. "Drivmedel"/"Elektrisk", "Räckvidd (WLTP)"/"440 - 570 km"); the 3335 frontend just renders the pairs. --> 3336 <div class="flex gap-16"> 3337 ${e.highlightedSpecifications?.map(o=>re`<div class="flex flex-col">
3338 <span class="text-s s-text-subtle">${o.label}</span> 3339 <span class="font-bold s-text">${o.value}</span> 3340 </div>`)} 3341 </div> 3342 </article> 3343 </w-card>`})} 3344 </div> 3345 </div>`}};customElements.define("new-car-featured-models",Oe); 3346/*! Bundled license information: 3347 3348@lit/reactive-element/decorators/custom-element.js: 3349@lit/reactive-element/reactive-element.js: 3350@lit/reactive-element/decorators/property.js: 3351@lit/reactive-element/decorators/state.js: 3352@lit/reactive-element/decorators/event-options.js: 3353@lit/reactive-element/decorators/base.js: 3354@lit/reactive-element/decorators/query.js: 3355@lit/reactive-element/decorators/query-all.js: 3356@lit/reactive-element/decorators/query-async.js: 3357@lit/reactive-element/decorators/query-assigned-nodes.js: 3358 (** 3359 * @license 3360 * Copyright 2017 Google LLC 3361 * SPDX-License-Identifier: BSD-3-Clause 3362 *) 3363 3364@lit/reactive-element/css-tag.js: 3365 (** 3366 * @license 3367 * Copyright 2019 Google LLC 3368 * SPDX-License-Identifier: BSD-3-Clause 3369 *) 3370 3371@lit/reactive-element/decorators/query-assigned-elements.js: 3372 (** 3373 * @license 3374 * Copyright 2021 Google LLC 3375 * SPDX-License-Identifier: BSD-3-Clause 3376 *) 3377*/ 3378//# sourceMappingURL=mobility-frontpage.js.map
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.