staticsearch
Advanced tools
@@ -1,1 +0,1 @@ | ||
| :host{--fsize: var(--staticsearch-fontsize, max(16px, 1em));--dmax: var(--staticsearch-maxwidth, 60ch);--dmargin: var(--staticsearch-margin, 3vmin);--dpadding: var(--staticsearch-padding, 2vmin);--sheight: var(--staticsearch-fieldset-height, calc(3em + (2 * var(--dpadding))) );--colback0: var(--staticsearch-color-back, Canvas);--colbord0: var(--staticsearch-color-border, ButtonFace);--colfore0: var(--staticsearch-color-fore0, CanvasText);--colfore1: var(--staticsearch-color-fore1, color-mix(in oklab, CanvasText 80%, Canvas));--colfore2: var(--staticsearch-color-fore2, color-mix(in oklab, CanvasText 60%, Canvas));--collinkd: var(--staticsearch-color-link, color-mix(in oklab, LinkText 80%, CanvasText));--collinkv: var(--staticsearch-color-visited, color-mix(in oklab, VisitedText 80%, CanvasText));--colshad0: var(--staticsearch-color-shadow, #000);--colshad1: var(--staticsearch-color-backdrop, color-mix(in srgb, var(--colshad0), transparent 25%));--colblur0: var(--staticsearch-backdrop-blur, 3px)}template{display:none}*{box-sizing:border-box;font-size:inherit;padding:0;margin:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after,::backdrop{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-behavior:normal!important;scroll-behavior:auto!important}}[part=activate]{color:var(--colfore2);outline:none;&:hover,&:active,&:focus{color:var(--collinkd)}}dialog{position:fixed;font-size:var(--fsize);inline-size:var(--dmax);block-size:100%;max-inline-size:calc(100dvi - (2 * var(--dmargin)));max-block-size:calc(100dvb - (2 * var(--dmargin)));margin:auto;padding:0;color:var(--colfore0);background-color:var(--colback0);border:1px solid var(--colbord0);border-radius:5px;box-shadow:0 2px 4px var(--colshad0);overflow:hidden;transform-origin:50% 0;&,&::backdrop{transition:all .3s ease-in-out;transition-behavior:allow-discrete}&[open]{opacity:1;transform:scale(1);@starting-style{display:block;opacity:.5;transform:scaleX(.5) scaleY(0)}&::backdrop{background-color:var(--colshad1);-webkit-backdrop-filter:blur(var(--colblur0));backdrop-filter:blur(var(--colblur0));@starting-style{background-color:#0000;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}}&:not([open]){display:none;opacity:0;transform:scaleX(.5) scaleY(0)}}[part=close]{position:absolute;inset-inline-end:0;inset-block-start:0;block-size:1.4em;inline-size:1.4em;min-block-size:unset;min-inline-size:unset;padding:0;margin:0;background-color:transparent;border:0 none;cursor:pointer;z-index:3;&:is(:hover,:focus,:active){color:var(--collinkd)}}[part=search]{position:absolute;block-size:var(--sheight);inset-inline:0;inset-block-start:0;padding-inline:var(--dpadding);padding-block-start:var(--dpadding);box-shadow:0 1px 5px var(--colshad0);overflow:hidden;z-index:2;&:focus-within{label,input{color:var(--colfore0)}input{border-color:var(--colfore1)}}}[part=searchlabel]{display:block;font-size:.8em;padding-inline-start:.625em;padding-block-end:.2em;color:var(--colfore1);-webkit-user-select:none;user-select:none}input[part=searchinput]{display:block;inline-size:100%;line-height:1.5;padding-block:.2em;padding-inline:.5em;color:var(--colfore1);background-color:transparent;border:1px solid transparent;border-radius:3px;outline-style:none}[part=results]{position:absolute;inset-inline:0;inset-block-start:var(--sheight);inset-block-end:0;padding:var(--dpadding);overflow:hidden auto;scrollbar-width:thin;scrollbar-color:var(--colfore2) transparent;overscroll-behavior-block:contain;outline:none;&:after{position:fixed;content:"";block-size:3em;inset-inline:var(--dpadding);inset-block-end:0;background:linear-gradient(transparent 0%,var(--colback0) 66%,var(--colback0));pointer-events:none}}[part=searchterm]{font-style:italic;&:before,&:after{content:'"'}}[part=item]{margin-block:1.5em;margin-inline-start:1.5em}[part=title]{font-weight:bolder;line-height:1.2;text-wrap:balance;text-underline-offset:.2em;margin-block-end:.1em}[part=meta]{font-size:.7em;line-height:1.4;color:var(--colfore2)}[part=description]{font-size:.85em;line-height:1.4;text-wrap:pretty;color:var(--colfore1)}a:focus-visible{outline-color:var(--collinkd);outline-style:solid;outline-offset:.2em;outline-width:.2rem}a:link{display:block;text-decoration:none;color:var(--collinkd)}a:visited{color:var(--collinkv)}a:hover,a:focus,a:active{color:var(--collinkd);[part=title]{text-decoration:underline}}[part=poweredby]{position:absolute;inset-inline:var(--dpadding);inset-block-start:auto;inset-block-end:0;font-size:.6em;text-align:end;padding:.5em 0;&:link,&:visited{color:var(--colfore2)}&:hover,&:active,&:focus{color:var(--colfore0)}} | ||
| :host{--fsize: var(--staticsearch-fontsize, max(16px, 1em));--dmax: var(--staticsearch-maxwidth, 60ch);--dmargin: var(--staticsearch-margin, 3vmin);--dpadding: var(--staticsearch-padding, 2vmin);--sheight: var(--staticsearch-fieldset-height, calc(3em + (2 * var(--dpadding))) );--colback0: var(--staticsearch-color-back, Canvas);--colbord0: var(--staticsearch-color-border, ButtonFace);--colfore0: var(--staticsearch-color-fore0, CanvasText);--colfore1: var(--staticsearch-color-fore1, color-mix(in oklab, CanvasText 80%, Canvas));--colfore2: var(--staticsearch-color-fore2, color-mix(in oklab, CanvasText 60%, Canvas));--collinkd: var(--staticsearch-color-link, color-mix(in oklab, LinkText 80%, CanvasText));--collinkv: var(--staticsearch-color-visited, color-mix(in oklab, VisitedText 80%, CanvasText));--colshad0: var(--staticsearch-color-shadow, #000);--colshad1: var(--staticsearch-color-backdrop, color-mix(in srgb, var(--colshad0), transparent 25%));--colblur0: var(--staticsearch-backdrop-blur, 3px)}template{display:none}*{box-sizing:border-box;font-size:inherit;padding:0;margin:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after,::backdrop{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-behavior:normal!important;scroll-behavior:auto!important}}[part=activate]{color:inherit;outline:none}dialog{position:fixed;font-size:var(--fsize);inline-size:var(--dmax);block-size:100%;max-inline-size:calc(100dvi - (2 * var(--dmargin)));max-block-size:calc(100dvb - (2 * var(--dmargin)));margin:auto;padding:0;color:var(--colfore0);background-color:var(--colback0);border:1px solid var(--colbord0);border-radius:5px;box-shadow:0 2px 4px var(--colshad0);overflow:hidden;transform-origin:50% 0;&,&::backdrop{transition:all .3s ease-in-out;transition-behavior:allow-discrete}&[open]{opacity:1;transform:scale(1);@starting-style{display:block;opacity:.5;transform:scaleX(.5) scaleY(0)}&::backdrop{background-color:var(--colshad1);-webkit-backdrop-filter:blur(var(--colblur0));backdrop-filter:blur(var(--colblur0));@starting-style{background-color:#0000;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}}&:not([open]){display:none;opacity:0;transform:scaleX(.5) scaleY(0)}}[part=close]{position:absolute;inset-inline-end:0;inset-block-start:0;block-size:1.4em;inline-size:1.4em;min-block-size:unset;min-inline-size:unset;padding:0;margin:0;background-color:transparent;border:0 none;cursor:pointer;z-index:3;&:is(:hover,:focus,:active){color:var(--collinkd)}}[part=search]{position:absolute;block-size:var(--sheight);inset-inline:0;inset-block-start:0;padding-inline:var(--dpadding);padding-block-start:var(--dpadding);box-shadow:0 1px 5px var(--colshad0);overflow:hidden;z-index:2;&:focus-within{label,input{color:var(--colfore0)}input{border-color:var(--colfore1)}}}[part=searchlabel]{display:block;font-size:.8em;padding-inline-start:.625em;padding-block-end:.2em;color:var(--colfore1);-webkit-user-select:none;user-select:none}input[part=searchinput]{display:block;inline-size:100%;line-height:1.5;padding-block:.2em;padding-inline:.5em;color:var(--colfore1);background-color:transparent;border:1px solid transparent;border-radius:3px;outline-style:none}[part=results]{position:absolute;inset-inline:0;inset-block-start:var(--sheight);inset-block-end:0;padding:var(--dpadding);overflow:hidden auto;scrollbar-width:thin;scrollbar-color:var(--colfore2) transparent;overscroll-behavior-block:contain;outline:none;&:after{position:fixed;content:"";block-size:3em;inset-inline:var(--dpadding);inset-block-end:0;background:linear-gradient(transparent 0%,var(--colback0) 66%,var(--colback0));pointer-events:none}}[part=searchterm]{font-style:italic;&:before,&:after{content:'"'}}[part=item]{margin-block:1.5em;margin-inline-start:1.5em}[part=title]{font-weight:bolder;line-height:1.2;text-wrap:balance;text-underline-offset:.2em;margin-block-end:.1em}[part=meta]{font-size:.7em;line-height:1.4;color:var(--colfore2)}[part=description]{font-size:.85em;line-height:1.4;text-wrap:pretty;color:var(--colfore1)}a:focus-visible{outline-color:var(--collinkd);outline-style:solid;outline-offset:.2em;outline-width:.2rem}a:link{display:block;text-decoration:none;color:var(--collinkd)}a:visited{color:var(--collinkv)}a:hover,a:focus,a:active{color:var(--collinkd);[part=title]{text-decoration:underline}}[part=poweredby]{position:absolute;inset-inline:var(--dpadding);inset-block-start:auto;inset-block-end:0;font-size:.6em;text-align:end;padding:.5em 0;&:link,&:visited{color:var(--colfore2)}&:hover,&:active,&:focus{color:var(--colfore0)}} |
@@ -1,1 +0,1 @@ | ||
| import{staticSearchQuery as h,staticSearchSetQuery as o,staticSearchInput as l,staticSearchResult as n}from"./__SSDIR__/staticsearch-bind.js";var a=class r extends HTMLElement{static path=new URL(import.meta.url).pathname.replace("__FILENAME__","");#t=null;#e=null;#a=null;connectedCallback(){let e=this.firstElementChild;if(this.tabIndex=0,this.attachShadow({mode:"open",delegatesFocus:!0}),!e)return;e.getAttribute("part")||e.setAttribute("part","activate");let s=document.createElement("link");s.rel="stylesheet",s.href=`${r.path}css/component.css`,this.shadowRoot.appendChild(s);let i=this.shadowRoot.appendChild(e);this.#r(),i.tabIndex=0,i.style.cursor="pointer",i.addEventListener("click",t=>this.#s(t)),i.addEventListener("keydown",t=>{(t.key==="Enter"||t.key===" ")&&this.#s(t)}),window.addEventListener("keydown",t=>{t.key==="k"&&(t.ctrlKey||t.metaKey)&&this.#s(t),t.key==="Escape"&&this.#t.open&&!this.#e.value&&this.#i()}),window.addEventListener("click",t=>{!this.#t.open&&t.target.dataset.staticSearch&&this.#s(t)}),h()&&this.#s()}#s(e){e&&e.preventDefault(),this.#t.open?this.#i():(this.#t.showModal(),this.setAttribute("aria-expanded","true"),this.#e.select(),this.#e.focus())}#i(){this.#t.close(),this.removeAttribute("aria-expanded"),o()}#r(){let e=document.createElement("dialog");e.setAttribute("closedby","any"),e.setAttribute("part","dialog"),e.innerHTML=`<form method="dialog"><button part="close"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path xmlns="http://www.w3.org/2000/svg" fill="currentColor" d="M5.3 5.3a1 1 0 0 1 1.4 0l5.3 5.3 5.3-5.3a1 1 0 1 1 1.4 1.4L13.4 12l5.3 5.3a1 1 0 0 1-1.4 1.4L12 13.4l-5.3 5.3a1 1 0 0 1-1.4-1.4l5.3-5.3-5.3-5.3a1 1 0 0 1 0-1.4Z"/></svg></button></form><search part="search"><label for="search" part="searchlabel">${this.getAttribute("label")||"search"}</label><input type="search" id="search" name="q" minlength="2" maxlength="300" part="searchinput" /></search><div part="results"></div><a part="poweredby" href="https://staticsearch.com/">powered by StaticSearch</a>`,this.#t=this.shadowRoot.appendChild(e),this.#e=this.shadowRoot.querySelector("#search"),this.#a=this.shadowRoot.querySelector('[part="results"]'),n(this.#a,{minFound:this.getAttribute("minfound"),minScore:this.getAttribute("minscore"),maxResults:this.getAttribute("maxresults"),highlight:this.hasAttribute("highlight")}),l(this.#e,{fuzzy:this.getAttribute("fuzzy")}),this.#t.addEventListener("close",()=>this.#i()),this.#t.addEventListener("click",s=>{this.#t.open&&s.target===this.#t&&this.#i()})}};customElements.define("static-search",a); | ||
| import{staticSearchQuery as h,staticSearchSetQuery as o,staticSearchInput as l,staticSearchResult as n}from"./__SSDIR__/staticsearch-bind.js";var a=class r extends HTMLElement{static path=new URL(import.meta.url).pathname.replace("__FILENAME__","");#t=null;#e=null;#a=null;connectedCallback(){let e=this.firstElementChild;if(this.tabIndex=0,this.attachShadow({mode:"open",delegatesFocus:!0}),!e)return;e.getAttribute("part")||e.setAttribute("part","activate");let s=document.createElement("link");s.rel="stylesheet",s.href=`${r.path}css/component.css`,this.shadowRoot.appendChild(s);let i=this.shadowRoot.appendChild(e);this.#r(),i.tabIndex=0,i.style.cursor="pointer",i.addEventListener("click",t=>this.#s(t)),i.addEventListener("keydown",t=>{(t.key==="Enter"||t.key===" ")&&this.#s(t)}),window.addEventListener("keydown",t=>{t.key==="k"&&(t.ctrlKey||t.metaKey)&&this.#s(t),t.key==="Escape"&&this.#t.open&&!this.#e.value&&this.#i()}),window.addEventListener("click",t=>{!this.#t.open&&t.target.dataset.staticSearch&&this.#s(t)}),h()&&this.#s()}#s(e){e&&e.preventDefault(),this.#t.open?this.#i():(this.#t.showModal(),this.setAttribute("aria-expanded","true"),this.#e.select(),this.#e.focus())}#i(){this.#t.close(),this.removeAttribute("aria-expanded"),o()}#r(){let e=document.createElement("dialog");e.setAttribute("closedby","any"),e.setAttribute("part","dialog"),e.innerHTML=`<form method="dialog"><button part="close"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path xmlns="http://www.w3.org/2000/svg" fill="currentColor" d="M5.3 5.3a1 1 0 0 1 1.4 0l5.3 5.3 5.3-5.3a1 1 0 1 1 1.4 1.4L13.4 12l5.3 5.3a1 1 0 0 1-1.4 1.4L12 13.4l-5.3 5.3a1 1 0 0 1-1.4-1.4l5.3-5.3-5.3-5.3a1 1 0 0 1 0-1.4Z"/></svg></button></form><search part="search"><label for="search" part="searchlabel">${this.getAttribute("label")||"search"}</label><input type="search" id="search" name="q" minlength="2" maxlength="300" part="searchinput" /></search><div part="results"></div><a part="poweredby" href="https://staticsearch.com/">powered by StaticSearch __RELEASE__</a>`,this.#t=this.shadowRoot.appendChild(e),this.#e=this.shadowRoot.querySelector("#search"),this.#a=this.shadowRoot.querySelector('[part="results"]'),n(this.#a,{minFound:this.getAttribute("minfound"),minScore:this.getAttribute("minscore"),maxResults:this.getAttribute("maxresults"),highlight:this.hasAttribute("highlight")}),l(this.#e,{fuzzy:this.getAttribute("fuzzy")}),this.#t.addEventListener("close",()=>this.#i()),this.#t.addEventListener("click",s=>{this.#t.open&&s.target===this.#t&&this.#i()})}};customElements.define("static-search",a); |
+1
-0
@@ -344,2 +344,3 @@ import pkg from './package.json' with { type: 'json' }; | ||
| .replaceAll('__AGENT__', this.#agent) | ||
| .replaceAll('__RELEASE__', pkg.version) | ||
| .replaceAll('__FILENAME__', jsFile) | ||
@@ -346,0 +347,0 @@ .replaceAll('__VERSION__', version) |
+1
-1
@@ -39,3 +39,3 @@ // file utilities | ||
| await access(path, fsConstants.W_OK); | ||
| fileInfo.canWrite = true; | ||
| info.canWrite = true; | ||
| } | ||
@@ -42,0 +42,0 @@ catch (e) { |
+9
-3
| { | ||
| "name": "staticsearch", | ||
| "version": "0.8.0", | ||
| "version": "0.8.1", | ||
| "description": "Simple static site search system.", | ||
@@ -19,2 +19,5 @@ "type": "module", | ||
| ], | ||
| "engines": { | ||
| "node": ">= 22.0.0" | ||
| }, | ||
| "keywords": [ | ||
@@ -52,9 +55,12 @@ "static", | ||
| "concol": "2.1.1", | ||
| "node-html-parser": "7.1.0", | ||
| "node-html-parser": "9.0.0", | ||
| "perfpro": "0.2.0" | ||
| }, | ||
| "devDependencies": { | ||
| "esbuild": "0.28.0", | ||
| "esbuild": "0.28.1", | ||
| "pixdb": "1.0.2" | ||
| }, | ||
| "allowScripts": { | ||
| "esbuild@0.28.1": true | ||
| } | ||
| } |
138155
0.07%1146
0.09%+ Added
+ Added
- Removed
- Removed
Updated