diff --git a/docs/assets/index-KxHK2qzb.js b/docs/assets/index-QZ5B-L_n.js
similarity index 74%
rename from docs/assets/index-KxHK2qzb.js
rename to docs/assets/index-QZ5B-L_n.js
index 583a5bb..787ce60 100644
--- a/docs/assets/index-KxHK2qzb.js
+++ b/docs/assets/index-QZ5B-L_n.js
@@ -1,5 +1,5 @@
-var mt=Object.defineProperty;var bt=(s,t,e)=>t in s?mt(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var y=(s,t,e)=>(bt(s,typeof t!="symbol"?t+"":t,e),e);(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))e(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const r of n.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&e(r)}).observe(document,{childList:!0,subtree:!0});function t(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerPolicy&&(n.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?n.credentials="include":i.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function e(i){if(i.ep)return;i.ep=!0;const n=t(i);fetch(i.href,n)}})();function I(s){return Array.isArray?Array.isArray(s):at(s)==="[object Array]"}const Lt=1/0;function Et(s){if(typeof s=="string")return s;let t=s+"";return t=="0"&&1/s==-Lt?"-0":t}function yt(s){return s==null?"":Et(s)}function x(s){return typeof s=="string"}function ot(s){return typeof s=="number"}function xt(s){return s===!0||s===!1||Mt(s)&&at(s)=="[object Boolean]"}function ht(s){return typeof s=="object"}function Mt(s){return ht(s)&&s!==null}function _(s){return s!=null}function H(s){return!s.trim().length}function at(s){return s==null?s===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(s)}const It="Incorrect 'index' type",At=s=>`Invalid value for key ${s}`,vt=s=>`Pattern length exceeds max of ${s}.`,wt=s=>`Missing ${s} property in key`,kt=s=>`Property 'weight' in key '${s}' must be a positive integer`,Z=Object.prototype.hasOwnProperty;class St{constructor(t){this._keys=[],this._keyMap={};let e=0;t.forEach(i=>{let n=lt(i);this._keys.push(n),this._keyMap[n.id]=n,e+=n.weight}),this._keys.forEach(i=>{i.weight/=e})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function lt(s){let t=null,e=null,i=null,n=1,r=null;if(x(s)||I(s))i=s,t=q(s),e=V(s);else{if(!Z.call(s,"name"))throw new Error(wt("name"));const o=s.name;if(i=o,Z.call(s,"weight")&&(n=s.weight,n<=0))throw new Error(kt(o));t=q(o),e=V(o),r=s.getFn}return{path:t,id:e,weight:n,src:i,getFn:r}}function q(s){return I(s)?s:s.split(".")}function V(s){return I(s)?s.join("."):s}function Nt(s,t){let e=[],i=!1;const n=(r,o,c)=>{if(_(r))if(!o[c])e.push(r);else{let h=o[c];const a=r[h];if(!_(a))return;if(c===o.length-1&&(x(a)||ot(a)||xt(a)))e.push(yt(a));else if(I(a)){i=!0;for(let l=0,f=a.length;ls.score===t.score?s.idx{this._keysMap[e.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,x(this.docs[0])?this.docs.forEach((t,e)=>{this._addString(t,e)}):this.docs.forEach((t,e)=>{this._addObject(t,e)}),this.norm.clear())}add(t){const e=this.size();x(t)?this._addString(t,e):this._addObject(t,e)}removeAt(t){this.records.splice(t,1);for(let e=t,i=this.size();e{let o=n.getFn?n.getFn(t):this.getFn(t,n.path);if(_(o)){if(I(o)){let c=[];const h=[{nestedArrIndex:-1,value:o}];for(;h.length;){const{nestedArrIndex:a,value:l}=h.pop();if(_(l))if(x(l)&&!H(l)){let f={v:l,i:a,n:this.norm.get(l)};c.push(f)}else I(l)&&l.forEach((f,d)=>{h.push({nestedArrIndex:d,value:f})})}i.$[r]=c}else if(x(o)&&!H(o)){let c={v:o,n:this.norm.get(o)};i.$[r]=c}}}),this.records.push(i)}toJSON(){return{keys:this.keys,records:this.records}}}function ut(s,t,{getFn:e=u.getFn,fieldNormWeight:i=u.fieldNormWeight}={}){const n=new X({getFn:e,fieldNormWeight:i});return n.setKeys(s.map(lt)),n.setSources(t),n.create(),n}function Ft(s,{getFn:t=u.getFn,fieldNormWeight:e=u.fieldNormWeight}={}){const{keys:i,records:n}=s,r=new X({getFn:t,fieldNormWeight:e});return r.setKeys(i),r.setIndexRecords(n),r}function F(s,{errors:t=0,currentLocation:e=0,expectedLocation:i=0,distance:n=u.distance,ignoreLocation:r=u.ignoreLocation}={}){const o=t/s.length;if(r)return o;const c=Math.abs(i-e);return n?o+c/n:c?1:o}function Dt(s=[],t=u.minMatchCharLength){let e=[],i=-1,n=-1,r=0;for(let o=s.length;r=t&&e.push([i,n]),i=-1)}return s[r-1]&&r-i>=t&&e.push([i,r-1]),e}const O=32;function jt(s,t,e,{location:i=u.location,distance:n=u.distance,threshold:r=u.threshold,findAllMatches:o=u.findAllMatches,minMatchCharLength:c=u.minMatchCharLength,includeMatches:h=u.includeMatches,ignoreLocation:a=u.ignoreLocation}={}){if(t.length>O)throw new Error(vt(O));const l=t.length,f=s.length,d=Math.max(0,Math.min(i,f));let p=r,g=d;const m=c>1||h,S=m?Array(f):[];let M;for(;(M=s.indexOf(t,g))>-1;){let b=F(t,{currentLocation:M,expectedLocation:d,distance:n,ignoreLocation:a});if(p=Math.min(b,p),g=M+l,m){let A=0;for(;A=J;L-=1){let P=L-1,Q=e[s.charAt(P)];if(m&&(S[P]=+!!Q),C[L]=(C[L+1]<<1|1)&Q,b&&(C[L]|=(R[L+1]|R[L])<<1|1|R[L+1]),C[L]&_t&&(N=F(t,{errors:b,currentLocation:P,expectedLocation:d,distance:n,ignoreLocation:a}),N<=p)){if(p=N,g=P,g<=d)break;J=Math.max(1,2*d-g)}}if(F(t,{errors:b+1,currentLocation:d,expectedLocation:d,distance:n,ignoreLocation:a})>p)break;R=C}const K={isMatch:g>=0,score:Math.max(.001,N)};if(m){const b=Dt(S,c);b.length?h&&(K.indices=b):K.isMatch=!1}return K}function Kt(s){let t={};for(let e=0,i=s.length;e{this.chunks.push({pattern:d,alphabet:Kt(d),startIndex:p})},f=this.pattern.length;if(f>O){let d=0;const p=f%O,g=f-p;for(;d{const{isMatch:M,score:R,indices:N}=jt(t,g,m,{location:n+S,distance:r,threshold:o,findAllMatches:c,minMatchCharLength:h,includeMatches:i,ignoreLocation:a});M&&(d=!0),f+=R,M&&N&&(l=[...l,...N])});let p={isMatch:d,score:d?f/this.chunks.length:1};return d&&i&&(p.indices=l),p}}class k{constructor(t){this.pattern=t}static isMultiMatch(t){return tt(t,this.multiRegex)}static isSingleMatch(t){return tt(t,this.singleRegex)}search(){}}function tt(s,t){const e=s.match(t);return e?e[1]:null}class Bt extends k{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){const e=t===this.pattern;return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}}class Ht extends k{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){const i=t.indexOf(this.pattern)===-1;return{isMatch:i,score:i?0:1,indices:[0,t.length-1]}}}class Vt extends k{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){const e=t.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}}class Wt extends k{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){const e=!t.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}}class Ut extends k{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){const e=t.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[t.length-this.pattern.length,t.length-1]}}}class zt extends k{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){const e=!t.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}}class dt extends k{constructor(t,{location:e=u.location,threshold:i=u.threshold,distance:n=u.distance,includeMatches:r=u.includeMatches,findAllMatches:o=u.findAllMatches,minMatchCharLength:c=u.minMatchCharLength,isCaseSensitive:h=u.isCaseSensitive,ignoreLocation:a=u.ignoreLocation}={}){super(t),this._bitapSearch=new ft(t,{location:e,threshold:i,distance:n,includeMatches:r,findAllMatches:o,minMatchCharLength:c,isCaseSensitive:h,ignoreLocation:a})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}}class pt extends k{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let e=0,i;const n=[],r=this.pattern.length;for(;(i=t.indexOf(this.pattern,e))>-1;)e=i+r,n.push([i,e-1]);const o=!!n.length;return{isMatch:o,score:o?0:1,indices:n}}}const W=[Bt,pt,Vt,Wt,zt,Ut,Ht,dt],et=W.length,Gt=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Yt="|";function Xt(s,t={}){return s.split(Yt).map(e=>{let i=e.trim().split(Gt).filter(r=>r&&!!r.trim()),n=[];for(let r=0,o=i.length;r!!(s[j.AND]||s[j.OR]),qt=s=>!!s[G.PATH],te=s=>!I(s)&&ht(s)&&!Y(s),st=s=>({[j.AND]:Object.keys(s).map(t=>({[t]:s[t]}))});function gt(s,t,{auto:e=!0}={}){const i=n=>{let r=Object.keys(n);const o=qt(n);if(!o&&r.length>1&&!Y(n))return i(st(n));if(te(n)){const h=o?n[G.PATH]:r[0],a=o?n[G.PATTERN]:n[h];if(!x(a))throw new Error(At(h));const l={keyId:V(h),pattern:a};return e&&(l.searcher=z(a,t)),l}let c={children:[],operator:r[0]};return r.forEach(h=>{const a=n[h];I(a)&&a.forEach(l=>{c.children.push(i(l))})}),c};return Y(s)||(s=st(s)),i(s)}function ee(s,{ignoreFieldNorm:t=u.ignoreFieldNorm}){s.forEach(e=>{let i=1;e.matches.forEach(({key:n,norm:r,score:o})=>{const c=n?n.weight:null;i*=Math.pow(o===0&&c?Number.EPSILON:o,(c||1)*(t?1:r))}),e.score=i})}function se(s,t){const e=s.matches;t.matches=[],_(e)&&e.forEach(i=>{if(!_(i.indices)||!i.indices.length)return;const{indices:n,value:r}=i;let o={indices:n,value:r};i.key&&(o.key=i.key.src),i.idx>-1&&(o.refIndex=i.idx),t.matches.push(o)})}function ie(s,t){t.score=s.score}function ne(s,t,{includeMatches:e=u.includeMatches,includeScore:i=u.includeScore}={}){const n=[];return e&&n.push(se),i&&n.push(ie),s.map(r=>{const{idx:o}=r,c={item:t[o],refIndex:o};return n.length&&n.forEach(h=>{h(r,c)}),c})}class T{constructor(t,e={},i){this.options={...u,...e},this.options.useExtendedSearch,this._keyStore=new St(this.options.keys),this.setCollection(t,i)}setCollection(t,e){if(this._docs=t,e&&!(e instanceof X))throw new Error(It);this._myIndex=e||ut(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){_(t)&&(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){const e=[];for(let i=0,n=this._docs.length;i-1&&(h=h.slice(0,e)),ne(h,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(t){const e=z(t,this.options),{records:i}=this._myIndex,n=[];return i.forEach(({v:r,i:o,n:c})=>{if(!_(r))return;const{isMatch:h,score:a,indices:l}=e.searchIn(r);h&&n.push({item:r,idx:o,matches:[{score:a,value:r,norm:c,indices:l}]})}),n}_searchLogical(t){const e=gt(t,this.options),i=(c,h,a)=>{if(!c.children){const{keyId:f,searcher:d}=c,p=this._findMatches({key:this._keyStore.get(f),value:this._myIndex.getValueForItemAtKeyId(h,f),searcher:d});return p&&p.length?[{idx:a,item:h,matches:p}]:[]}const l=[];for(let f=0,d=c.children.length;f{if(_(c)){let a=i(e,c,h);a.length&&(r[h]||(r[h]={idx:h,item:c,matches:[]},o.push(r[h])),a.forEach(({matches:l})=>{r[h].matches.push(...l)}))}}),o}_searchObjectList(t){const e=z(t,this.options),{keys:i,records:n}=this._myIndex,r=[];return n.forEach(({$:o,i:c})=>{if(!_(o))return;let h=[];i.forEach((a,l)=>{h.push(...this._findMatches({key:a,value:o[l],searcher:e}))}),h.length&&r.push({idx:c,item:o,matches:h})}),r}_findMatches({key:t,value:e,searcher:i}){if(!_(e))return[];let n=[];if(I(e))e.forEach(({v:r,i:o,n:c})=>{if(!_(r))return;const{isMatch:h,score:a,indices:l}=i.searchIn(r);h&&n.push({score:a,key:t,value:r,idx:o,norm:c,indices:l})});else{const{v:r,n:o}=e,{isMatch:c,score:h,indices:a}=i.searchIn(r);c&&n.push({score:h,key:t,value:r,norm:o,indices:a})}return n}}T.version="7.0.0";T.createIndex=ut;T.parseIndex=Ft;T.config=u;T.parseQuery=gt;Zt(Qt);function E(){if(this._list)return;let s=this.querySelector('[slot="list"] [data-list]');if(s||(s=this.querySelector('[slot="list"]')),!s)throw new Error("List element not found");this._list=s}function w(){if(this._input)return;const s=this.querySelector('[slot="input"]');if(!s)throw new Error("Input element not found");this._input=s}function it(){if(!this._originalList){if(this._list){this._originalList=this._list.cloneNode(!0);return}E.call(this),this._originalList=this._list.cloneNode(!0)}}function re(){this._input.id=this._input.id.length!==0?this._input.id:`input-${crypto.randomUUID()}`,this._list.id=this._list.id.length!==0?this._list.id:`list-${crypto.randomUUID()}`,this._input.setAttribute("role","combobox"),this._input.setAttribute("aria-controls",this._list.id),this._input.setAttribute("aria-expanded","false"),this._input.setAttribute("aria-autocomplete","list"),this._input.setAttribute("autocomplete","off"),this._list.setAttribute("role","listbox"),this._list.setAttribute("aria-multiselectable","false"),this._list.setAttribute("anchor",this._input.id),this._list.tabIndex=-1;const s=this._list.children;for(let t=0;t{this.querySelector(":focus")||(this.forceValue(),this.toggleList(!1))},0)}class ce extends HTMLElement{constructor(){super(...arguments);y(this,"_input",null);y(this,"_list",null);y(this,"_originalList",null);y(this,"_isAltModifierPressed",!1);y(this,"_forceValue",!1);y(this,"_lastValue");y(this,"_limit",1/0);y(this,"_fuse",null);y(this,"_fuseOptions",{includeScore:!0,keys:["dataset.display","dataset.value","innerText"]})}static get observedAttributes(){return["data-value","data-fuse-options","data-listbox","data-limit"]}attributeChangedCallback(e,i,n){if(i!==n)switch(e){case"data-value":this.selectItemByValue(n,!1);break;case"data-fuse-options":this._originalList||it.call(this),this._fuseOptions=JSON.parse(n),this._fuse=new T(Array.from(this._originalList.cloneNode(!0).children),this._fuseOptions),this.searchList();break;case"data-listbox":this._forceValue=!!n;break;case"data-limit":this._limit=parseInt(n);break}}connectedCallback(){const e=this.attachShadow({mode:"open"});e.innerHTML=`
+var mt=Object.defineProperty;var bt=(s,t,e)=>t in s?mt(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var y=(s,t,e)=>(bt(s,typeof t!="symbol"?t+"":t,e),e);(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))e(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const r of n.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&e(r)}).observe(document,{childList:!0,subtree:!0});function t(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerPolicy&&(n.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?n.credentials="include":i.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function e(i){if(i.ep)return;i.ep=!0;const n=t(i);fetch(i.href,n)}})();function I(s){return Array.isArray?Array.isArray(s):at(s)==="[object Array]"}const Et=1/0;function Lt(s){if(typeof s=="string")return s;let t=s+"";return t=="0"&&1/s==-Et?"-0":t}function yt(s){return s==null?"":Lt(s)}function x(s){return typeof s=="string"}function ot(s){return typeof s=="number"}function xt(s){return s===!0||s===!1||Mt(s)&&at(s)=="[object Boolean]"}function ht(s){return typeof s=="object"}function Mt(s){return ht(s)&&s!==null}function _(s){return s!=null}function H(s){return!s.trim().length}function at(s){return s==null?s===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(s)}const It="Incorrect 'index' type",At=s=>`Invalid value for key ${s}`,vt=s=>`Pattern length exceeds max of ${s}.`,wt=s=>`Missing ${s} property in key`,kt=s=>`Property 'weight' in key '${s}' must be a positive integer`,Z=Object.prototype.hasOwnProperty;class St{constructor(t){this._keys=[],this._keyMap={};let e=0;t.forEach(i=>{let n=lt(i);this._keys.push(n),this._keyMap[n.id]=n,e+=n.weight}),this._keys.forEach(i=>{i.weight/=e})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function lt(s){let t=null,e=null,i=null,n=1,r=null;if(x(s)||I(s))i=s,t=q(s),e=W(s);else{if(!Z.call(s,"name"))throw new Error(wt("name"));const o=s.name;if(i=o,Z.call(s,"weight")&&(n=s.weight,n<=0))throw new Error(kt(o));t=q(o),e=W(o),r=s.getFn}return{path:t,id:e,weight:n,src:i,getFn:r}}function q(s){return I(s)?s:s.split(".")}function W(s){return I(s)?s.join("."):s}function Nt(s,t){let e=[],i=!1;const n=(r,o,c)=>{if(_(r))if(!o[c])e.push(r);else{let h=o[c];const a=r[h];if(!_(a))return;if(c===o.length-1&&(x(a)||ot(a)||xt(a)))e.push(yt(a));else if(I(a)){i=!0;for(let l=0,f=a.length;ls.score===t.score?s.idx{this._keysMap[e.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,x(this.docs[0])?this.docs.forEach((t,e)=>{this._addString(t,e)}):this.docs.forEach((t,e)=>{this._addObject(t,e)}),this.norm.clear())}add(t){const e=this.size();x(t)?this._addString(t,e):this._addObject(t,e)}removeAt(t){this.records.splice(t,1);for(let e=t,i=this.size();e{let o=n.getFn?n.getFn(t):this.getFn(t,n.path);if(_(o)){if(I(o)){let c=[];const h=[{nestedArrIndex:-1,value:o}];for(;h.length;){const{nestedArrIndex:a,value:l}=h.pop();if(_(l))if(x(l)&&!H(l)){let f={v:l,i:a,n:this.norm.get(l)};c.push(f)}else I(l)&&l.forEach((f,d)=>{h.push({nestedArrIndex:d,value:f})})}i.$[r]=c}else if(x(o)&&!H(o)){let c={v:o,n:this.norm.get(o)};i.$[r]=c}}}),this.records.push(i)}toJSON(){return{keys:this.keys,records:this.records}}}function ut(s,t,{getFn:e=u.getFn,fieldNormWeight:i=u.fieldNormWeight}={}){const n=new J({getFn:e,fieldNormWeight:i});return n.setKeys(s.map(lt)),n.setSources(t),n.create(),n}function Ft(s,{getFn:t=u.getFn,fieldNormWeight:e=u.fieldNormWeight}={}){const{keys:i,records:n}=s,r=new J({getFn:t,fieldNormWeight:e});return r.setKeys(i),r.setIndexRecords(n),r}function F(s,{errors:t=0,currentLocation:e=0,expectedLocation:i=0,distance:n=u.distance,ignoreLocation:r=u.ignoreLocation}={}){const o=t/s.length;if(r)return o;const c=Math.abs(i-e);return n?o+c/n:c?1:o}function Dt(s=[],t=u.minMatchCharLength){let e=[],i=-1,n=-1,r=0;for(let o=s.length;r=t&&e.push([i,n]),i=-1)}return s[r-1]&&r-i>=t&&e.push([i,r-1]),e}const O=32;function jt(s,t,e,{location:i=u.location,distance:n=u.distance,threshold:r=u.threshold,findAllMatches:o=u.findAllMatches,minMatchCharLength:c=u.minMatchCharLength,includeMatches:h=u.includeMatches,ignoreLocation:a=u.ignoreLocation}={}){if(t.length>O)throw new Error(vt(O));const l=t.length,f=s.length,d=Math.max(0,Math.min(i,f));let p=r,g=d;const m=c>1||h,S=m?Array(f):[];let M;for(;(M=s.indexOf(t,g))>-1;){let b=F(t,{currentLocation:M,expectedLocation:d,distance:n,ignoreLocation:a});if(p=Math.min(b,p),g=M+l,m){let A=0;for(;A=X;E-=1){let P=E-1,Q=e[s.charAt(P)];if(m&&(S[P]=+!!Q),C[E]=(C[E+1]<<1|1)&Q,b&&(C[E]|=(R[E+1]|R[E])<<1|1|R[E+1]),C[E]&_t&&(N=F(t,{errors:b,currentLocation:P,expectedLocation:d,distance:n,ignoreLocation:a}),N<=p)){if(p=N,g=P,g<=d)break;X=Math.max(1,2*d-g)}}if(F(t,{errors:b+1,currentLocation:d,expectedLocation:d,distance:n,ignoreLocation:a})>p)break;R=C}const K={isMatch:g>=0,score:Math.max(.001,N)};if(m){const b=Dt(S,c);b.length?h&&(K.indices=b):K.isMatch=!1}return K}function Kt(s){let t={};for(let e=0,i=s.length;e{this.chunks.push({pattern:d,alphabet:Kt(d),startIndex:p})},f=this.pattern.length;if(f>O){let d=0;const p=f%O,g=f-p;for(;d{const{isMatch:M,score:R,indices:N}=jt(t,g,m,{location:n+S,distance:r,threshold:o,findAllMatches:c,minMatchCharLength:h,includeMatches:i,ignoreLocation:a});M&&(d=!0),f+=R,M&&N&&(l=[...l,...N])});let p={isMatch:d,score:d?f/this.chunks.length:1};return d&&i&&(p.indices=l),p}}class k{constructor(t){this.pattern=t}static isMultiMatch(t){return tt(t,this.multiRegex)}static isSingleMatch(t){return tt(t,this.singleRegex)}search(){}}function tt(s,t){const e=s.match(t);return e?e[1]:null}class Bt extends k{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){const e=t===this.pattern;return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}}class Ht extends k{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){const i=t.indexOf(this.pattern)===-1;return{isMatch:i,score:i?0:1,indices:[0,t.length-1]}}}class Wt extends k{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){const e=t.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}}class Ut extends k{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){const e=!t.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}}class Vt extends k{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){const e=t.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[t.length-this.pattern.length,t.length-1]}}}class zt extends k{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){const e=!t.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}}class dt extends k{constructor(t,{location:e=u.location,threshold:i=u.threshold,distance:n=u.distance,includeMatches:r=u.includeMatches,findAllMatches:o=u.findAllMatches,minMatchCharLength:c=u.minMatchCharLength,isCaseSensitive:h=u.isCaseSensitive,ignoreLocation:a=u.ignoreLocation}={}){super(t),this._bitapSearch=new ft(t,{location:e,threshold:i,distance:n,includeMatches:r,findAllMatches:o,minMatchCharLength:c,isCaseSensitive:h,ignoreLocation:a})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}}class pt extends k{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let e=0,i;const n=[],r=this.pattern.length;for(;(i=t.indexOf(this.pattern,e))>-1;)e=i+r,n.push([i,e-1]);const o=!!n.length;return{isMatch:o,score:o?0:1,indices:n}}}const U=[Bt,pt,Wt,Ut,zt,Vt,Ht,dt],et=U.length,Gt=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Yt="|";function Jt(s,t={}){return s.split(Yt).map(e=>{let i=e.trim().split(Gt).filter(r=>r&&!!r.trim()),n=[];for(let r=0,o=i.length;r!!(s[j.AND]||s[j.OR]),qt=s=>!!s[G.PATH],te=s=>!I(s)&&ht(s)&&!Y(s),st=s=>({[j.AND]:Object.keys(s).map(t=>({[t]:s[t]}))});function gt(s,t,{auto:e=!0}={}){const i=n=>{let r=Object.keys(n);const o=qt(n);if(!o&&r.length>1&&!Y(n))return i(st(n));if(te(n)){const h=o?n[G.PATH]:r[0],a=o?n[G.PATTERN]:n[h];if(!x(a))throw new Error(At(h));const l={keyId:W(h),pattern:a};return e&&(l.searcher=z(a,t)),l}let c={children:[],operator:r[0]};return r.forEach(h=>{const a=n[h];I(a)&&a.forEach(l=>{c.children.push(i(l))})}),c};return Y(s)||(s=st(s)),i(s)}function ee(s,{ignoreFieldNorm:t=u.ignoreFieldNorm}){s.forEach(e=>{let i=1;e.matches.forEach(({key:n,norm:r,score:o})=>{const c=n?n.weight:null;i*=Math.pow(o===0&&c?Number.EPSILON:o,(c||1)*(t?1:r))}),e.score=i})}function se(s,t){const e=s.matches;t.matches=[],_(e)&&e.forEach(i=>{if(!_(i.indices)||!i.indices.length)return;const{indices:n,value:r}=i;let o={indices:n,value:r};i.key&&(o.key=i.key.src),i.idx>-1&&(o.refIndex=i.idx),t.matches.push(o)})}function ie(s,t){t.score=s.score}function ne(s,t,{includeMatches:e=u.includeMatches,includeScore:i=u.includeScore}={}){const n=[];return e&&n.push(se),i&&n.push(ie),s.map(r=>{const{idx:o}=r,c={item:t[o],refIndex:o};return n.length&&n.forEach(h=>{h(r,c)}),c})}class T{constructor(t,e={},i){this.options={...u,...e},this.options.useExtendedSearch,this._keyStore=new St(this.options.keys),this.setCollection(t,i)}setCollection(t,e){if(this._docs=t,e&&!(e instanceof J))throw new Error(It);this._myIndex=e||ut(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){_(t)&&(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){const e=[];for(let i=0,n=this._docs.length;i-1&&(h=h.slice(0,e)),ne(h,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(t){const e=z(t,this.options),{records:i}=this._myIndex,n=[];return i.forEach(({v:r,i:o,n:c})=>{if(!_(r))return;const{isMatch:h,score:a,indices:l}=e.searchIn(r);h&&n.push({item:r,idx:o,matches:[{score:a,value:r,norm:c,indices:l}]})}),n}_searchLogical(t){const e=gt(t,this.options),i=(c,h,a)=>{if(!c.children){const{keyId:f,searcher:d}=c,p=this._findMatches({key:this._keyStore.get(f),value:this._myIndex.getValueForItemAtKeyId(h,f),searcher:d});return p&&p.length?[{idx:a,item:h,matches:p}]:[]}const l=[];for(let f=0,d=c.children.length;f{if(_(c)){let a=i(e,c,h);a.length&&(r[h]||(r[h]={idx:h,item:c,matches:[]},o.push(r[h])),a.forEach(({matches:l})=>{r[h].matches.push(...l)}))}}),o}_searchObjectList(t){const e=z(t,this.options),{keys:i,records:n}=this._myIndex,r=[];return n.forEach(({$:o,i:c})=>{if(!_(o))return;let h=[];i.forEach((a,l)=>{h.push(...this._findMatches({key:a,value:o[l],searcher:e}))}),h.length&&r.push({idx:c,item:o,matches:h})}),r}_findMatches({key:t,value:e,searcher:i}){if(!_(e))return[];let n=[];if(I(e))e.forEach(({v:r,i:o,n:c})=>{if(!_(r))return;const{isMatch:h,score:a,indices:l}=i.searchIn(r);h&&n.push({score:a,key:t,value:r,idx:o,norm:c,indices:l})});else{const{v:r,n:o}=e,{isMatch:c,score:h,indices:a}=i.searchIn(r);c&&n.push({score:h,key:t,value:r,norm:o,indices:a})}return n}}T.version="7.0.0";T.createIndex=ut;T.parseIndex=Ft;T.config=u;T.parseQuery=gt;Zt(Qt);function L(){if(!this._list&&(this._list=this.querySelector('[slot="list"] [data-list]'),this._list||(this._list=this.querySelector('[slot="list"]')),!this._list))throw new Error("List element not found")}function w(){if(this._input)return;const s=this.querySelector('[slot="input"]');if(!s)throw new Error("Input element not found");this._input=s}function it(){this._originalList||(L.call(this),this._originalList=this._list.cloneNode(!0))}function re(){this._input.id=this._input.id.length!==0?this._input.id:`input-${crypto.randomUUID()}`,this._list.id=this._list.id.length!==0?this._list.id:`list-${crypto.randomUUID()}`,this._input.setAttribute("role","combobox"),this._input.setAttribute("aria-controls",this._list.id),this._input.setAttribute("aria-expanded","false"),this._input.setAttribute("aria-autocomplete","list"),this._input.setAttribute("autocomplete","off"),this._list.setAttribute("role","listbox"),this._list.setAttribute("aria-multiselectable","false"),this._list.setAttribute("anchor",this._input.id),this._list.tabIndex=-1;const s=this._list.children;for(let t=0;t{this.querySelector(":focus")||(this.forceValue(),this.toggleList(!1))},0)}class ce extends HTMLElement{constructor(){super(...arguments);y(this,"_input",null);y(this,"_list",null);y(this,"_originalList",null);y(this,"_isAltModifierPressed",!1);y(this,"_forceValue",!1);y(this,"_lastValue");y(this,"_limit",1/0);y(this,"_fuse",null);y(this,"_fuseOptions",{includeScore:!0,keys:["dataset.display","dataset.value","innerText"]})}static get observedAttributes(){return["data-value","data-fuse-options","data-listbox","data-limit"]}attributeChangedCallback(e,i,n){if(i!==n)switch(e){case"data-value":this.selectItemByValue(n,!1);break;case"data-fuse-options":if(!this._fuse){this._fuseOptions=JSON.parse(n);return}it.call(this),this._fuseOptions=JSON.parse(n),this._fuse=new T(Array.from(this._originalList.cloneNode(!0).children),this._fuseOptions),this.searchList();break;case"data-listbox":this._forceValue=!!n;break;case"data-limit":this._limit=parseInt(n);break}}connectedCallback(){const e=this.attachShadow({mode:"open"});e.innerHTML=`
- `,w.call(this),E.call(this),re.call(this),it.call(this),this._fuse=new T(Array.from(this._originalList.cloneNode(!0).children),this._fuseOptions),this.searchList(),this.addEventListeners(),this.forceValue()}disconnectedCallback(){this.removeEventListener("focusout",ct.bind(this)),this._input||E.call(this),this._input.removeEventListener("input",this.searchList.bind(this,!0,!0)),this._input.removeEventListener("focus",this.toggleList.bind(this,!0)),this._input.removeEventListener("keydown",nt.bind(this)),this._input.removeEventListener("keyup",D.bind(this)),this.removeEventListenersFromListItems()}addEventListeners(){this.addEventListener("focusout",ct.bind(this)),this._input||w.call(this),this._input.addEventListener("input",this.searchList.bind(this,!0,!0)),this._input.addEventListener("focus",this.toggleList.bind(this,!0)),this._input.addEventListener("keydown",nt.bind(this)),this._input.addEventListener("keyup",D.bind(this)),this.addEventListenersToListItems()}addEventListenersToListItems(){this._list||E.call(this);const e=this._list.children;for(let i=0;iNumber(h.dataset.weight)-Number(c.dataset.weight))),this.addEventListenersToListItems();return}let n=this._fuse.search(this._input.value).slice(0,this._limit);n=n.map(c=>({item:c.item,score:c.score??1,weight:Number(c.item.dataset.weight??1),refIndex:c.refIndex})).sort((c,h)=>c.score*(h.weight/c.weight)-h.score*(c.weight/h.weight)).map(c=>({item:c.item,score:c.score,weight:c.weight,refIndex:c.refIndex}));const r=n.map(c=>c.item);this._list.innerHTML="",this._list.append(...r.map(c=>c.cloneNode(!0)));const o=c=>{var h,a;if(c.nodeType===Node.TEXT_NODE&&((h=c.textContent)==null?void 0:h.trim())!==""&&((a=c.textContent)==null?void 0:a.trim())!==`
-`){const l=c.textContent??"",f=document.createElement("template");f.innerHTML=this.highlightText(l,this._input.value),c.replaceWith(f.content)}else for(const l of c.childNodes)o(l)};for(const c of this._list.children)o(c);this.addEventListenersToListItems(),this.toggleList(e)}highlightText(e,i){const n=new RegExp(`[${i}]+`,"gmi");return e.replace(n,"$&")}toggleList(e=this._input.getAttribute("aria-expanded")!=="true"){this._input.setAttribute("aria-expanded",`${e}`),e||this.unfocusAllItems()}focusItem(e){e&&(e.focus(),this.unfocusAllItems(),e.setAttribute("aria-selected","true"))}unfocusAllItems(){this._list||E.call(this);for(const e of this._list.querySelectorAll("[aria-selected]"))e.removeAttribute("aria-selected")}selectItem(e,i=!0){this._input||w.call(this),e.dataset.display?this._input.value=e.dataset.display:e.children.length||Array.from(e.children).every(n=>n.nodeName==="STRONG")?this._input.value=e.innerText:e.dataset.value?this._input.value=e.dataset.value:this._input.value="",e.dataset.value&&(this.dataset.value=e.dataset.value),i&&this._input.focus(),this.toggleList(!1),this.searchList(!1,!1),this.sendChangeEvent()}selectItemByValue(e,i=!0){if(!e)return;this._list||E.call(this);const n=this._list.querySelector(`[data-value="${e}"]`);n&&this.selectItem(n,i)}clearInput(e=!0){this._input||w.call(this),this._input.value="",e&&this._input.focus(),this.toggleList(!1)}forceValue(){var e;if(this._input||w.call(this),this._list||E.call(this),this._forceValue&&((e=this._input)!=null&&e.value)&&!this.dataset.value){const i=this._list.children[0];i?this.selectItem(i,!1):(this.clearInput(!1),this.dataset.value="",this.sendChangeEvent())}}sendChangeEvent(){if(this.dataset.value===this._lastValue)return;const e=new Event("change");this.dispatchEvent(e),this._lastValue=this.dataset.value}}customElements.define("combobox-framework",ce);
+ `,w.call(this),L.call(this),re.call(this),it.call(this),this._fuse=new T(Array.from(this._originalList.cloneNode(!0).children),this._fuseOptions),this.searchList(),this.addEventListeners(),this.forceValue()}disconnectedCallback(){this.removeEventListener("focusout",ct.bind(this)),this._input||L.call(this),this._input.removeEventListener("input",this.searchList.bind(this,!0,!0)),this._input.removeEventListener("focus",this.toggleList.bind(this,!0)),this._input.removeEventListener("keydown",nt.bind(this)),this._input.removeEventListener("keyup",D.bind(this)),this.removeEventListenersFromListItems()}addEventListeners(){this.addEventListener("focusout",ct.bind(this)),this._input||w.call(this),this._input.addEventListener("input",this.searchList.bind(this,!0,!0)),this._input.addEventListener("focus",this.toggleList.bind(this,!0)),this._input.addEventListener("keydown",nt.bind(this)),this._input.addEventListener("keyup",D.bind(this)),this.addEventListenersToListItems()}addEventListenersToListItems(){this._list||L.call(this);const e=this._list.children;for(let i=0;iNumber(h.dataset.weight)-Number(c.dataset.weight))),this.addEventListenersToListItems();return}let n=this._fuse.search(this._input.value).slice(0,this._limit);n=n.map(c=>({item:c.item,score:c.score??1,weight:Number(c.item.dataset.weight??1),refIndex:c.refIndex})).sort((c,h)=>c.score*(h.weight/c.weight)-h.score*(c.weight/h.weight)).map(c=>({item:c.item,score:c.score,weight:c.weight,refIndex:c.refIndex}));const r=n.map(c=>c.item);this._list.innerHTML="",this._list.append(...r.map(c=>c.cloneNode(!0)));const o=c=>{var h,a;if(c.nodeType===Node.TEXT_NODE&&((h=c.textContent)==null?void 0:h.trim())!==""&&((a=c.textContent)==null?void 0:a.trim())!==`
+`){const l=c.textContent??"",f=document.createElement("template");f.innerHTML=this.highlightText(l,this._input.value),c.replaceWith(f.content)}else for(const l of c.childNodes)o(l)};for(const c of this._list.children)o(c);this.addEventListenersToListItems(),this.toggleList(e)}highlightText(e,i){const n=new RegExp(`[${i}]+`,"gmi");return e.replace(n,"$&")}toggleList(e=this._input.getAttribute("aria-expanded")!=="true"){this._input.setAttribute("aria-expanded",`${e}`),e||this.unfocusAllItems()}focusItem(e){e&&(this.unfocusAllItems(),e.focus(),e.setAttribute("aria-selected","true"))}unfocusAllItems(){this._list||L.call(this);for(const e of this._list.querySelectorAll("[aria-selected]"))e.removeAttribute("aria-selected")}selectItem(e,i=!0){this._input||w.call(this),e.dataset.display?this._input.value=e.dataset.display:e.children.length||Array.from(e.children).every(n=>n.nodeName==="STRONG")?this._input.value=e.innerText:e.dataset.value?this._input.value=e.dataset.value:this._input.value="",e.dataset.value&&(this.dataset.value=e.dataset.value),i&&this._input.focus(),this.toggleList(!1),this.searchList(!1,!1),this.sendChangeEvent()}selectItemByValue(e,i=!0){if(!e)return;this._list||L.call(this);const n=this._list.querySelector(`[data-value="${e}"]`);n&&this.selectItem(n,i)}clearInput(e=!0){this._input||w.call(this),this._input.value="",e&&this._input.focus(),this.toggleList(!1)}forceValue(){var e;if(this._input||w.call(this),this._list||L.call(this),this._forceValue&&((e=this._input)!=null&&e.value)&&!this.dataset.value){const i=this._list.children[0];i?this.selectItem(i,!1):(this.clearInput(!1),this.dataset.value="",this.sendChangeEvent())}}sendChangeEvent(){if(this.dataset.value===this._lastValue)return;const e=new Event("change");this.dispatchEvent(e),this._lastValue=this.dataset.value}}customElements.define("combobox-framework",ce);
diff --git a/docs/index.html b/docs/index.html
index 32f6d6e..b76198d 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -20,7 +20,7 @@
-
+
@@ -99,7 +99,7 @@ Demo
-
+
@@ -110,367 +110,367 @@ Demo
-
+
Tim Robbins |
Andy Dufresne |
-
+
Morgan Freeman |
Ellis Boyd "Red" Redding |
-
+
Bob Gunton |
Warden Samuel Norton |
-
+
William Sadler |
Heywood |
-
+
Clancy Brown |
Byron Hadley |
-
+
Gil Bellows |
Tommy Williams |
-
+
James Whitmore |
Brooks Hatlen |
-
+
Mark Rolston |
Bogs Diamond |
-
+
Jeffrey DeMunn |
1946 D.A. |
-
+
Larry Brandenburg |
Skeet |
-
+
Neil Giuntoli |
Jigger |
-
+
Brian Libby |
Floyd |
-
+
David Proval |
Snooze |
-
+
Joseph Ragno |
Ernie |
-
+
Jude Ciccolella |
Guard Mert |
-
+
Paul McCrane |
Guard Trout |
-
+
Renee Blaine |
Linda Dufresne (Andy Dufresne's Wife) |
-
+
Scott Mann |
Glenn Quentin |
-
+
John Horton |
Lloyd Henreid (Judge) |
-
+
Gordon Greene |
1947 Parole Hearings Man |
-
+
Alfonso Freeman |
Fresh Fish Con |
-
+
V.J. Foster |
Hungry Fish Con (as V.J. Foster) |
-
+
John E. Summers |
New Fish Guard |
-
+
Frank Medrano |
Fat Ass |
-
+
Mack Miles |
Tyrell |
-
+
Alan R. Kessler |
Laundry Bob |
-
+
Morgan Lund |
Laundry Truck Driver |
-
+
Cornell Wallace |
Laundry Leonard |
-
+
Gary Lee Davis |
Rooster |
-
+
Neil Summers |
Pete |
-
+
Ned Bellamy |
Guard Youngblood |
-
+
Joe Pecoraro |
Projectionist |
-
+
Harold E. Cope Jr. |
Hole Guard |
-
+
Brian Delate |
Guard Dekins |
-
+
Don McManus |
Guard Wiley |
-
+
Dorothy Silver |
Landlady |
-
+
Donald Zinn |
Moresby Batter |
-
+
Robert Haley |
1954 Food-Way Manager |
-
+
Dana Snyder |
1954 Food-Way Proprietor |
-
+
John D. Craig |
1954 Food-Way Customer |
-
+
Ken Magee |
Ned Grimes |
-
+
Eugene C. DePasquale |
Mail Caller |
-
+
Bill Bolender |
Elmo Blatch |
-
+
Ron Newell |
Elderly Hole Guard |
-
+
John R. Woodward |
Bullhorn Tower Guard |
-
+
Chuck Brauchler |
Man Missing Guard |
-
+
Dion Anderson |
Head Bull Haig |
-
+
Claire Slemmer |
Bank Teller |
-
+
James Kisicki |
Bank Manager |
-
+
Rohn Thomas |
Bugle Editor |
-
+
Charlie Kearns |
1966 D.A |
-
+
Rob Reider |
Duty Guard |
-
+
Brian Brophy |
1967 Parole Hearings Man |
-
+
Paul Kennedy |
- 1967 1967 Food-Way Manager |
+ 1967 Food-Way Manager |
-
+
John D. Craig |
Old Man on Bus (uncredited) |
-
+
Fred Culbertson |
Police Officer (uncredited) |
-
+
Richard Doone |
Con (uncredited) |
-
+
Samantha Goldberg |
Bank Employee (uncredited) |
-
+
Shane Grove |
Inmate (uncredited) |
-
+
Rita Hayworth |
Gilda Mundson Farrell (archive footage) (uncredited) |
-
+
Bill McKinney |
Bank Teller |
-
+
Alonzo F. Jones |
Inmate (uncredited) |
-
+
Gary Jones |
Convict (uncredited) |
-
+
Sergio Kato |
Inmate II (uncredited) |
-
+
Michael Lightsey |
Con (uncredited) |
-
+
Tracy Love |
Court Spectator (uncredited) |
-
+
George Macready |
Ballin Mundson (archive footage) (uncredited) |
-
+
Christopher Page |
Traffic (driver) (uncredited) |
-
+
Neil Riddaway |
Con (uncredited) |
-
+
Brad Spencer |
1957 Parole Hearings Guard (uncredited) |
-
+
Jodiviah Stepp |
New Fish Con (uncredited) |
-
+
Mark A. Strain |
Yard Inmate (uncredited) |
-
+
James Babson |
Con (uncredited) |
-
+
Dennis Baker |
Old Man on Bus (uncredited) |
-
+
Fred Culbertson |
Police Officer (uncredited) |
-
+
Richard Doone |
Con (uncredited) |
-
+
Samantha Goldberg |
Bank Employee (uncredited) |
-
+
Shane Grove |
Inmate (uncredited) |
-
+
Rita Hayworth |
Gilda Mundson Farrell (archive footage) (uncredited) |
-
+
David Hecht |
Bank Teller |
-
+
Alonzo F. Jones |
Inmate (uncredited) |
-
+
Gary Jones |
Convict (uncredited) |
-
+
Sergio Kato |
Inmate II (uncredited) |
-
+
Michael Lightsey |
Con (uncredited) |
-
+
Tracy Love |
Court Spectator (uncredited) |
-
+
George Macready |
Ballin Mundson (archive footage) (uncredited) |
-
+
Christopher Page |
Traffic (driver) (uncredited) |
-
+
Neil Riddaway |
Con (uncredited) |
-
+
Brad Spencer |
1957 Parole Hearings Guard (uncredited) |
-
+
Jodiviah Stepp |
New Fish Con (uncredited) |
-
+
Mark A. Strain |
Yard Inmate (uncredited) |
@@ -800,6 +800,10 @@ Styling
combobox-framework input:not([aria-expanded]) + [slot="list"] {
display: none;
}
+
+ *:focus {
+ background: red;
+ }
diff --git a/package.json b/package.json
index 4d38fe3..fbf8812 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "version": "0.4.0",
+ "version": "1.0.0",
"name": "combobox-framework",
"description": "A framework for building comboboxes",
"keywords": [