PageSourceSearch

https://www.panuluukka.fi/assets/footer-Fv3pOMT_.js

js panuluukka.fi collected 2026-10-02 15:48:09 UTC 14,897 bytes, 1 lines download raw bytes

1import{M as C,N as q,s as E,r as i,d as M,j as e,P as A,L as l,Q as w}from"./index-C5sfG0w9.js";import{c as h}from"./createLucideIcon-WrKzbD5m.js";import{L as K}from"./loader-circle-ChMbFRMq.js";import{X as v}from"./x-CYvIMcVT.js";const T=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],N=h("arrow-right",T);const R=[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]],O=h("linkedin",R);const z=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],F=h("mail",z);const H=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],$=h("menu",H);const D=[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]],I=h("phone",D);const J=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],P=h("search",J),Y="/__l5e/assets-v1/d5216ebb-6e48-4aa5-8894-5b38f9f2df8e/panu-logo.webp",U={url:Y},B=C({method:"POST"}).handler(q("0b01cdbef15e1095ea03091f893742f2178d9a1bdadb1d15c5d7228fecc7a9e5")),Q={pillar:"Pilari",concept:"Sanasto",faq:"UKK",blog:"Blogi",podcast:"Podcast",podcast_article:"Podcast-artikkeli",service:"Palvelu",book:"Kirja",page:"Sivu"},le=["pillar","blog","podcast","podcast_article","faq","concept","service","book","page"];async function V(n,s,d=20,r=0){const u=n.trim().slice(0,100);if(!u)return[];const{data:c,error:m}=await E.rpc("search_content",{q:u,filter_kind:s??null,result_limit:d,result_offset:r});if(m)throw m;return c??[]}async function ne(n){const s=n.trim().slice(0,100);if(!s)return{};const{data:d,error:r}=await E.rpc("search_content_counts",{q:s});if(r)throw r;const u={};for(const c of d??[])u[c.kind]=Number(c.cnt);return u}async function S(n){try{await B({data:n})}catch{}}function X({open:n,onClose:s}){const[d,r]=i.useState(""),[u,c]=i.useState([]),[m,p]=i.useState(!1),[t,o]=i.useState(null),j=i.useRef(null),y=M();i.useEffect(()=>{n?setTimeout(()=>j.current?.focus(),50):(r(""),c([]),o(null))},[n]),i.useEffect(()=>{if(!n)return;const a=k=>{k.key==="Escape"&&s()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[n,s]);const x=d.trim();i.useEffect(()=>{if(!n)return;if(x.length<3){c([]),o(null);return}const a=new AbortController;p(!0);const k=setTimeout(async()=>{try{const f=await V(x,null,8,0);if(a.signal.aborted)return;c(f),o(null),S({query:x,filter:null,results_count:f.length})}catch{if(a.signal.aborted)return;o("Haku epäonnistui. Yritä uudelleen."),c([])}finally{a.signal.aborted||p(!1)}},400);return()=>{a.abort(),clearTimeout(k)}},[x,n]);const g=()=>{x&&(y({to:"/haku",search:{q:x}}),s())},b=i.useMemo(()=>u,[u]);return n?e.jsxs("div",{className:"fixed inset-0 z-[70]",role:"dialog","aria-modal":"true","aria-label":"Haku",children:[e.jsx("div",{className:"absolute inset-0 bg-black/70",onClick:s,"aria-hidden":"true"}),e.jsxs("div",{className:"relative mx-auto mt-0 flex h-full max-h-[100dvh] w-full flex-col bg-panu-black text-panu-cream sm:mt-16 sm:h-auto sm:max-h-[80vh] sm:max-w-3xl sm:rounded-sm sm:shadow-2xl",children:[e.jsxs("form",{onSubmit:a=>{a.preventDefault(),g()},className:"flex items-center gap-3 border-b border-white/10 px-4 py-3 sm:px-6",children:[e.jsx(P,{className:"h-5 w-5 shrink-0 text-panu-yellow"}),e.jsx("input",{ref:j,value:d,onChange:a=>r(a.target.value),placeholder:"Mitä etsit?","aria-label":"Hakusana",maxLength:100,className:"flex-1 bg-transparent text-lg placeholder-panu-cream/40 focus:outline-none"}),m&&e.jsx(K,{className:"h-4 w-4 animate-spin text-panu-cream/60","aria-hidden":"true"}),e.jsx("button",{type:"button",onClick:s,className:"inline-flex h-9 w-9 items-center justify-center border border-white/20 text-panu-cream hover:border-panu-yellow","aria-label":"Sulje haku",children:e.jsx(v,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"max-h-[calc(100dvh-64px)] flex-1 overflow-y-auto px-2 py-2 sm:max-h-[60vh] sm:px-4",children:[x.length<3&&e.jsx("p",{className:"px-4 py-6 text-sm text-panu-cream/60",children:"Kirjoita vähintään kolme merkkiä, tai paina Enter avataksesi hakusivun."}),t&&e.jsx("p",{className:"px-4 py-6 text-sm text-panu-yellow",children:t}),x.length>=3&&!m&&!t&&b.length===0&&e.jsx("p",{className:"px-4 py-6 text-sm text-panu-cream/60",children:"Haullasi ei löytynyt sisältöjä. Kokeile toista sanaa."}),e.jsx("ul",{className:"divide-y divide-white/5",children:b.map(a=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>{S({query:x,filter:null,results_count:b.length,clicked_url:a.url}),y({to:a.url}),s()},className:"group flex w-full flex-col gap-1 px-4 py-3 text-left transition hover:bg-white/5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[10px] uppercase tracking-[0.16em] text-panu-yellow",children:Q[a.kind]??a.category??""}),a.subtitle&&e.jsxs("span",{className:"text-[11px] text-panu-cream/50",children:["· ",a.subtitle]})]}),e.jsx("div",{className:"font-display text-base text-panu-cream group-hover:text-panu-yellow",children:a.title}),a.headline&&e.jsx("p",{className:"text-sm text-panu-cream/70 [&>mark]:bg-panu-yellow/30 [&>mark]:text-panu-cream",dangerouslySetInnerHTML:{__html:a.headline}})]})},a.row_id))}),x.length>=3&&b.length>0&&e.jsx("div",{className:"px-4 py-3 text-center",children:e.jsx("button",{onClick:g,className:"text-xs uppercase tracking-[0.16em] text-panu-yellow hover:underline",children:"Näytä kaikki tulokset →"})})]})]})]}):null}const _=[{to:"/yrityskulttuuri",label:"Yrityskulttuuri"},{to:"/johtajuus",label:"Johtajuus"},{to:"/tulevaisuus",label:"Tulevaisuus"},{to:"/biografia",label:"Panusta"}],G=[{to:"/kirjat",label:"Kirjat"},{to:"/podcast",label:"Podcastit"},{to:"/blogi",label:"Kirjoitukset"}],W=[{to:"/puhuja",label:"Puheenvuorot"},{to:"/johtajien-lukupiiri",label:"Johtajien lukupiiri"}],L=[{slug:"kulttuurikuiskaaja",label:"Chättibotti"},{slug:"arvomme",label:"Arvomme.fi"}];function Z(){return e.jsx(l,{to:"/",className:"inline-flex items-center","aria-label":"Panu Luukka — etusivu",children:e.jsx("img",{src:U.url,alt:"Panu Luukka — yrityskulttuurin ja johtajuuden asiantuntija",className:"h-11 sm:h-12 w-auto select-none",draggable:!1})})}function ie(){const[n,s]=i.useState(!1),[d,r]=i.useState(!1),{data:u}=A();i.useEffect(()=>{const t=o=>{(o.metaKey||o.ctrlKey)&&o.key.toLowerCase()==="k"&&(o.preventDefault(),r(j=>!j))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[]);const c=L.map(t=>({slug:t.slug,name:t.label})),m=(u??[]).filter(t=>!L.some(o=>o.slug===t.slug)),p=[...c,...m];return e.jsxs(e.Fragment,{children:[e.jsx("header",{className:"sticky top-0 z-50 h-[68px] border-b border-white/10 bg-panu-black text-panu-cream sm:h-[72px]",children:e.jsxs("div",{className:"mx-auto flex h-full max-w-[1280px] items-center justify-between gap-4 px-4 sm:px-6 lg:px-8",children:[e.jsx(Z,{}),e.jsx("nav",{className:"hidden lg:flex items-center gap-6",children:_.map(t=>e.jsx(l,{to:t.to,className:"text-[13px] uppercase tracking-[0.14em] font-semibold text-panu-cream/85 transition hover:text-panu-yellow",activeProps:{className:"text-[13px] uppercase tracking-[0.14em] font-semibold text-panu-yellow"},children:t.label},t.to))}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(l,{to:"/ota-yhteytta",onClick:()=>w("cta_click",{label:"Ota yhteyttä",location:"header"}),className:"hidden sm:inline-flex items-center gap-2 bg-panu-yellow px-5 py-2.5 text-sm font-bold uppercase tracking-widest text-panu-black transition hover:brightness-95",children:["Ota yhteyttä ",e.jsx(N,{className:"h-4 w-4"})]}),e.jsx("button",{type:"button",onClick:()=>r(!0),"aria-label":"Avaa haku",className:"inline-flex h-10 w-10 items-center justify-center border border-white/20 text-panu-cream hover:border-panu-yellow",children:e.jsx(P,{className:"h-5 w-5"})}),e.jsx("button",{onClick:()=>s(!n),className:"inline-flex h-10 w-10 items-center justify-center border border-white/20 text-panu-cream hover:border-panu-yellow","aria-label":n?"Sulje valikko":"Avaa valikko","aria-expanded":n,children:n?e.jsx(v,{className:"h-5 w-5"}):e.jsx($,{className:"h-5 w-5"})})]})]})}),n&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-x-0 bottom-0 top-[68px] z-30 bg-black/60 sm:top-[72px]",onClick:()=>s(!1),"aria-hidden":"true"}),e.jsxs("div",{className:"fixed bottom-0 right-0 top-[68px] z-40 w-full max-w-[320px] overflow-y-auto border-l border-white/10 bg-panu-black shadow-2xl sm:top-[72px]",children:[e.jsx("div",{className:"flex items-center justify-end px-4 py-3",children:e.jsx("button",{onClick:()=>s(!1),className:"inline-flex h-10 w-10 items-center justify-center border border-white/20 text-panu-cream hover:border-panu-yellow","aria-label":"Sulje valikko",children:e.jsx(v,{className:"h-5 w-5"})})}),e.jsxs("nav",{className:"flex flex-col gap-1 px-4 py-2",children:[e.jsx("div",{className:"lg:hidden flex flex-col gap-1 pb-3 mb-3 border-b border-white/10",children:_.map(t=>e.jsx(l,{to:t.to,onClick:()=>s(!1),className:"px-3 py-3 text-base uppercase tracking-[0.14em] font-semibold text-panu-cream/85 hover:text-panu-yellow",children:t.label},t.to))}),G.map(t=>e.jsx(l,{to:t.to,onClick:()=>s(!1),className:"px-3 py-3 text-base uppercase tracking-[0.14em] font-semibold text-panu-cream/85 hover:text-panu-yellow",children:t.label},t.to)),e.jsx(l,{to:"/miksi-panu",onClick:()=>s(!1),className:"px-3 py-3 text-base uppercase tracking-[0.14em] font-semibold text-panu-cream/85 hover:text-panu-yellow",children:"Miksi Panu?"}),e.jsxs("div",{className:"mt-3 pt-3 border-t border-white/10",children:[e.jsx("div",{className:"px-3 pb-2 text-[11px] uppercase tracking-[0.18em] font-semibold text-panu-cream/50",children:"Palvelut"}),W.map(t=>e.jsx(l,{to:t.to,onClick:()=>s(!1),className:"block px-3 py-3 text-base uppercase tracking-[0.14em] font-semibold text-panu-cream/85 hover:text-panu-yellow",children:t.label},t.to)),p.map(t=>e.jsx(l,{to:"/palvelut/$slug",params:{slug:t.slug},onClick:()=>s(!1),className:"block px-3 py-3 text-base uppercase tracking-[0.14em] font-semibold text-panu-cream/85 hover:text-panu-yellow",children:t.name},t.slug))]}),e.jsxs(l,{to:"/ota-yhteytta",onClick:()=>{w("cta_click",{label:"Ota yhteyttä",location:"mobile-menu"}),s(!1)},className:"mt-3 inline-flex items-center justify-center gap-2 bg-panu-yellow px-4 py-3 text-sm font-bold uppercase tracking-widest text-panu-black",children:["Ota yhteyttä ",e.jsx(N,{className:"h-4 w-4"})]})]})]})]}),e.jsx(X,{open:d,onClose:()=>r(!1)})]})}function re(){return e.jsxs("footer",{className:"mt-24 border-t border-border bg-primary text-primary-foreground",children:[e.jsxs("div",{className:"mx-auto grid max-w-7xl gap-10 px-4 py-16 sm:px-6 lg:grid-cols-5 lg:px-8",children:[e.jsxs("div",{className:"lg:col-span-2",children:[e.jsx("div",{className:"font-display text-3xl text-panu-cream",children:"Panu Luukka"}),e.jsx("p",{className:"mt-4 text-sm text-panu-cream/70 max-w-sm leading-relaxed",children:"Suomen virallinen #kulttuurikuiskaaja. Autan organisaatioita menestymään tulevaisuudessa."}),e.jsxs("ul",{className:"mt-6 space-y-2.5 text-sm",children:[e.jsx("li",{children:e.jsxs("a",{href:"tel:+358405300889",className:"inline-flex items-center gap-2.5 text-panu-cream/85 hover:text-accent transition",children:[e.jsx(I,{className:"h-4 w-4","aria-hidden":"true"}),e.jsx("span",{children:"040 5300 889"})]})}),e.jsx("li",{children:e.jsxs("a",{href:"mailto:[email protected]",className:"inline-flex items-center gap-2.5 text-panu-cream/85 hover:text-accent transition",children:[e.jsx(F,{className:"h-4 w-4","aria-hidden":"true"}),e.jsx("span",{children:"[email protected]"})]})}),e.jsx("li",{children:e.jsxs("a",{href:"https://www.linkedin.com/in/panuluukka/",target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2.5 text-panu-cream/85 hover:text-accent transition",children:[e.jsx(O,{className:"h-4 w-4","aria-hidden":"true"}),e.jsx("span",{children:"@panuluukka"})]})})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"eyebrow text-panu-cream/60",children:"PANUN TEEMAT"}),e.jsxs("ul",{className:"mt-4 space-y-2.5 text-sm",children:[e.jsx("li",{children:e.jsx(l,{to:"/yrityskulttuuri",className:"hover:text-accent transition",children:"Yrityskulttuuri"})}),e.jsx("li",{children:e.jsx(l,{to:"/johtajuus",className:"hover:text-accent transition",children:"Johtajuus"})}),e.jsx("li",{children:e.jsx(l,{to:"/tulevaisuus",className:"hover:text-accent transition",children:"Tulevaisuus"})})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"eyebrow text-panu-cream/60",children:"SISÄLLÖT"}),e.jsxs("ul",{className:"mt-4 space-y-2.5 text-sm",children:[e.jsx("li",{children:e.jsx(l,{to:"/kirjat",className:"hover:text-accent transition",children:"Kirjat"})}),e.jsx("li",{children:e.jsx(l,{to:"/podcast",className:"hover:text-accent transition",children:"Podcastit"})}),e.jsx("li",{children:e.jsx(l,{to:"/blogi",className:"hover:text-accent transition",children:"Kirjoitukset"})}),e.jsx("li",{children:e.jsx(l,{to:"/haku",className:"hover:text-accent transition",children:"Haku"})})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"eyebrow text-panu-cream/60",children:"PALVELUT"}),e.jsxs("ul",{className:"mt-4 space-y-2.5 text-sm",children:[e.jsx("li",{children:e.jsx(l,{to:"/puhuja",className:"hover:text-accent transition",children:"Puheenvuorot"})}),e.jsx("li",{children:e.jsx(l,{to:"/johtajien-lukupiiri",className:"hover:text-accent transition",children:"Johtajien lukupiiri"})}),e.jsx("li",{children:e.jsx(l,{to:"/palvelut/$slug",params:{slug:"kulttuurikuiskaaja"},className:"hover:text-accent transition",children:"Chättibotti"})}),e.jsx("li",{children:e.jsx(l,{to:"/varaa",className:"hover:text-accent transition",children:"Varaa puheenvuoro"})})]})]})]}),e.jsx("div",{className:"border-t border-panu-cream/10",children:e.jsxs("div",{className:"mx-auto flex max-w-7xl flex-wrap items-center justify-between gap-3 px-4 py-5 text-xs text-panu-cream/60 sm:px-6 lg:px-8",children:[e.jsxs("span",{children:["© ",new Date().getFullYear()," Panu Luukka"]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("button",{type:"button",onClick:()=>window.dispatchEvent(new Event("open-cookie-banner")),className:"hover:text-accent transition",children:"Evästeet"}),e.jsx("span",{className:"hidden sm:inline",children:"Organisaatiosi tulevaisuuskyvykkyys on sen kulttuurissa ja ihmisissä."})]})]})})]})}export{N as A,le as F,Q as K,O as L,ie as S,re as a,ne as b,P as c,S as l,V as s};

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.