1import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,r as n}from"./framework-qeFN-NPv.js";import{et as r}from"./vinext-DubluWl_.js";import{t as i}from"./landing-themes-C2mxqu9p.js";import{t as a}from"./nav-BJLTYQez.js";var o=e(t(),1),s=n();function c({open:e,onClose:t}){let n=r(),[c,l]=(0,o.useState)(``),[u,d]=(0,o.useState)(0),f=(0,o.useRef)(null),p=(0,o.useRef)(null),m=(0,o.useRef)(null),h=(0,o.useRef)(null),g=a.map(({label:e,href:t})=>({type:`nav`,label:e,href:t})),_=i.map(e=>({type:`theme`,id:e.id,name:e.name,description:e.description,href:`/themes/${e.id}`})),v=[...g,..._],y=c.toLowerCase().trim(),b=v.filter(e=>{if(e.type===`nav`){let t=a.find(t=>t.href===e.href&&t.label===e.label);return`${e.label} ${t?.keywords??``}`.toLowerCase().includes(y)}return`${e.name} ${e.description}`.toLowerCase().includes(y)}),x=(0,o.useCallback)(e=>{t(),l(``),d(0),e.href.startsWith(`/#`)?window.location.href=e.href:n.push(e.href)},[t,n]),S=Math.min(u,Math.max(0,b.length-1));return(0,o.useEffect)(()=>{let e=f.current;e&&e.children[S]?.scrollIntoView({block:`nearest`})},[S,b.length]),(0,o.useEffect)(()=>{if(!e)return;h.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let t=document.body.style.overflow;document.body.style.overflow=`hidden`;let n=window.requestAnimationFrame(()=>m.current?.focus());return()=>{window.cancelAnimationFrame(n),document.body.style.overflow=t,h.current?.focus()}},[e]),e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`div`,{role:`presentation`,style:{position:`fixed`,inset:0,background:`rgba(18,33,26,0.22)`,backdropFilter:`blur(5px)`,zIndex:1998,animation:`commandPaletteFadeIn 0.15s ease-out`},onClick:t,onKeyDown:()=>{}}),(0,s.jsxs)(`div`,{role:`dialog`,"aria-label":`Search themes and pages`,"aria-modal":`true`,className:`command-palette-dialog`,ref:p,style:{position:`fixed`,top:`20%`,left:`50%`,transform:`translateX(-50%)`,width:`min(560px, calc(100vw - 32px))`,maxWidth:`560px`,maxHeight:`min(640px, calc(100dvh - 32px))`,background:`#fff`,border:`1px solid var(--mk-border, #d9e5dc)`,borderRadius:`16px`,boxShadow:`var(--mk-shadow, 0 18px 60px rgba(16,24,20,0.12))`,zIndex:1999,overflow:`hidden`},onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),t();return}if(e.key===`ArrowDown`){e.preventDefault(),d(e=>(e+1)%Math.max(1,b.length));return}if(e.key===`ArrowUp`){e.preventDefault(),d(e=>(e-1+b.length)%Math.max(1,b.length));return}if(e.key===`Enter`&&b[S]){e.preventDefault(),x(b[S]);return}if(e.key===`Tab`){let t=p.current?.querySelectorAll(`input, button:not([disabled])`);if(!t?.length)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}},children:[(0,s.jsxs)(`div`,{style:{padding:`12px`,borderBottom:`1px solid var(--mk-border, #d9e5dc)`,display:`flex`,alignItems:`center`,gap:`10px`},children:[(0,s.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,style:{color:`var(--mk-text-muted, #607168)`,flexShrink:0},children:[(0,s.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,s.jsx)(`path`,{d:`m21 21-4.35-4.35`})]}),(0,s.jsx)(`input`,{ref:m,type:`text`,placeholder:`Search themes and pages...`,value:c,onChange:e=>l(e.target.value),autoFocus:!0,style:{flex:1,background:`transparent`,border:`none`,color:`var(--mk-ink, #12211a)`,fontSize:`15px`,outline:`none`},"aria-label":`Search`}),(0,s.jsx)(`kbd`,{style:{fontSize:`11px`,color:`var(--mk-text-muted, #607168)`,padding:`2px 6px`,background:`var(--mk-bg-soft, #eef4ee)`,borderRadius:`4px`},children:`ESC`})]}),(0,s.jsx)(`div`,{ref:f,style:{maxHeight:`320px`,overflow:`auto`,padding:`8px`},children:b.length===0?(0,s.jsxs)(`div`,{style:{padding:`24px`,textAlign:`center`,color:`var(--mk-text-muted, #607168)`,fontSize:`14px`},children:[`No results for "`,c,`"`]}):b.map((e,t)=>{let n=e.type===`nav`?e.label:e.name;return(0,s.jsxs)(`button`,{type:`button`,style:{width:`100%`,display:`flex`,alignItems:`center`,gap:`12px`,padding:`10px 12px`,border:`none`,borderRadius:`8px`,background:t===u?`rgba(22, 163, 74, 0.1)`:`transparent`,color:`var(--mk-ink, #12211a)`,fontSize:`14px`,textAlign:`left`,cursor:`pointer`},onMouseEnter:()=>d(t),onClick:()=>x(e),children:[e.type===`theme`&&(0,s.jsx)(`span`,{style:{width:12,height:12,borderRadius:4,background:e.type===`theme`?i.find(t=>
1t.id===e.id)?.color??`var(--mk-text-muted, #607168)`:`var(--mk-text-muted, #607168)`,flexShrink:0}}),e.type===`nav`&&(0,s.jsx)(`span`,{style:{width:12,height:12,flexShrink:0}}),n]},e.type===`nav`?e.href:e.id)})}),(0,s.jsxs)(`div`,{style:{padding:`8px 12px`,borderTop:`1px solid var(--mk-border, #d9e5dc)`,fontSize:`12px`,color:`var(--mk-text-muted, #607168)`},children:[(0,s.jsx)(`kbd`,{style:{padding:`2px 4px`,background:`var(--mk-bg-soft, #eef4ee)`,borderRadius:`2px`},children:`Up/down`}),` navigate`,` / `,(0,s.jsx)(`kbd`,{style:{padding:`2px 4px`,background:`var(--mk-bg-soft, #eef4ee)`,borderRadius:`2px`},children:`Enter`}),` select`]})]}),(0,s.jsx)(`style`,{children:` 2 @keyframes commandPaletteFadeIn { from { opacity: 0; } to { opacity: 1; } } 3 @keyframes commandPaletteScaleIn { 4 from { opacity: 0; transform: translate3d(-50%, -8px, 0) scale(0.96); } 5 to { opacity: 1; transform: translate3d(-50%, 0, 0) scale(1); } 6 } 7 .command-palette-dialog { 8 transform: translate3d(-50%, 0, 0); 9 transform-origin: center top; 10 will-change: transform, opacity; 11 animation: commandPaletteScaleIn 0.2s cubic-bezier(0.22, 1, 0.36, 1); 12 } 13 @media (prefers-reduced-motion: reduce) { 14 .command-palette-dialog, 15 .command-palette-dialog + * { 16 animation: none; 17 } 18 } 19 `})]}):null}function l(){let[e,t]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`k`&&(e.preventDefault(),t(!0))},n=()=>t(!0);return window.addEventListener(`keydown`,e),window.addEventListener(`open-command-palette`,n),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`open-command-palette`,n)}},[]),(0,s.jsx)(c,{open:e,onClose:()=>t(!1)})}export{l as CommandPaletteWrapper};
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.