@teacss/autocomplete 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -53,7 +53,13 @@ declare function searchUsageBoundary(line: string, index: number, attributify?:
53
53
  start: number;
54
54
  end: number;
55
55
  } | undefined;
56
+ interface AttrAssignment {
57
+ key: string;
58
+ valueStart: number;
59
+ }
56
60
  declare function searchAttrKey(content: string, cursor: number): string | undefined;
61
+ /** Attribute key and value start at an active editor position. */
62
+ declare function searchAttrContext(content: string, cursor: number): AttrAssignment | undefined;
57
63
  declare function cartesian<T>(arr: T[][]): T[][];
58
64
  //#endregion
59
- export { AutoCompleteMatchType, AutocompleteOptions, AutocompleteParseError, AutocompleteTemplateGroup, AutocompleteTemplatePart, AutocompleteTemplateStatic, AutocompleteTemplateTheme, ParsedAutocompleteTemplate, TeacssAutocomplete, cartesian, createAutocomplete, ignoredThemeKeys, parseAutocomplete, searchAttrKey, searchUsageBoundary, shorthands };
65
+ export { AttrAssignment, AutoCompleteMatchType, AutocompleteOptions, AutocompleteParseError, AutocompleteTemplateGroup, AutocompleteTemplatePart, AutocompleteTemplateStatic, AutocompleteTemplateTheme, ParsedAutocompleteTemplate, TeacssAutocomplete, cartesian, createAutocomplete, ignoredThemeKeys, parseAutocomplete, searchAttrContext, searchAttrKey, searchUsageBoundary, shorthands };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{toArray as e,uniq as t}from"@teacss/core";import{Fzf as n,byLengthAsc as r,byStartAsc as i}from"fzf";import{LRUCache as a}from"lru-cache";var o=`@teacss/autocomplete`;const s=5e4,c=2e6,l=5e4,u=4096,d=1e3,f=5e7,p=1e5,m=new Map(Array.from(`ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåçèéêëìíîïñòóôõöøùúûüýÿĀāĂ㥹ĆćĈĉĊċČčĎďđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥħĨĩĪīĬĭĮįİıĴĵĶķĹĺĻļĽľŀłŃńŅņŇňŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƃƆƈƉƊƌƎƐƒƓƗƙƚƜƝƞƟƠơƥƫƭƮƯưƲƴƶǍǎǏǐǑǒǓǔǗǘǝǥǦǧǨǩǪǫǰǴǵǸǹȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȞȟȠȡȥȦȧȨȩȮȯȲȳȴȵȶȷȺȻȼȽȾȿɀɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɓɔɕɖɗɘɛɜɝɞɟɠɡɢɥɦɨɪɫɬɭɯɰɱɲɳɴɵɹɺɻɼɽɾɿʀʁʂʇʈʉʋʌʍʎʏʐʑʗʙʚʛʜʝʞʟʠʮͣͤͥͦͧͨͩͪͫͬͭͮͯᴀᴃᴄᴅᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᵢᵣᵤᵥḀḁḂḃḄḅḆḇḊḋḌḍḎḏḐḑḒḓḘḙḚḛḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉṊṋṔṕṖṗṘṙṚṛṞṟṠṡṢṣṪṫṬṭṮṯṰṱṲṳṴṵṶṷṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹⁱₕₖₗₘₙₚₛₜↄ`,(e,t)=>[e,`AAAAAACEEEEIIIINOOOOOOUUUUYsaaaaaaceeeeiiiinoooooouuuuyyAaAaAaCcCcCcCcDddEeEeEeEeEeGgGgGgGgHhhIiIiIiIiIiJjKkLlLlLlllNnNnNnOoOoOoRrRrRrSsSsSsSsTtTttUuUuUuUuUuUuWwYyYZzZzZzsbBbOcDDdEEfGIklMNnOOopttTUuVyzAaIiOoUuUuegGgKkOojGgNnAaAaEeEeIiIiOoOoRrRrUuUuSsTtHhNdzAaEeOoYylntjACcLTszBUVEeJjQqRrYyaabocddeeeeejggGhhiIlllmmmnnNorrrrrrrRRsttuvvwyYzzcBeGHjkLqhaeioucdhmrtvxABCDEeiJKLMNOOoooooPRRTUuumVWZiruvAaBbBbBbDdDdDdDdDdEeEeFfGgHhHhHhHhHhIiIiKkKkKkLlLlLlMmMmMmNnNnNnNnPpPpRrRrRrSsSsTtTtTtTtUuUuUuVvVvWwWwWwWwWwXxXxYyZzZzZzhtwyasAaAaAaAaAaAaAaAaAaAaAaAaEeEeEeEeEeEeEeEeIiIiOoOoOoOoOoOoOoOoOoOoOoOoUuUuUuUuUuUuUuYyYyYyYyihklmnpstc`[t]])),h={maxAttempts:l,maxCandidateLength:u,maxCandidates:s,maxCharacters:c,maxScans:p,maxScannedCharacters:5e7},g={...h,maxCandidateLength:c,maxCandidates:d};function _(){return{suggestions:[],attempts:0,candidates:0,characters:0,scans:0,truncated:!1}}const v=new WeakMap,y=new WeakMap;function b(e,t,n){let r=v.get(e);if(!r){let n=e.suggest(t,`prefix`)??[];return{suggestions:n,attempts:n.length,candidates:n.length,characters:n.reduce((e,t)=>e+t.length,0),scans:n.length,truncated:!1}}return r(t,n)}function x(e,t,n){let r=y.get(e);return r?r(t,n):b(e,t,n)}var S=class extends Error{template;constructor(e,t){super(e),this.template=t,this.name=o,this.template=t}toString(){return`⚠️ [${this.name}]: ${this.message}. ${this.template?`Template: ${this.template}.`:``}`}};const C={directions:`(x|y|t|b|l|r|s|e)`,num:`(${[0,1,2,3,4,5,6,8,10,12,24,36].join(`|`)})`,percent:`(${[0,10,20,30,40,50,60,70,80,90,100].join(`|`)})`,percentage:`(${[`10%`,`20%`,`30%`,`40%`,`50%`,`60%`,`70%`,`80%`,`90%`,`100%`].join(`|`)})`},w=[`DEFAULT`];function T(e,t,n,r){let i=0;Array.from(e.matchAll(t)).forEach(t=>{let a=t.index;i!==a&&r(e.slice(i,a),i,a),n(t),i=a+t[0].length}),i!==e.length&&r(e.slice(i),i,e.length)}const ee=s;function E(e,t){let n=0;for(let r=t;r<e.length;r++)if(e[r]===`(`)n++;else if(e[r]===`)`&&--n===0)return r}function te(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`(`?n++:a===`)`?n--:a===`|`&&n===0&&(t.push(e.slice(r,i)),r=i+1)}return t.push(e.slice(r)),t}function ne(e,t){let n=e.indexOf(`(`),r=n===-1?void 0:E(e,n);if(n===-1||r==null)return[e];let i=e.slice(0,n),a=ne(e.slice(r+1),t);if(a===void 0)return;let o=[];for(let s of te(e.slice(n+1,r))){let e=ne(s,t);if(e===void 0)return;for(let n of e)for(let e of a){if(--t.remaining<0)return;o.push(`${i}${n}${e}`)}}return o}function re(e){let t={remaining:ee},n=[];for(let r of te(e)){let e=ne(r,t);if(e===void 0)return;n.push(...e)}return n}function ie(e,t={},r={}){let i=[],a=[],o={...C,...r};e=e.replace(/<([\w-]+)>/g,(e,t,n,r)=>Object.hasOwn(o,t)?o[t]:(a.push(new S(`Unknown template shorthand: <${t}>`,r)),e)),l(e),a.length&&(i.length=0);let s={parts:i,suggest:f,errors:a};return v.set(s,m),y.set(s,p),s;function c(e){T(e,/\$([\w.|-]+)/g,e=>{i.push({type:`theme`,objects:e[1].split(`|`).map(n=>{let r=n.split(`.`).reduce((t,n)=>!n||typeof t!=`object`||!t||!Object.hasOwn(t,n)||!t[n]?(a.push(new S(`Invalid theme key: ${n}`,e.input)),{}):t[n],t);return typeof r!=`object`||!r||Array.isArray(r)?(a.push(new S(`Invalid theme path: ${n}`,e.input)),{}):r})})},e=>{i.push({type:`static`,value:e})})}function l(t){let n=0;for(let r=0;r<t.length;r++){if(t[r]!==`(`)continue;let o=E(t,r);if(o==null)break;let s=t.slice(r+1,o);if(n!==r&&c(t.slice(n,r)),n=o+1,!s.includes(`|`)){i.push({type:`static`,value:t.slice(r,o+1)}),r=o;continue}let l=re(s);l===void 0?(a.push(new S(`Template group expands past ${ee} values: (${s})`,e)),i.push({type:`static`,value:t.slice(r,o+1)})):i.push({type:`group`,values:l}),r=o}n!==t.length&&c(t.slice(n))}function f(e,t=`prefix`){if(e.length>1&&t===`fuzzy`){let t=e!==e.toLowerCase(),r=N(e,t),a=m(e,{maxCandidates:d}).suggestions.filter(e=>j(r,N(e,t),e,0));if(r.length>u)return a;let o=Ie(i,{},e).candidates;if(a.length){let e=new Set(a);if(o.every(t=>e.has(t)))return a}if(ce(e,o.reduce((e,t)=>e+t.length,0))){let t=oe(o,e),n=t.filter(t=>fe(t,e));return n.length?je(n,[...a,...t]):je(a,t)}return je(a,new n(o,{fuzzy:`v1`,limit:d}).find(e).map(e=>e.item))}return p(e).suggestions}function p(e,t={}){let n={...g,...t},r=k(e);if(r.length>n.maxCandidateLength)return _();let a=D(i);if(a){let t=ae(i,0,a.index);if(!ye(t,e)&&!ye(k(t),r))return _();let o=ae(i,a.index+1,i.length);return be(a.part,t,o,e,a.suppressPartialRoots,n)}let o=O(i);return o&&!ye(o,e)&&!ye(k(o),k(e))?_():me(i,e,n)}function m(e,t={}){let n={...h,...t},r=p(e,n),a=O(i);if(r.suggestions.length||!a)return r;let o={...n,maxAttempts:n.maxAttempts-r.attempts,maxCandidates:n.maxCandidates-r.candidates,maxCharacters:n.maxCharacters-r.characters,maxScans:n.maxScans-r.scans},s=p(a+e,o);return{suggestions:s.suggestions,attempts:r.attempts+s.attempts,candidates:r.candidates+s.candidates,characters:r.characters+s.characters,scans:r.scans+s.scans,truncated:r.truncated||s.truncated}}}function D(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(i.type!==`static`){if(i.type===`group`&&i.values.length>0&&i.values.every(e=>e===``)){n=!0;continue}if(i.type!==`theme`||t)return;t={index:r,part:i}}}return t&&{...t,suppressPartialRoots:n}}function ae(e,t,n){let r=``;for(let i=t;i<n;i++){let t=e[i];t.type===`static`&&(r+=t.value)}return r}function O(e){let t=e.findIndex(e=>e.type!==`static`);return ae(e,0,t<0?e.length:t)}function k(e){return e.replace(/-/g,``)}function oe(e,t){return A(e,t)}function A(e,t,n={}){let r={...h,maxCandidates:d,...n};if(!t)return se(e,r);let i=t!==t.toLowerCase(),a=N(t,i);if(a.length>r.maxCandidateLength)return[];let o={characters:0,items:[],retained:new Set},s=new Set,c=e[Symbol.iterator](),l=0,u=0;for(;l<r.maxAttempts&&u<r.maxScannedCharacters;){let e=c.next();if(e.done)break;let t=e.value,n=l++;if(!t||t.length>r.maxCandidateLength||s.has(t)||t.length>r.maxScannedCharacters-u)continue;s.add(t),u+=t.length;let d=j(a,N(t,i),t,n);d&&le(o,d,r.maxCandidates,r.maxCharacters)}return o.items.sort(M).map(({candidate:e})=>e)}function se(e,t){let n=[],r=new Set,i=e[Symbol.iterator](),a=0,o=0,s=0;for(;a<t.maxAttempts&&n.length<t.maxCandidates&&o<t.maxCharacters&&s<t.maxScannedCharacters;){let e=i.next();if(e.done)break;let c=e.value;a++,!(!c||c.length>t.maxCandidateLength||r.has(c)||c.length>t.maxScannedCharacters-s)&&(r.add(c),s+=c.length,!(o+c.length>t.maxCharacters)&&(n.push(c),o+=c.length))}return n}function ce(e,t){return e.length*t>f}function j(e,t,n,r){if(t===e)return{candidate:n,category:0,gaps:0,longestRun:e.length,start:0,order:r};if(t.startsWith(e))return{candidate:n,category:1,gaps:0,longestRun:e.length,start:0,order:r};let i=0,a=-1,o=-1,s=0,c=0,l=0;for(let n=0;n<t.length&&i<e.length;n++)t[n]===e[i]&&(a<0&&(a=n),o>=0&&(l+=n-o-1),s=n===o+1?s+1:1,c=Math.max(c,s),o=n,i++);if(i===e.length)return{candidate:n,category:2,gaps:l,longestRun:c,start:a,order:r}}function le(e,t,n,r){e.retained.has(t.candidate)||(e.items.length<n&&e.characters+t.candidate.length<=r?(e.items.push(t),e.retained.add(t.candidate),e.characters+=t.candidate.length,ue(e.items,e.items.length-1)):e.items.length&&M(t,e.items[0])<0&&e.characters-e.items[0].candidate.length+t.candidate.length<=r&&(e.retained.delete(e.items[0].candidate),e.characters+=t.candidate.length-e.items[0].candidate.length,e.items[0]=t,e.retained.add(t.candidate),de(e.items,0)))}function ue(e,t){for(;t>0;){let n=t-1>>>1;if(M(e[t],e[n])<=0)return;[e[n],e[t]]=[e[t],e[n]],t=n}}function de(e,t){for(;;){let n=t*2+1;if(n>=e.length)return;let r=n+1,i=n;if(r<e.length&&M(e[r],e[n])>0&&(i=r),M(e[i],e[t])<=0)return;[e[t],e[i]]=[e[i],e[t]],t=i}}function M(e,t){return e.category-t.category||e.gaps-t.gaps||t.longestRun-e.longestRun||e.start-t.start||e.candidate.length-t.candidate.length||e.order-t.order}function fe(e,t){let n=t!==t.toLowerCase();return N(e,n)===N(t,n)}function N(e,t){let n=e.normalize(),r=pe(n)?n:Array.from(n,e=>m.get(e)??e).join(``);return t?r:r.toLowerCase()}function pe(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>127)return!1;return!0}function me(e,t,n={}){let r={...h,...n};if(r.maxAttempts<=0||r.maxCandidates<=0||r.maxCharacters<=0)return _();let i=k(t),a=he(),o=he(),s=r.maxCandidates,c=R(r.maxScans),l=[],u=Array.from({length:e.length},()=>``),d=Array.from({length:e.length+1},()=>0),f=Array.from({length:e.length+1},()=>0),p=Array.from({length:e.length+1},()=>0),m=[],g=new Set,v=0,y=0;for(;y>=0&&!c.truncated;){if(y===e.length){let e=u.join(``),n=f[y]>=t.length,c=p[y]>=i.length;if((n||c)&&e.length<=r.maxCharacters){let t=!g.has(e);(!t||v<r.maxAttempts)&&(t&&(g.add(e),v++),n&&ge(a,e,m,s,r),c&&ge(o,e,m,s,r))}y--;continue}if(v>=r.maxAttempts)break;let n=l[y];n||(n={choiceIndex:0,iterator:Me(e[y],r.maxCandidateLength-d[y],c)},l[y]=n);let h=n.iterator.next();if(h.done){l.pop(),y--;continue}let _=n.choiceIndex++,b=h.value,x=d[y]+b.length;if(x>r.maxCandidateLength)continue;let S=f[y]<0?-1:L(t,f[y],b,!1),C=p[y]<0?-1:L(i,p[y],b,!0);if(S<0&&C<0)continue;for(;m.length&&!(m.at(-1).depth<y);)m.pop();_>0&&m.push({depth:y,index:_}),u[y]=b;let w=y+1;d[w]=x,f[w]=S,p[w]=C,l.length=w,y=w}let b=a.entries.length?a:o;b.entries.sort((e,t)=>I(e.path,t.path));let x=b.entries.map(e=>e.candidate);return{suggestions:x,attempts:v,candidates:x.length,characters:b.characters,scans:c.initial-c.remaining,truncated:c.truncated}}function he(){return{characters:0,entries:[],indices:new Map}}function ge(e,t,n,r,i){let a=e.indices.get(t);if(a!==void 0){let t=e.entries[a];I(n,t.path)<0&&(t.path=n.slice(),P(e,a));return}if(r<=0||t.length>i.maxCharacters)return;let o={candidate:t,path:n.slice()};if(e.entries.length>=r){if(I(o.path,e.entries[0].path)>=0)return;_e(e)}for(;e.entries.length&&e.characters+t.length>i.maxCharacters;){if(I(o.path,e.entries[0].path)>=0)return;_e(e)}e.characters+t.length>i.maxCharacters||(e.indices.set(t,e.entries.length),e.entries.push(o),e.characters+=t.length,ve(e,e.entries.length-1))}function _e(e){let t=e.entries[0],n=e.entries.pop();e.indices.delete(t.candidate),e.characters-=t.candidate.length,e.entries.length&&(e.entries[0]=n,e.indices.set(n.candidate,0),P(e,0))}function ve(e,t){for(;t>0;){let n=t-1>>>1;if(I(e.entries[t].path,e.entries[n].path)<=0)return;F(e,n,t),t=n}}function P(e,t){for(;;){let n=t*2+1;if(n>=e.entries.length)return;let r=n+1,i=n;if(r<e.entries.length&&I(e.entries[r].path,e.entries[n].path)>0&&(i=r),I(e.entries[i].path,e.entries[t].path)<=0)return;F(e,i,t),t=i}}function F(e,t,n){[e.entries[t],e.entries[n]]=[e.entries[n],e.entries[t]],e.indices.set(e.entries[t].candidate,t),e.indices.set(e.entries[n].candidate,n)}function I(e,t){let n=e.length-1,r=t.length-1;for(;n>=0||r>=0;){let i=n>=0?e[n].depth:-1,a=r>=0?t[r].depth:-1,o=Math.max(i,a),s=i===o?e[n--].index:0,c=a===o?t[r--].index:0;if(s!==c)return s-c}return 0}function L(e,t,n,r){let i=t;for(let t=0;t<n.length;t++){let a=n[t];if(!(r&&a===`-`)){if(i<e.length&&e[i]!==a)return-1;i++}}return i}function ye(e,t){return e.length<=t.length?t.startsWith(e):e.startsWith(t)}function be(e,t,n,r,i,a){let o={...h,...a};if(t.length+1>o.maxCandidateLength)return _();let s=R(o.maxScans),c=Ce(e.objects,s),l=we(r,!1,o),u=we(k(r),!0,o);xe(c,t,n,o.maxCandidateLength,i,l,u,s);let d=Te(l,s);if(d.suggestions.length||!d.exhausted)return d;let f=Te(u,s);return{suggestions:f.suggestions,attempts:d.attempts+f.attempts,candidates:d.candidates+f.candidates,characters:d.characters+f.characters,scans:f.scans,truncated:f.truncated}}function xe(e,t,n,r,i,a,o,s){for(let c of e){let e=t+c.key,l=Ee(e,a.input,!1),u=Ee(e,o.input,!0);if(l===`none`&&u===`none`)continue;let d=Oe(c.objects,e,n,a.input,o.input,r),f=l===`partial`||u===`partial`?ke(d,s):void 0,p=f!==void 0;if(De(a,l,c.hasLeaf,p,e,n,i),De(o,u,c.hasLeaf,p,e,n,i),a.blocked)return;for(f??=ke(d,s);f;){if((l===`reached`||i&&l===`partial`)&&V(a,f.candidate,f.rawMatch),(u===`reached`||i&&u===`partial`)&&V(o,f.candidate,f.normalizedMatch),a.blocked)return;f=ke(d,s)}if(s.truncated||a.blocked)return}}function Se(e){return!!e&&e[0]!==`_`&&!w.includes(e)}function R(e=p){let t=Math.max(0,e);return{initial:t,remaining:t,truncated:!1}}function z(e){return e.remaining<=0?(e.truncated=!0,!1):(e.remaining--,!0)}function*B(e){yield*Object.keys(e)}function Ce(e,t){let n=new Map;outer:for(let r of e)for(let e of B(r)){if(!z(t))break outer;if(!Se(e))continue;let i=r[e];if(i==null)continue;let a=n.get(e)??{key:e,hasLeaf:!1,objects:[]};if(typeof i!=`object`||Array.isArray(i))a.hasLeaf=!0;else{let e=i;a.objects.push(e),a.hasLeaf||=Object.hasOwn(e,`DEFAULT`)&&e.DEFAULT!==null&&e.DEFAULT!==void 0}n.set(e,a)}return[...n.values()]}function we(e,t,n){return{attempts:0,blocked:n.maxAttempts<=0||n.maxCandidates<=0||n.maxCharacters<=0,characters:0,input:e,limits:n,normalize:t,seen:new Set,suggestions:[]}}function V(e,t,n){!n||e.blocked||e.seen.has(t)||(e.seen.add(t),e.attempts++,t.length<=e.limits.maxCandidateLength&&e.characters+t.length<=e.limits.maxCharacters&&(e.suggestions.push(t),e.characters+=t.length),e.blocked||=e.attempts>=e.limits.maxAttempts||e.suggestions.length>=e.limits.maxCandidates||e.characters>=e.limits.maxCharacters)}function Te(e,t){return{suggestions:e.suggestions,attempts:e.attempts,candidates:e.suggestions.length,characters:e.characters,scans:t.initial-t.remaining,truncated:t.truncated,exhausted:!e.blocked&&!t.truncated}}function Ee(e,t,n){let r=n?k(e):e;return t.startsWith(r)?`reached`:r.startsWith(t)?`partial`:`none`}function De(e,t,n,r,i,a,o){if(t===`none`)return;if(t===`partial`&&r){(n||!o)&&V(e,i,!0);return}if(!n)return;let s=i+a;V(e,s,(e.normalize?k(s):s).startsWith(e.input))}function Oe(e,t,n,r,i,a){return{base:t,fragments:[],frames:[],maxCandidateLength:a,normalizedInput:i,normalizedMatchedLength:L(i,0,t,!0),objectIndex:0,objects:e,rawInput:r,rawMatchedLength:L(r,0,t,!1),staticSuffix:n}}function ke(e,t){for(;!t.truncated;){if(!e.frames.length){if(e.objectIndex>=e.objects.length)return;let t=e.objects[e.objectIndex++];e.frames.push({depth:0,iterator:B(t),normalizedMatchedLength:e.normalizedMatchedLength,object:t,rawMatchedLength:e.rawMatchedLength,valueLength:0})}let n=e.frames.at(-1),r=n.iterator.next();if(r.done){e.frames.pop(),e.fragments.length=n.depth;continue}if(!z(t))return;let i=r.value;if(!Se(i))continue;let a=n.object[i];if(a==null)continue;let o=n.valueLength+ +!!n.depth+i.length;if(e.base.length+o+e.staticSuffix.length+1>e.maxCandidateLength)continue;let s=`-${i}`,c=n.rawMatchedLength<0?-1:L(e.rawInput,n.rawMatchedLength,s,!1),l=n.normalizedMatchedLength<0?-1:L(e.normalizedInput,n.normalizedMatchedLength,s,!0);if(c<0&&l<0)continue;e.fragments.length=n.depth,e.fragments.push(i);let u=typeof a==`object`&&!Array.isArray(a)?a:void 0;if(u&&e.frames.push({depth:n.depth+1,iterator:B(u),normalizedMatchedLength:l,object:u,rawMatchedLength:c,valueLength:o}),!(!u||Object.hasOwn(u,`DEFAULT`)&&u.DEFAULT!==null&&u.DEFAULT!==void 0))continue;let d=Ae(e.rawInput,c,e.staticSuffix,!1),f=Ae(e.normalizedInput,l,e.staticSuffix,!0);if(!(!d&&!f))return{candidate:`${e.base}-${e.fragments.join(`-`)}${e.staticSuffix}`,normalizedMatch:f,rawMatch:d}}}function Ae(e,t,n,r){return t<0?!1:L(e,t,n,r)>=e.length}function je(e,t){let n=[],r=new Set,i=0,a=(e,t)=>{for(let a of e){if(n.length===t)return;if(!(!a||r.has(a)||a.length>u)){if(i+a.length>c)return;r.add(a),n.push(a),i+=a.length}}};return a(e,t.length?750:d),a(t,d),a(e,d),n}function*Me(e,t,n){e.type===`theme`?yield*Pe(e.objects,t,n):yield*Ne(e,t,n)}function*Ne(e,t,n){if(e.type===`static`){e.value.length<=t&&(yield e.value);return}if(e.type===`group`)for(let r of e.values){if(!z(n))return;r.length<=t&&(yield r)}}function*Pe(e,t,n){let r=[];for(let i of e){r.length=0;let e=[{depth:0,iterator:B(i),object:i,valueLength:0}];for(;e.length&&!n.truncated;){let i=e.at(-1),a=i.iterator.next();if(a.done){e.pop(),r.length=i.depth;continue}if(!z(n))return;let o=a.value;if(!Se(o))continue;let s=i.object[o];if(s==null)continue;let c=i.valueLength+ +!!i.depth+o.length;if(c>t)continue;r.length=i.depth,r.push(o);let l=typeof s==`object`&&!Array.isArray(s)?s:void 0;l&&e.push({depth:i.depth+1,iterator:B(l),object:l,valueLength:c}),(!l||Object.hasOwn(l,`DEFAULT`)&&l.DEFAULT!==null&&l.DEFAULT!==void 0)&&(yield r.join(`-`))}}}function Fe(e,t){let n=R(t.maxScans),r=e.map(e=>({done:!1,iterator:Me(e,t.maxCandidateLength,n),pending:void 0,seen:new Set,values:[]})),i=e.length+Math.max(0,t.maxCandidates-1),a=r.length,o=0,s=0,c=!1,l=r.length;for(;l&&!n.truncated;){let e=!1;for(let n of r){if(!n.values.length&&n.pending!==void 0&&o+n.pending.length<=t.maxCharacters){n.values.push(n.pending),o+=n.pending.length,n.pending=void 0,s++,l--,e=!0;continue}if(n.done)continue;let r=n.iterator.next();if(e=!0,r.done){n.done=!0,a--;continue}if(n.seen.has(r.value))continue;if(n.seen.add(r.value),!n.values.length){o+r.value.length<=t.maxCharacters?(n.values.push(r.value),o+=r.value.length,s++,l--):(n.pending===void 0||r.value.length<n.pending.length)&&(n.pending=r.value,c=!0);continue}let i=n.values[0];r.value.length<i.length&&(n.values[0]=r.value,o+=r.value.length-i.length,c=!0)}if(!e)break}for(;a&&s<i&&o<t.maxCharacters&&!n.truncated;){let e=!1;for(let n of r){if(n.done)continue;let r=n.iterator.next();if(r.done){n.done=!0,a--;continue}if(e=!0,!n.seen.has(r.value)){if(n.seen.add(r.value),o+r.value.length>t.maxCharacters){c=!0;continue}if(n.values.push(r.value),o+=r.value.length,s++,s===i)break}}if(!e)break}return c||=n.truncated||a>0||l>0,{scans:n.initial-n.remaining,truncated:c,values:r.map(e=>e.values)}}function Ie(e,t={},n=``){let r={...h,...t},i=Fe(e,r),a=i.values,o=i.scans,s,c=()=>{if(s===void 0){let t=Le(a,n,r);s=t?{combination:t,scans:0}:Re(e,n,r,Math.max(0,r.maxScans-o)),o+=s.scans}return s};if(a.some(e=>!e.length)){let e=i.truncated?c().combination:void 0;if(!e)return{candidates:[],truncated:i.truncated,attempts:0,scans:o};let t=H(r),n={remaining:r.maxAttempts};return U(t,n,0)&&W(t,e),{candidates:[...t.candidates],truncated:!0,attempts:r.maxAttempts-n.remaining,scans:o}}let u=0;for(let e of a){let t=e[0].length;for(let n=1;n<e.length;n++)t=Math.min(t,e[n].length);if(u+=t,u>Math.min(r.maxCandidateLength,r.maxCharacters)){let e=i.truncated?c().combination:void 0;if(!e)return{candidates:[],truncated:!0,attempts:0,scans:o};let t=H(r),n={remaining:r.maxAttempts};return U(t,n,0)&&W(t,e),{candidates:[...t.candidates],truncated:!0,attempts:r.maxAttempts-n.remaining,scans:o}}}let d=1,p=0,m=i.truncated;for(let e of a){if(m)continue;let t=0;for(let n of e)if(t+=n.length,t>r.maxCharacters)break;let n=p*e.length,i=d*t;d>r.maxCandidates/e.length||d>r.maxAttempts/e.length||n>r.maxCharacters||i>r.maxCharacters-n?m=!0:(d*=e.length,p=n+i)}let g={remaining:r.maxAttempts};if(!m){let e=H(r);return We(e,a,d,g),{candidates:[...e.candidates],truncated:!1,attempts:r.maxAttempts-g.remaining,scans:o}}let _=H(r),v=a.map(e=>e[0]),y=a.flatMap((e,t)=>e.length>1?[t]:[]),b=c().combination;b&&U(_,g,0)&&W(_,b),U(_,g,0)&&W(_,v);let x=Math.min(l,Math.max(0,g.remaining));return e.length&&x>f/e.length?{candidates:[..._.candidates],truncated:!0,attempts:r.maxAttempts-g.remaining,scans:o}:(Be(_,a,v,y,g),He(_,a,v,y,g),Ve(_,a,v,y,g),Ue(_,a,v,y,g),We(_,a,r.maxAttempts,g,!0),{candidates:[..._.candidates],truncated:!0,attempts:r.maxAttempts-g.remaining,scans:o})}function Le(e,t,n){if(!t||e.some(e=>!e.length))return;let r=t!==t.toLowerCase(),i=N(t,r);if(!i||i.length>n.maxCandidateLength)return;let a=Math.min(n.maxCandidateLength,n.maxCharacters),o=Array.from({length:e.length+1},()=>0);for(let t=e.length-1;t>=0;t--){let n=e[t][0].length;for(let r=1;r<e[t].length;r++)n=Math.min(n,e[t][r].length);o[t]=o[t+1]+n}if(o[0]>a)return;let s=[],c=0,l=0;for(let t=0;t<e.length;t++){let n,u=l;for(let s of e[t]){if(c+s.length+o[t+1]>a)continue;let e=ze(i,l,N(s,r)),d=e>l,f=u>l;(n===void 0||d&&!f||d===f&&(s.length<n.length||s.length===n.length&&e>u))&&(n=s,u=e)}if(n===void 0)return;s.push(n),c+=n.length,l=u}if(l<i.length)return;let u=s.join(``);if(j(i,N(u,r),u,0))return s}function Re(e,t,n,r){let i=R(r),a=e=>({combination:e,scans:i.initial-i.remaining});if(!t)return a();let o=t!==t.toLowerCase(),s=N(t,o);if(!s||s.length>n.maxCandidateLength)return a();let c=Math.min(n.maxCandidateLength,n.maxCharacters),u=[{characters:0,choice:``,matched:0}],d=0,p=0;for(let t of e){let e=new Map,n=new Set;for(let r of Me(t,c,i)){if(n.has(r))continue;n.add(r);let t={normalized:N(r,o),raw:r};for(let n of u){if(p++,d+=t.normalized.length,p>l||d>f)return a();let r=n.characters+t.raw.length;if(r>c)continue;let i=ze(s,n.matched,t.normalized),o=e.get(i);o&&o.characters<=r||e.set(i,{characters:r,choice:t.raw,matched:i,previous:n})}}if(!e.size)return a();let r=1/0;u=[...e.values()].sort((e,t)=>t.matched-e.matched||e.characters-t.characters).filter(e=>e.characters>=r?!1:(r=e.characters,!0))}let m=u.find(e=>e.matched===s.length);if(!m)return a();let h=Array.from({length:e.length},()=>``),g=m;for(let t=e.length-1;t>=0;t--)h[t]=g.choice,g=g.previous;let _=h.join(``);return j(s,N(_,o),_,0)?a(h):a()}function ze(e,t,n){for(let r=0;r<n.length&&t<e.length;r++)n[r]===e[t]&&t++;return t}function H(e){return{candidates:new Set,characters:0,maxCandidateLength:e.maxCandidateLength,maxCandidates:e.maxCandidates,maxCharacters:e.maxCharacters}}function U(e,t,n){return n>=l||t.remaining<=0||e.candidates.size>=e.maxCandidates||e.characters>=e.maxCharacters?!1:(t.remaining--,!0)}function Be(e,t,n,r,i){let a=0;for(let o of r){if(!U(e,i,a))return;a++;let r=n.slice();r[o]=t[o].at(-1),W(e,r)}}function Ve(e,t,n,r,i){let a=0;for(let o=0;o<r.length;o++)for(let s=o+1;s<r.length;s++){if(!U(e,i,a))return;a++;let c=r[o],l=r[s],u=n.slice();u[c]=t[c].at(-1),u[l]=t[l].at(-1),W(e,u)}}function He(e,t,n,r,i){let a=0;for(let o of r)for(let r=1;r<t[o].length-1;r++){if(!U(e,i,a))return;a++;let s=n.slice();s[o]=t[o][r],W(e,s)}}function Ue(e,t,n,r,i){let a=0;for(let o=0;o<r.length;o++)for(let s=o+1;s<r.length;s++){let c=r[o],l=r[s];for(let r=1;r<t[c].length;r++)for(let o=1;o<t[l].length;o++){if(r===t[c].length-1&&o===t[l].length-1)continue;if(!U(e,i,a))return;a++;let s=n.slice();s[c]=t[c][r],s[l]=t[l][o],W(e,s)}}}function We(e,t,n,r,i=!1){if(!t.length){U(e,r,0)&&W(e,[``]);return}let a=t.map(()=>0),o=t.flatMap((e,t)=>e.length>1?[t]:[]),s=()=>{let e=o.length-1;for(;e>=0;){let n=o[e];if(a[n]++,a[n]<t[n].length)return!0;a[n]=0,e--}return!1};if(i&&!s())return;let c=Math.min(n,l);for(let n=0;n<c;n++){if(!U(e,r,n))return;if(W(e,t.map((e,t)=>e[a[t]])),!s())break}}function W(e,t){let n=e.maxCharacters-e.characters,r=0;for(let i of t)if(r+=i.length,r>Math.min(e.maxCandidateLength,n))return;let i=t.join(``);e.candidates.has(i)||e.candidates.size===e.maxCandidates||e.characters+i.length>e.maxCharacters||(e.candidates.add(i),e.characters+=i.length)}function Ge(e,t,n=!0){let r=t,i=t,a=/[^\s>"'`;]/;for(;r&&a.test(e.charAt(r-1));)--r;for(;i<e.length&&a.test(e.charAt(i));)++i;if(n)return{content:e.slice(r,i),start:r,end:i};let o=et(e,t),s=o?.key.toLowerCase();if(o&&(s?.endsWith(`class`)||s?.endsWith(`classname`)))return r=Math.max(r,o.valueStart),{content:e.slice(r,i),start:r,end:i};let c=e.slice(0,r).trimEnd();if(/(?:^|[\s;{])@apply$/.test(c))return{content:e.slice(r,i),start:r,end:i}}const Ke=new Set(`a abbr address area article aside audio b base bdi bdo blockquote body br button canvas caption cite code col colgroup data datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins kbd label legend li link main map mark menu meta meter nav noscript object ol optgroup option output p picture pre progress q rp rt ruby s samp script search section select slot small source span strong style sub summary sup table tbody td template textarea tfoot th thead time title tr track u ul var video wbr svg`.split(` `)),qe=new Set(`=([{,:;!?&|>~`);function Je(e){return e>=65&&e<=90||e>=97&&e<=122}function Ye(e){return Je(e)||e===95}function Xe(e){return Ye(e)||e>=48&&e<=57||e===36||e===45||e===46||e===58}function Ze(e,t,n){let r=t-n.length;return r<0||e.slice(r,t)!==n?!1:r===0||!Xe(e.charCodeAt(r-1))}function Qe(e,t,n,r){if(Ke.has(n.toLowerCase())||n.includes(`-`)||r&&n.charCodeAt(0)>=65&&n.charCodeAt(0)<=90)return!0;let i=t-1;for(;i>=0&&/\s/.test(e.charAt(i));)i--;return i<0||qe.has(e.charAt(i))?!0:Ze(e,i+1,`return`)}function $e(e){let t,n=!1,r,i=0,a=0;for(;a<e.length;){if(t){let o=e.charAt(a);r?o===`\\`?a++:o===r&&(r=void 0):o===`"`||o===`'`?r=o:o===`{`?i++:o===`}`?i>0&&i--:o===`>`&&i===0&&(t=void 0,n=!0),a++;continue}if(e.charAt(a)===`;`&&(n=!1),e.charCodeAt(a)!==60){a++;continue}let o=a++;if(!Ye(e.charCodeAt(a)))continue;let s=a;for(;a<e.length&&Xe(e.charCodeAt(a));)a++;if(a<e.length&&!/[\s/>]/.test(e.charAt(a)))continue;let c=e.slice(s,a);Qe(e,o,c,n)&&(t={name:c,start:o},i=0)}return t}function et(e,t){let n=e.substring(0,t),r=$e(n);if(!r)return;let i=r.start+1,a=n.slice(i),o=-1,s=-1,c=-1,l=-1,u=-1,d=-1,f;for(let e=0;e<a.length;e++){let t=a.charAt(e);if(f){t===`\\`?e++:t===f&&(f=void 0);continue}if(t===`"`||t===`'`){f=t,o<0&&(o=e);continue}if(/\s/.test(t)){o>=0&&(s=o,c=e,o=-1);continue}if(t===`=`){let t=o>=0?o:s,n=o>=0?e:c;t>=0&&n>t&&t>=l&&(l=t,u=n,d=e)}o<0&&(o=e)}if(l<0)return;let p=d+1;for(;/\s/.test(a.charAt(p));)p++;let m=a.charAt(p);if(m===`"`||m===`'`){p++;for(let e=p;e<a.length;e++){let t=a.charAt(e);if(t===`\\`)e++;else if(t===m)return}}else if(/[\s>]/.test(a.slice(p)))return;return{key:a.slice(l,u),valueStart:i+p}}function tt(e,t){return et(e,t)?.key}function nt(e){return e.reduce((e,t)=>{let n=[];return e.forEach(e=>{t.forEach(t=>{n.push(e.concat([t]))})}),n},[[]])}const G=1e3,rt=6e5,it=5e7,at=6e4,K=3e5,ot=5e4,st=2e5,ct=5e3,q={...h,maxAttempts:15e3,maxCandidates:15e3,maxCharacters:6e5,maxScans:3e5};function lt(){return{active:0,waiters:[]}}function J(e){return e>=48&&e<=57}function ut(e){for(let t=0;t<e.length;t++)if(J(e.charCodeAt(t)))return!0;return!1}function dt(e,t){let n=0,r=0;for(;n<e.length&&r<t.length;){let i=e.charCodeAt(n),a=t.charCodeAt(r),o=J(i),s=J(a);if(o&&s){let i=n+1,a=r+1;for(;i<e.length&&J(e.charCodeAt(i));)i++;for(;a<t.length&&J(t.charCodeAt(a));)a++;let o=n,s=r;for(;o<i-1&&e.charCodeAt(o)===48;)o++;for(;s<a-1&&t.charCodeAt(s)===48;)s++;let c=i-o,l=a-s;if(c!==l)return c<l?-1:1;for(;o<i;){let n=e.charCodeAt(o)-t.charCodeAt(s);if(n)return n<0?-1:1;o++,s++}n=i,r=a;continue}if(i!==a)return i<a?-1:1;n++,r++}return n!==e.length||r!==t.length?n===e.length?-1:1:0}function Y(e,t){let n=ut(e);return n===ut(t)?dt(e,t)||(e===t?0:e<t?-1:1):n?1:-1}function X(e,t=K,n=it){return{attempts:0,heap:[],limit:e,maxAttempts:t,maxScannedCharacters:n,retained:new Set,scannedCharacters:0}}function Z(e){return e.attempts<e.maxAttempts&&e.scannedCharacters<e.maxScannedCharacters}function Q(e,t){return Z(e)?(e.attempts++,!t||e.retained.has(t)||t.length>at||t.length>e.maxScannedCharacters-e.scannedCharacters?!0:(e.scannedCharacters+=t.length,ft(e,t),!0)):!1}function ft(e,t){if(!(!t||e.retained.has(t)||t.length>at)){if(e.heap.length<e.limit){e.heap.push(t),e.retained.add(t),pt(e.heap,e.heap.length-1);return}Y(t,e.heap[0])>=0||(e.retained.delete(e.heap[0]),e.heap[0]=t,e.retained.add(t),mt(e.heap,0))}}function pt(e,t){let n=t;for(;n>0;){let t=Math.floor((n-1)/2);if(Y(e[t],e[n])>=0)return;[e[t],e[n]]=[e[n],e[t]],n=t}}function mt(e,t){let n=t;for(;;){let t=n*2+1;if(t>=e.length)return;let r=t+1,i=r<e.length&&Y(e[r],e[t])>0?r:t;if(Y(e[n],e[i])>=0)return;[e[n],e[i]]=[e[i],e[n]],n=i}}function $(e){let t=[],n=0;for(let r of e.heap.sort(Y))n+r.length>rt||(t.push(r),n+=r.length);return t}function ht(e,t,n,r){return Math.floor((t+n)*e/r)-Math.floor(t*e/r)}function*gt(e){let t=e.filter(e=>e.length).map(e=>({index:0,source:e})),n=0;for(;t.length;){let e=t[n];yield e.source[e.index++],e.index===e.source.length?t.splice(n,1):n++,n===t.length&&(n=0)}}function*_t(e,t,n,r,i,a){for(;n.attempts<r&&n.characters<i;){let r=e.next();if(r.done)return;let o=r.value;n.attempts++,!(!o||t.has(o)||o.length>a||o.length>i-n.characters)&&(t.add(o),n.characters+=o.length,yield o)}}function vt(e){let t=``;for(let n of e.parts){if(n.type!==`static`)break;t+=n.value}return t}function yt(e,t){if(!t)return{priorityCount:0,templates:[...e]};let n=t.replace(/-/g,``),r=[],i=[];for(let a=0;a<e.length;a++){let o=e[a],s=vt(o),c=s.replace(/-/g,``),l=-1;s&&t.startsWith(s)?l=0:c&&n.startsWith(c)?l=1:s.startsWith(t)?l=2:c.startsWith(n)&&(l=3),l<0?i.push(o):r.push({category:l,index:a,parsed:o,prefixLength:l<2?l?c.length:s.length:0})}return r.sort((e,t)=>e.category-t.category||t.prefixLength-e.prefixLength||e.index-t.index),{priorityCount:r.length,templates:[...r.map(({parsed:e})=>e),...i]}}function bt(e,t){return e.length<=t?[...e]:t<=0?[]:t===1?[e[0]]:Array.from({length:t},(n,r)=>e[Math.floor(r*(e.length-1)/(t-1))])}async function xt(e,t,n){let r=Array(e.length),i=0,a=!1,o=Array.from({length:Math.min(t,e.length)},async()=>{for(;!a&&i<e.length;){let t=i++;try{r[t]=await n(e[t])}catch(e){throw a=!0,e}}});return await Promise.all(o),r}function St(e,t=G){let n=X(t);for(let t of e)if(!Q(n,t))break;return $(n)}function Ct(e,t){let n=[],r=new Set,i=0,a=0;for(let o of e)if(o.startsWith(t)){if(i===K||n.length===G||a>=rt)break;i++,!(!o||r.has(o)||o.length>at||a+o.length>rt)&&(r.add(o),n.push(o),a+=o.length)}return n}function wt(o,s={}){let c=new Map,l=new a({max:ct,maxSize:32e6,sizeCalculation:(e,t)=>Math.max(1,t.length*2+e.reduce((e,t)=>e+t.length*2+8,0))}),u=new Map,d=o.config,f=0,p=[],m,g,_=[],v=0,y=new Set,S=new Set,C=[],w=new Map,T=new Set,ee=lt(),{matchType:E=`prefix`,throwErrors:te=!0}=s;return ve(),{suggest:D,suggestInFile:O,templates:C,cache:l,errorCache:u,reset:ve,enumerate:ne};async function ne(){let e=Array.from(`abcdefghijklmnopqrstuvwxyz`),t=[...e,`-`],n=e.flatMap(e=>[e,...t.map(t=>`${e}${t}`)]);for(;;){P();let e=d,t=f,r=new Set;if(await re(n,r,e,t,e=>e)&&await re([...r].filter(e=>/^\w+$/.test(e)&&e.length>3),r,e,t,e=>`${e}-`))return r}}async function re(e,t,n,r,i){for(let a=0;a<e.length;a+=128){let o=await I(Promise.all(e.slice(a,a+128).map(e=>D(i(e)))),n,r);if(o.stale)return!1;for(let e of o.value)for(let n of e)t.add(n)}return!0}async function D(e,t=!1){if(P(),!t&&e.length<1)return[];if(l.has(e))return l.get(e);let n=w.get(e);if(n)return n;let r=ae(e,t);w.set(e,r);try{return await r}finally{w.get(e)===r&&w.delete(e)}}async function ae(e,t){for(;;){P();let n=d,r=f;if(!t&&e.length<1)return[];if(l.has(e))return l.get(e);let i=n.presets.find(e=>e.name===`@teacss/preset-attributify`)?.options?.prefix,a=i?e.startsWith(i)?e.slice(i.length):e.replace(`:${i}`,`:`):e,s=await I(o.matchVariants(a),n,r);if(s.stale)continue;let c=await I(Promise.all(s.value.map(async([,t])=>{if(!t&&a)return[];let i=t?e.indexOf(t):e.length;i===-1&&(i=0);let o=e.slice(0,i),s=e.slice(i+t.length),c=E===`fuzzy`?[oe(t,n,r),le(t,n,r),j(t),se(t)]:[oe(t,n,r),se(t),j(t),le(t,n,r)];return L(await Promise.all(c),o,s)})),n,r);if(c.stale)continue;let u=c.value.flat();if(u=E===`fuzzy`?pe(A(u,e,{maxCandidates:q.maxCandidates,maxCharacters:q.maxCharacters}),e):St(u),!F(n,r))return l.set(e,u),u}}async function O(e,t){P();let n=d,r=f,i=tt(e,t)!==void 0,a=await I(k(e,t,n),n,r);if(a.stale)return O(e,t);let o=a.value;if(o){let a=await D(o.extracted,i);if(F(n,r))return O(e,t);let s=o.transformSuggestions?o.transformSuggestions(a):a;return{suggestions:a.map((e,t)=>[e,s[t]]),resolveReplacement:o.resolveReplacement}}let s=Ge(e,t,n.presets.some(e=>e.name===`@teacss/preset-attributify`));if(!s)return;let c=await D(s.content,i);return F(n,r)?O(e,t):{suggestions:c.map(e=>[e,e]),resolveReplacement:e=>({start:s.start,end:s.end,replacement:e})}}async function k(e,t,n){if(!n.autocomplete.extractors.length)return null;for(let r of n.autocomplete.extractors){let n=await r.extract({content:e,cursor:t});if(n)return n}return null}async function oe(e,t,n){let r=await o.parseToken(e,`-`);return r&&!F(t,n)&&(S.delete(e),S.add(e),S.size>ct&&S.delete(S.values().next().value)),r?[e]:[]}async function se(e){if(E===`fuzzy`){let t=me(),n=pe(_,e,t,v),r=A(he(),e,{maxAttempts:K,maxCandidates:750,maxCharacters:6e4});return A([...n,...r],e,{maxCandidates:G,maxCharacters:q.maxCharacters})}return m??=[...p].sort(Y),Ct(m,e)}async function j(e){return St(t());function*t(){for(let t of S)t.startsWith(e)&&(yield t);for(let[t,n]of o.cache){if(!n)continue;let r=t.replace(/ -$/,``);r.startsWith(e)&&(yield r)}}}async function le(e,t,n){let r=C.filter(e=>typeof e==`function`);if(E!==`fuzzy`){let i=ge(e),a=await ue(r,e,t,n);return[...i,...a]}let i=_e(e),a=await de(r,e,t,n);return[...i,...a]}async function ue(e,t,n,r){if(!e.length)return[];let i=X(G),a=X(G);for(let o=0;o<e.length;o+=8){let s=await xt(e.slice(o,o+8),8,e=>M(e,t,n,r));if(F(n,r))return[];let c=ht(K,o,s.length,e.length),l=ht(it,o,s.length,e.length),u=X(G,c,l),d=gt(s.filter(e=>!!e?.length));for(;Z(u);){let e=d.next();if(e.done)break;Q(u,e.value)}for(let e of $(u))ft(i,e);let f=X(G,c,l);for(;Z(f);){let e=d.next();if(e.done)break;Q(f,e.value)}for(let e of $(f))ft(i,e);for(;Z(a);){let e=d.next();if(e.done)break;Q(a,e.value)}}for(let e of $(a))ft(i,e);return $(i)}async function de(e,t,n,r){if(!e.length)return[];let i=[],a=new Set,o={attempts:0,characters:0};for(let s=0;s<e.length;s+=32){let c=await xt(e.slice(s,s+32),32,e=>M(e,t,n,r));if(F(n,r))return[];let l=gt(c.filter(e=>!!e?.length)),u=ht(K,s,c.length,e.length),d=ht(h.maxScannedCharacters,s,c.length,e.length),f=A(l,t,{maxAttempts:u,maxCandidates:G,maxCharacters:q.maxCharacters,maxScannedCharacters:d});i=A([...i,...f],t,{maxAttempts:i.length+f.length,maxCandidates:G,maxCharacters:q.maxCharacters});let p=A(_t(l,a,{attempts:0,characters:0},u,d,h.maxCandidateLength),t,{maxAttempts:u,maxCandidates:750,maxCharacters:q.maxCharacters,maxScannedCharacters:d});i=A([...i,...p],t,{maxAttempts:i.length+p.length,maxCandidates:G,maxCharacters:q.maxCharacters});let m=A(_t(l,a,{attempts:0,characters:0},u,d,h.maxCandidateLength),t,{maxAttempts:u,maxCandidates:750,maxCharacters:q.maxCharacters,maxScannedCharacters:d});i=A([...i,...m],t,{maxAttempts:i.length+m.length,maxCandidates:G,maxCharacters:q.maxCharacters});let g=A(_t(l,a,o,K,h.maxScannedCharacters,h.maxCandidateLength),t,{maxAttempts:K-o.attempts,maxCandidates:750,maxCharacters:q.maxCharacters,maxScannedCharacters:h.maxScannedCharacters-o.characters});i=A([...i,...g],t,{maxAttempts:i.length+g.length,maxCandidates:G,maxCharacters:q.maxCharacters})}return i}async function M(e,t,n,r){let i=ee;await fe(i);try{if(F(n,r))return;try{return await e(t)}catch{return}}finally{N(i)}}async function fe(e){if(e.active<128){e.active++;return}await new Promise(t=>e.waiters.push(t))}function N(e){let t=e.waiters.shift();t?t():e.active--}function pe(e,t,a,o){return ce(t,o??e.reduce((e,t)=>e+t.length,0))?A(e,t,{maxCandidates:G,maxCharacters:q.maxCharacters}):(a??new n(e,{fuzzy:`v1`,limit:G,tiebreakers:[i,r]})).find(t).map(e=>e.item)}function me(){if(g)return g;let e=new Set,t=0,a=0,o=n=>!n||e.has(n)||n.length>q.maxCandidateLength||e.size===q.maxCandidates||t+n.length>q.maxCharacters?!1:(e.add(n),t+=n.length,!0),s=0;for(;s<p.length&&a<q.maxAttempts&&e.size<q.maxCandidates&&t<q.maxCharacters;){let e=p[s++];a++,o(e)&&y.add(e)}return _=[...e],v=t,g=new n(_,{fuzzy:`v1`,limit:G,tiebreakers:[i,r]}),g}function*he(){for(let e of p)y.has(e)||(yield e)}function ge(e){let t=X(G),n=0,r=0,i=0,a=yt([...c.values()],e).templates.slice(0,ot);for(let o=0;o<a.length;o++){let s=K-n,c=it-r,l=st-i;if(c<=0||s<=0||l<=0||!Z(t))break;let u=a.length-o,d=Math.max(1,Math.floor(s/u)),f=x(a[o],e,{maxAttempts:d,maxCandidateLength:at,maxCandidates:d,maxCharacters:Math.max(1,Math.floor(c/u)),maxScans:Math.max(1,Math.floor(l/u))});n+=f.attempts,r+=f.characters,i+=f.scans;for(let e of f.suggestions)if(!Q(t,e))break}return $(t)}function _e(e){let t=[],n=new Set,r=0,i=0,a=0,o=0,s=yt([...c.values()],e).templates.slice(0,ot),l=e=>{!e||n.has(e)||e.length>h.maxCandidateLength||a>=q.maxCandidates||r+e.length>q.maxCharacters||(n.add(e),t.push(e),a++,r+=e.length)},u=0;for(let t of A(f(),e,{maxAttempts:ot,maxCandidates:750,maxCharacters:q.maxCharacters}))l(t);let d=bt(s,Math.max(1,Math.floor(Math.min(q.maxAttempts,q.maxCandidates-a)/2)));for(let t=0;t<d.length;t++){let n=q.maxAttempts-i,s=q.maxCandidates-a,c=q.maxCharacters-r,u=q.maxScans-o;if(n<=0||s<=0||c<=0||u<=0)break;let f=d.length-t,p={maxAttempts:Math.max(2,Math.floor(n/f)),maxCandidates:Math.max(2,Math.floor(s/f)),maxCharacters:Math.max(1,Math.floor(c/f)),maxScans:Math.max(1,Math.floor(u/f))},m;if(e.length<=1){let n=x(d[t],e,p);m=n.suggestions,i+=n.attempts,o+=n.scans}else{let n=Ie(d[t].parts,p,e);m=n.candidates,i+=n.attempts,o+=n.scans}for(let e of m)l(e)}return A(t,e,{maxAttempts:q.maxAttempts,maxCandidates:750,maxCharacters:q.maxCharacters});function*f(){for(let t=0;t<s.length;t++){let n=st-u;if(n<=0)return;let r=s.length-t,i=(e.length<=1?x:b)(s[t],e,{maxAttempts:1,maxCandidates:1,maxCharacters:h.maxCandidateLength,maxScans:Math.max(1,Math.floor(n/r))});u+=i.scans,yield*i.suggestions}}}function ve(){let t=o.config,n=[...Object.keys(t.rulesStaticMap),...t.shortcuts.filter(e=>typeof e[0]==`string`).map(e=>e[0])],r=[...t.autocomplete.templates||[],...t.rulesDynamic.flatMap(t=>e(t?.[2]?.autocomplete||[])),...t.shortcuts.flatMap(t=>e(t?.[2]?.autocomplete||[])),...t.variants.flatMap(t=>e(t.autocomplete||[]))],i=new Map,a=new Map;for(let e of r)if(typeof e!=`function`){if(i.has(e)||a.has(e))continue;let n=ie(e,t.theme,t.autocomplete.shorthands);n.errors.length&&a.set(e,n.errors),i.set(e,n)}if(a.size&&te){u.clear();for(let[e,t]of a)u.set(e,t);let e=Array.from(a.values()).flat().map(e=>e.toString()).join(`
2
- `);throw Error(e)}f++;for(let e of[...T])e();d=t,p=n,m=void 0,C.length=0,C.push(...r),c.clear();for(let[e,t]of i)c.set(e,t);l.clear(),w.clear(),ee=lt(),u.clear();for(let[e,t]of a)u.set(e,t);g=void 0,_=[],v=0,y.clear(),S.clear()}function P(){d!==o.config&&ve()}function F(e,t){return e!==o.config||t!==f}function I(e,t,n){return new Promise((r,i)=>{let a=!1,s=e=>{a||(a=!0,l(),T.delete(c),r(e))},c=()=>s({stale:!0}),l=o.events.on(`config`,e=>{e!==t&&c()});T.add(c),Promise.resolve(e).then(e=>s({stale:!1,value:e}),e=>{a||(a=!0,l(),T.delete(c),i(e))}),F(t,n)&&c()})}function L(e,n=``,r=``){let i=t(e.flat()).filter(e=>!!(e&&!e.endsWith(`-`)&&!o.isBlocked(e)&&!o.isBlocked(n+e+r)));E!==`fuzzy`&&i.sort(Y);let a=i.map(e=>n+e+r);return E===`fuzzy`?a:St(a)}}export{S as AutocompleteParseError,nt as cartesian,wt as createAutocomplete,w as ignoredThemeKeys,ie as parseAutocomplete,tt as searchAttrKey,Ge as searchUsageBoundary,C as shorthands};
1
+ import{toArray as e,uniq as t}from"@teacss/core";import{Fzf as n,byLengthAsc as r,byStartAsc as i}from"fzf";import{LRUCache as a}from"lru-cache";var o=`@teacss/autocomplete`;const s=5e4,c=2e6,l=5e4,u=4096,d=1e3,f=5e7,p=1e5,m=new Map(Array.from(`ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåçèéêëìíîïñòóôõöøùúûüýÿĀāĂ㥹ĆćĈĉĊċČčĎďđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥħĨĩĪīĬĭĮįİıĴĵĶķĹĺĻļĽľŀłŃńŅņŇňŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƃƆƈƉƊƌƎƐƒƓƗƙƚƜƝƞƟƠơƥƫƭƮƯưƲƴƶǍǎǏǐǑǒǓǔǗǘǝǥǦǧǨǩǪǫǰǴǵǸǹȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȞȟȠȡȥȦȧȨȩȮȯȲȳȴȵȶȷȺȻȼȽȾȿɀɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɓɔɕɖɗɘɛɜɝɞɟɠɡɢɥɦɨɪɫɬɭɯɰɱɲɳɴɵɹɺɻɼɽɾɿʀʁʂʇʈʉʋʌʍʎʏʐʑʗʙʚʛʜʝʞʟʠʮͣͤͥͦͧͨͩͪͫͬͭͮͯᴀᴃᴄᴅᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᵢᵣᵤᵥḀḁḂḃḄḅḆḇḊḋḌḍḎḏḐḑḒḓḘḙḚḛḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉṊṋṔṕṖṗṘṙṚṛṞṟṠṡṢṣṪṫṬṭṮṯṰṱṲṳṴṵṶṷṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹⁱₕₖₗₘₙₚₛₜↄ`,(e,t)=>[e,`AAAAAACEEEEIIIINOOOOOOUUUUYsaaaaaaceeeeiiiinoooooouuuuyyAaAaAaCcCcCcCcDddEeEeEeEeEeGgGgGgGgHhhIiIiIiIiIiJjKkLlLlLlllNnNnNnOoOoOoRrRrRrSsSsSsSsTtTttUuUuUuUuUuUuWwYyYZzZzZzsbBbOcDDdEEfGIklMNnOOopttTUuVyzAaIiOoUuUuegGgKkOojGgNnAaAaEeEeIiIiOoOoRrRrUuUuSsTtHhNdzAaEeOoYylntjACcLTszBUVEeJjQqRrYyaabocddeeeeejggGhhiIlllmmmnnNorrrrrrrRRsttuvvwyYzzcBeGHjkLqhaeioucdhmrtvxABCDEeiJKLMNOOoooooPRRTUuumVWZiruvAaBbBbBbDdDdDdDdDdEeEeFfGgHhHhHhHhHhIiIiKkKkKkLlLlLlMmMmMmNnNnNnNnPpPpRrRrRrSsSsTtTtTtTtUuUuUuVvVvWwWwWwWwWwXxXxYyZzZzZzhtwyasAaAaAaAaAaAaAaAaAaAaAaAaEeEeEeEeEeEeEeEeIiIiOoOoOoOoOoOoOoOoOoOoOoOoUuUuUuUuUuUuUuYyYyYyYyihklmnpstc`[t]])),h={maxAttempts:l,maxCandidateLength:u,maxCandidates:s,maxCharacters:c,maxScans:p,maxScannedCharacters:5e7},g={...h,maxCandidateLength:c,maxCandidates:d};function _(){return{suggestions:[],attempts:0,candidates:0,characters:0,scans:0,truncated:!1}}const v=new WeakMap,y=new WeakMap;function b(e,t,n){let r=v.get(e);if(!r){let n=e.suggest(t,`prefix`)??[];return{suggestions:n,attempts:n.length,candidates:n.length,characters:n.reduce((e,t)=>e+t.length,0),scans:n.length,truncated:!1}}return r(t,n)}function x(e,t,n){let r=y.get(e);return r?r(t,n):b(e,t,n)}var S=class extends Error{template;constructor(e,t){super(e),this.template=t,this.name=o,this.template=t}toString(){return`⚠️ [${this.name}]: ${this.message}. ${this.template?`Template: ${this.template}.`:``}`}};const C={directions:`(x|y|t|b|l|r|s|e)`,num:`(${[0,1,2,3,4,5,6,8,10,12,24,36].join(`|`)})`,percent:`(${[0,10,20,30,40,50,60,70,80,90,100].join(`|`)})`,percentage:`(${[`10%`,`20%`,`30%`,`40%`,`50%`,`60%`,`70%`,`80%`,`90%`,`100%`].join(`|`)})`},w=[`DEFAULT`];function T(e,t,n,r){let i=0;Array.from(e.matchAll(t)).forEach(t=>{let a=t.index;i!==a&&r(e.slice(i,a),i,a),n(t),i=a+t[0].length}),i!==e.length&&r(e.slice(i),i,e.length)}const E=s;function D(e,t){let n=0;for(let r=t;r<e.length;r++)if(e[r]===`(`)n++;else if(e[r]===`)`&&--n===0)return r}function ee(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`(`?n++:a===`)`?n--:a===`|`&&n===0&&(t.push(e.slice(r,i)),r=i+1)}return t.push(e.slice(r)),t}function te(e,t){let n=e.indexOf(`(`),r=n===-1?void 0:D(e,n);if(n===-1||r==null)return[e];let i=e.slice(0,n),a=te(e.slice(r+1),t);if(a===void 0)return;let o=[];for(let s of ee(e.slice(n+1,r))){let e=te(s,t);if(e===void 0)return;for(let n of e)for(let e of a){if(--t.remaining<0)return;o.push(`${i}${n}${e}`)}}return o}function ne(e){let t={remaining:E},n=[];for(let r of ee(e)){let e=te(r,t);if(e===void 0)return;n.push(...e)}return n}function re(e,t={},r={}){let i=[],a=[],o={...C,...r};e=e.replace(/<([\w-]+)>/g,(e,t,n,r)=>Object.hasOwn(o,t)?o[t]:(a.push(new S(`Unknown template shorthand: <${t}>`,r)),e)),l(e),a.length&&(i.length=0);let s={parts:i,suggest:f,errors:a};return v.set(s,m),y.set(s,p),s;function c(e){T(e,/\$([\w.|-]+)/g,e=>{i.push({type:`theme`,objects:e[1].split(`|`).map(n=>{let r=n.split(`.`).reduce((t,n)=>!n||typeof t!=`object`||!t||!Object.hasOwn(t,n)||!t[n]?(a.push(new S(`Invalid theme key: ${n}`,e.input)),{}):t[n],t);return typeof r!=`object`||!r||Array.isArray(r)?(a.push(new S(`Invalid theme path: ${n}`,e.input)),{}):r})})},e=>{i.push({type:`static`,value:e})})}function l(t){let n=0;for(let r=0;r<t.length;r++){if(t[r]!==`(`)continue;let o=D(t,r);if(o==null)break;let s=t.slice(r+1,o);if(n!==r&&c(t.slice(n,r)),n=o+1,!s.includes(`|`)){i.push({type:`static`,value:t.slice(r,o+1)}),r=o;continue}let l=ne(s);l===void 0?(a.push(new S(`Template group expands past ${E} values: (${s})`,e)),i.push({type:`static`,value:t.slice(r,o+1)})):i.push({type:`group`,values:l}),r=o}n!==t.length&&c(t.slice(n))}function f(e,t=`prefix`){if(e.length>1&&t===`fuzzy`){let t=e!==e.toLowerCase(),r=P(e,t),a=m(e,{maxCandidates:d}).suggestions.filter(e=>M(r,P(e,t),e,0));if(r.length>u)return a;let o=Ie(i,{},e).candidates;if(a.length){let e=new Set(a);if(o.every(t=>e.has(t)))return a}if(se(e,o.reduce((e,t)=>e+t.length,0))){let t=ae(o,e),n=t.filter(t=>de(t,e));return n.length?je(n,[...a,...t]):je(a,t)}return je(a,new n(o,{fuzzy:`v1`,limit:d}).find(e).map(e=>e.item))}return p(e).suggestions}function p(e,t={}){let n={...g,...t},r=A(e);if(r.length>n.maxCandidateLength)return _();let a=O(i);if(a){let t=ie(i,0,a.index);if(!_e(t,e)&&!_e(A(t),r))return _();let o=ie(i,a.index+1,i.length);return ve(a.part,t,o,e,a.suppressPartialRoots,n)}let o=k(i);return o&&!_e(o,e)&&!_e(A(o),A(e))?_():pe(i,e,n)}function m(e,t={}){let n={...h,...t},r=p(e,n),a=k(i);if(r.suggestions.length||!a)return r;let o={...n,maxAttempts:n.maxAttempts-r.attempts,maxCandidates:n.maxCandidates-r.candidates,maxCharacters:n.maxCharacters-r.characters,maxScans:n.maxScans-r.scans},s=p(a+e,o);return{suggestions:s.suggestions,attempts:r.attempts+s.attempts,candidates:r.candidates+s.candidates,characters:r.characters+s.characters,scans:r.scans+s.scans,truncated:r.truncated||s.truncated}}}function O(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(i.type!==`static`){if(i.type===`group`&&i.values.length>0&&i.values.every(e=>e===``)){n=!0;continue}if(i.type!==`theme`||t)return;t={index:r,part:i}}}return t&&{...t,suppressPartialRoots:n}}function ie(e,t,n){let r=``;for(let i=t;i<n;i++){let t=e[i];t.type===`static`&&(r+=t.value)}return r}function k(e){let t=e.findIndex(e=>e.type!==`static`);return ie(e,0,t<0?e.length:t)}function A(e){return e.replace(/-/g,``)}function ae(e,t){return j(e,t)}function j(e,t,n={}){let r={...h,maxCandidates:d,...n};if(!t)return oe(e,r);let i=t!==t.toLowerCase(),a=P(t,i);if(a.length>r.maxCandidateLength)return[];let o={characters:0,items:[],retained:new Set},s=new Set,c=e[Symbol.iterator](),l=0,u=0;for(;l<r.maxAttempts&&u<r.maxScannedCharacters;){let e=c.next();if(e.done)break;let t=e.value,n=l++;if(!t||t.length>r.maxCandidateLength||s.has(t)||t.length>r.maxScannedCharacters-u)continue;s.add(t),u+=t.length;let d=M(a,P(t,i),t,n);d&&ce(o,d,r.maxCandidates,r.maxCharacters)}return o.items.sort(N).map(({candidate:e})=>e)}function oe(e,t){let n=[],r=new Set,i=e[Symbol.iterator](),a=0,o=0,s=0;for(;a<t.maxAttempts&&n.length<t.maxCandidates&&o<t.maxCharacters&&s<t.maxScannedCharacters;){let e=i.next();if(e.done)break;let c=e.value;a++,!(!c||c.length>t.maxCandidateLength||r.has(c)||c.length>t.maxScannedCharacters-s)&&(r.add(c),s+=c.length,!(o+c.length>t.maxCharacters)&&(n.push(c),o+=c.length))}return n}function se(e,t){return e.length*t>f}function M(e,t,n,r){if(t===e)return{candidate:n,category:0,gaps:0,longestRun:e.length,start:0,order:r};if(t.startsWith(e))return{candidate:n,category:1,gaps:0,longestRun:e.length,start:0,order:r};let i=0,a=-1,o=-1,s=0,c=0,l=0;for(let n=0;n<t.length&&i<e.length;n++)t[n]===e[i]&&(a<0&&(a=n),o>=0&&(l+=n-o-1),s=n===o+1?s+1:1,c=Math.max(c,s),o=n,i++);if(i===e.length)return{candidate:n,category:2,gaps:l,longestRun:c,start:a,order:r}}function ce(e,t,n,r){e.retained.has(t.candidate)||(e.items.length<n&&e.characters+t.candidate.length<=r?(e.items.push(t),e.retained.add(t.candidate),e.characters+=t.candidate.length,le(e.items,e.items.length-1)):e.items.length&&N(t,e.items[0])<0&&e.characters-e.items[0].candidate.length+t.candidate.length<=r&&(e.retained.delete(e.items[0].candidate),e.characters+=t.candidate.length-e.items[0].candidate.length,e.items[0]=t,e.retained.add(t.candidate),ue(e.items,0)))}function le(e,t){for(;t>0;){let n=t-1>>>1;if(N(e[t],e[n])<=0)return;[e[n],e[t]]=[e[t],e[n]],t=n}}function ue(e,t){for(;;){let n=t*2+1;if(n>=e.length)return;let r=n+1,i=n;if(r<e.length&&N(e[r],e[n])>0&&(i=r),N(e[i],e[t])<=0)return;[e[t],e[i]]=[e[i],e[t]],t=i}}function N(e,t){return e.category-t.category||e.gaps-t.gaps||t.longestRun-e.longestRun||e.start-t.start||e.candidate.length-t.candidate.length||e.order-t.order}function de(e,t){let n=t!==t.toLowerCase();return P(e,n)===P(t,n)}function P(e,t){let n=e.normalize(),r=fe(n)?n:Array.from(n,e=>m.get(e)??e).join(``);return t?r:r.toLowerCase()}function fe(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>127)return!1;return!0}function pe(e,t,n={}){let r={...h,...n};if(r.maxAttempts<=0||r.maxCandidates<=0||r.maxCharacters<=0)return _();let i=A(t),a=me(),o=me(),s=r.maxCandidates,c=xe(r.maxScans),l=[],u=Array.from({length:e.length},()=>``),d=Array.from({length:e.length+1},()=>0),f=Array.from({length:e.length+1},()=>0),p=Array.from({length:e.length+1},()=>0),m=[],g=new Set,v=0,y=0;for(;y>=0&&!c.truncated;){if(y===e.length){let e=u.join(``),n=f[y]>=t.length,c=p[y]>=i.length;if((n||c)&&e.length<=r.maxCharacters){let t=!g.has(e);(!t||v<r.maxAttempts)&&(t&&(g.add(e),v++),n&&he(a,e,m,s,r),c&&he(o,e,m,s,r))}y--;continue}if(v>=r.maxAttempts)break;let n=l[y];n||(n={choiceIndex:0,iterator:Me(e[y],r.maxCandidateLength-d[y],c)},l[y]=n);let h=n.iterator.next();if(h.done){l.pop(),y--;continue}let _=n.choiceIndex++,b=h.value,x=d[y]+b.length;if(x>r.maxCandidateLength)continue;let S=f[y]<0?-1:z(t,f[y],b,!1),C=p[y]<0?-1:z(i,p[y],b,!0);if(S<0&&C<0)continue;for(;m.length&&!(m.at(-1).depth<y);)m.pop();_>0&&m.push({depth:y,index:_}),u[y]=b;let w=y+1;d[w]=x,f[w]=S,p[w]=C,l.length=w,y=w}let b=a.entries.length?a:o;b.entries.sort((e,t)=>R(e.path,t.path));let x=b.entries.map(e=>e.candidate);return{suggestions:x,attempts:v,candidates:x.length,characters:b.characters,scans:c.initial-c.remaining,truncated:c.truncated}}function me(){return{characters:0,entries:[],indices:new Map}}function he(e,t,n,r,i){let a=e.indices.get(t);if(a!==void 0){let t=e.entries[a];R(n,t.path)<0&&(t.path=n.slice(),I(e,a));return}if(r<=0||t.length>i.maxCharacters)return;let o={candidate:t,path:n.slice()};if(e.entries.length>=r){if(R(o.path,e.entries[0].path)>=0)return;ge(e)}for(;e.entries.length&&e.characters+t.length>i.maxCharacters;){if(R(o.path,e.entries[0].path)>=0)return;ge(e)}e.characters+t.length>i.maxCharacters||(e.indices.set(t,e.entries.length),e.entries.push(o),e.characters+=t.length,F(e,e.entries.length-1))}function ge(e){let t=e.entries[0],n=e.entries.pop();e.indices.delete(t.candidate),e.characters-=t.candidate.length,e.entries.length&&(e.entries[0]=n,e.indices.set(n.candidate,0),I(e,0))}function F(e,t){for(;t>0;){let n=t-1>>>1;if(R(e.entries[t].path,e.entries[n].path)<=0)return;L(e,n,t),t=n}}function I(e,t){for(;;){let n=t*2+1;if(n>=e.entries.length)return;let r=n+1,i=n;if(r<e.entries.length&&R(e.entries[r].path,e.entries[n].path)>0&&(i=r),R(e.entries[i].path,e.entries[t].path)<=0)return;L(e,i,t),t=i}}function L(e,t,n){[e.entries[t],e.entries[n]]=[e.entries[n],e.entries[t]],e.indices.set(e.entries[t].candidate,t),e.indices.set(e.entries[n].candidate,n)}function R(e,t){let n=e.length-1,r=t.length-1;for(;n>=0||r>=0;){let i=n>=0?e[n].depth:-1,a=r>=0?t[r].depth:-1,o=Math.max(i,a),s=i===o?e[n--].index:0,c=a===o?t[r--].index:0;if(s!==c)return s-c}return 0}function z(e,t,n,r){let i=t;for(let t=0;t<n.length;t++){let a=n[t];if(!(r&&a===`-`)){if(i<e.length&&e[i]!==a)return-1;i++}}return i}function _e(e,t){return e.length<=t.length?t.startsWith(e):e.startsWith(t)}function ve(e,t,n,r,i,a){let o={...h,...a};if(t.length+1>o.maxCandidateLength)return _();let s=xe(o.maxScans),c=Ce(e.objects,s),l=we(r,!1,o),u=we(A(r),!0,o);ye(c,t,n,o.maxCandidateLength,i,l,u,s);let d=Te(l,s);if(d.suggestions.length||!d.exhausted)return d;let f=Te(u,s);return{suggestions:f.suggestions,attempts:d.attempts+f.attempts,candidates:d.candidates+f.candidates,characters:d.characters+f.characters,scans:f.scans,truncated:f.truncated}}function ye(e,t,n,r,i,a,o,s){for(let c of e){let e=t+c.key,l=Ee(e,a.input,!1),u=Ee(e,o.input,!0);if(l===`none`&&u===`none`)continue;let d=Oe(c.objects,e,n,a.input,o.input,r),f=l===`partial`||u===`partial`?ke(d,s):void 0,p=f!==void 0;if(De(a,l,c.hasLeaf,p,e,n,i),De(o,u,c.hasLeaf,p,e,n,i),a.blocked)return;for(f??=ke(d,s);f;){if((l===`reached`||i&&l===`partial`)&&V(a,f.candidate,f.rawMatch),(u===`reached`||i&&u===`partial`)&&V(o,f.candidate,f.normalizedMatch),a.blocked)return;f=ke(d,s)}if(s.truncated||a.blocked)return}}function be(e){return!!e&&e[0]!==`_`&&!w.includes(e)}function xe(e=p){let t=Math.max(0,e);return{initial:t,remaining:t,truncated:!1}}function Se(e){return e.remaining<=0?(e.truncated=!0,!1):(e.remaining--,!0)}function*B(e){yield*Object.keys(e)}function Ce(e,t){let n=new Map;outer:for(let r of e)for(let e of B(r)){if(!Se(t))break outer;if(!be(e))continue;let i=r[e];if(i==null)continue;let a=n.get(e)??{key:e,hasLeaf:!1,objects:[]};if(typeof i!=`object`||Array.isArray(i))a.hasLeaf=!0;else{let e=i;a.objects.push(e),a.hasLeaf||=Object.hasOwn(e,`DEFAULT`)&&e.DEFAULT!==null&&e.DEFAULT!==void 0}n.set(e,a)}return[...n.values()]}function we(e,t,n){return{attempts:0,blocked:n.maxAttempts<=0||n.maxCandidates<=0||n.maxCharacters<=0,characters:0,input:e,limits:n,normalize:t,seen:new Set,suggestions:[]}}function V(e,t,n){!n||e.blocked||e.seen.has(t)||(e.seen.add(t),e.attempts++,t.length<=e.limits.maxCandidateLength&&e.characters+t.length<=e.limits.maxCharacters&&(e.suggestions.push(t),e.characters+=t.length),e.blocked||=e.attempts>=e.limits.maxAttempts||e.suggestions.length>=e.limits.maxCandidates||e.characters>=e.limits.maxCharacters)}function Te(e,t){return{suggestions:e.suggestions,attempts:e.attempts,candidates:e.suggestions.length,characters:e.characters,scans:t.initial-t.remaining,truncated:t.truncated,exhausted:!e.blocked&&!t.truncated}}function Ee(e,t,n){let r=n?A(e):e;return t.startsWith(r)?`reached`:r.startsWith(t)?`partial`:`none`}function De(e,t,n,r,i,a,o){if(t===`none`)return;if(t===`partial`&&r){(n||!o)&&V(e,i,!0);return}if(!n)return;let s=i+a;V(e,s,(e.normalize?A(s):s).startsWith(e.input))}function Oe(e,t,n,r,i,a){return{base:t,fragments:[],frames:[],maxCandidateLength:a,normalizedInput:i,normalizedMatchedLength:z(i,0,t,!0),objectIndex:0,objects:e,rawInput:r,rawMatchedLength:z(r,0,t,!1),staticSuffix:n}}function ke(e,t){for(;!t.truncated;){if(!e.frames.length){if(e.objectIndex>=e.objects.length)return;let t=e.objects[e.objectIndex++];e.frames.push({depth:0,iterator:B(t),normalizedMatchedLength:e.normalizedMatchedLength,object:t,rawMatchedLength:e.rawMatchedLength,valueLength:0})}let n=e.frames.at(-1),r=n.iterator.next();if(r.done){e.frames.pop(),e.fragments.length=n.depth;continue}if(!Se(t))return;let i=r.value;if(!be(i))continue;let a=n.object[i];if(a==null)continue;let o=n.valueLength+ +!!n.depth+i.length;if(e.base.length+o+e.staticSuffix.length+1>e.maxCandidateLength)continue;let s=`-${i}`,c=n.rawMatchedLength<0?-1:z(e.rawInput,n.rawMatchedLength,s,!1),l=n.normalizedMatchedLength<0?-1:z(e.normalizedInput,n.normalizedMatchedLength,s,!0);if(c<0&&l<0)continue;e.fragments.length=n.depth,e.fragments.push(i);let u=typeof a==`object`&&!Array.isArray(a)?a:void 0;if(u&&e.frames.push({depth:n.depth+1,iterator:B(u),normalizedMatchedLength:l,object:u,rawMatchedLength:c,valueLength:o}),!(!u||Object.hasOwn(u,`DEFAULT`)&&u.DEFAULT!==null&&u.DEFAULT!==void 0))continue;let d=Ae(e.rawInput,c,e.staticSuffix,!1),f=Ae(e.normalizedInput,l,e.staticSuffix,!0);if(!(!d&&!f))return{candidate:`${e.base}-${e.fragments.join(`-`)}${e.staticSuffix}`,normalizedMatch:f,rawMatch:d}}}function Ae(e,t,n,r){return t<0?!1:z(e,t,n,r)>=e.length}function je(e,t){let n=[],r=new Set,i=0,a=(e,t)=>{for(let a of e){if(n.length===t)return;if(!(!a||r.has(a)||a.length>u)){if(i+a.length>c)return;r.add(a),n.push(a),i+=a.length}}};return a(e,t.length?750:d),a(t,d),a(e,d),n}function*Me(e,t,n){e.type===`theme`?yield*Pe(e.objects,t,n):yield*Ne(e,t,n)}function*Ne(e,t,n){if(e.type===`static`){e.value.length<=t&&(yield e.value);return}if(e.type===`group`)for(let r of e.values){if(!Se(n))return;r.length<=t&&(yield r)}}function*Pe(e,t,n){let r=[];for(let i of e){r.length=0;let e=[{depth:0,iterator:B(i),object:i,valueLength:0}];for(;e.length&&!n.truncated;){let i=e.at(-1),a=i.iterator.next();if(a.done){e.pop(),r.length=i.depth;continue}if(!Se(n))return;let o=a.value;if(!be(o))continue;let s=i.object[o];if(s==null)continue;let c=i.valueLength+ +!!i.depth+o.length;if(c>t)continue;r.length=i.depth,r.push(o);let l=typeof s==`object`&&!Array.isArray(s)?s:void 0;l&&e.push({depth:i.depth+1,iterator:B(l),object:l,valueLength:c}),(!l||Object.hasOwn(l,`DEFAULT`)&&l.DEFAULT!==null&&l.DEFAULT!==void 0)&&(yield r.join(`-`))}}}function Fe(e,t){let n=xe(t.maxScans),r=e.map(e=>({done:!1,iterator:Me(e,t.maxCandidateLength,n),pending:void 0,seen:new Set,values:[]})),i=e.length+Math.max(0,t.maxCandidates-1),a=r.length,o=0,s=0,c=!1,l=r.length;for(;l&&!n.truncated;){let e=!1;for(let n of r){if(!n.values.length&&n.pending!==void 0&&o+n.pending.length<=t.maxCharacters){n.values.push(n.pending),o+=n.pending.length,n.pending=void 0,s++,l--,e=!0;continue}if(n.done)continue;let r=n.iterator.next();if(e=!0,r.done){n.done=!0,a--;continue}if(n.seen.has(r.value))continue;if(n.seen.add(r.value),!n.values.length){o+r.value.length<=t.maxCharacters?(n.values.push(r.value),o+=r.value.length,s++,l--):(n.pending===void 0||r.value.length<n.pending.length)&&(n.pending=r.value,c=!0);continue}let i=n.values[0];r.value.length<i.length&&(n.values[0]=r.value,o+=r.value.length-i.length,c=!0)}if(!e)break}for(;a&&s<i&&o<t.maxCharacters&&!n.truncated;){let e=!1;for(let n of r){if(n.done)continue;let r=n.iterator.next();if(r.done){n.done=!0,a--;continue}if(e=!0,!n.seen.has(r.value)){if(n.seen.add(r.value),o+r.value.length>t.maxCharacters){c=!0;continue}if(n.values.push(r.value),o+=r.value.length,s++,s===i)break}}if(!e)break}return c||=n.truncated||a>0||l>0,{scans:n.initial-n.remaining,truncated:c,values:r.map(e=>e.values)}}function Ie(e,t={},n=``){let r={...h,...t},i=Fe(e,r),a=i.values,o=i.scans,s,c=()=>{if(s===void 0){let t=Le(a,n,r);s=t?{combination:t,scans:0}:Re(e,n,r,Math.max(0,r.maxScans-o)),o+=s.scans}return s};if(a.some(e=>!e.length)){let e=i.truncated?c().combination:void 0;if(!e)return{candidates:[],truncated:i.truncated,attempts:0,scans:o};let t=H(r),n={remaining:r.maxAttempts};return U(t,n,0)&&W(t,e),{candidates:[...t.candidates],truncated:!0,attempts:r.maxAttempts-n.remaining,scans:o}}let u=0;for(let e of a){let t=e[0].length;for(let n=1;n<e.length;n++)t=Math.min(t,e[n].length);if(u+=t,u>Math.min(r.maxCandidateLength,r.maxCharacters)){let e=i.truncated?c().combination:void 0;if(!e)return{candidates:[],truncated:!0,attempts:0,scans:o};let t=H(r),n={remaining:r.maxAttempts};return U(t,n,0)&&W(t,e),{candidates:[...t.candidates],truncated:!0,attempts:r.maxAttempts-n.remaining,scans:o}}}let d=1,p=0,m=i.truncated;for(let e of a){if(m)continue;let t=0;for(let n of e)if(t+=n.length,t>r.maxCharacters)break;let n=p*e.length,i=d*t;d>r.maxCandidates/e.length||d>r.maxAttempts/e.length||n>r.maxCharacters||i>r.maxCharacters-n?m=!0:(d*=e.length,p=n+i)}let g={remaining:r.maxAttempts};if(!m){let e=H(r);return We(e,a,d,g),{candidates:[...e.candidates],truncated:!1,attempts:r.maxAttempts-g.remaining,scans:o}}let _=H(r),v=a.map(e=>e[0]),y=a.flatMap((e,t)=>e.length>1?[t]:[]),b=c().combination;b&&U(_,g,0)&&W(_,b),U(_,g,0)&&W(_,v);let x=Math.min(l,Math.max(0,g.remaining));return e.length&&x>f/e.length?{candidates:[..._.candidates],truncated:!0,attempts:r.maxAttempts-g.remaining,scans:o}:(Be(_,a,v,y,g),He(_,a,v,y,g),Ve(_,a,v,y,g),Ue(_,a,v,y,g),We(_,a,r.maxAttempts,g,!0),{candidates:[..._.candidates],truncated:!0,attempts:r.maxAttempts-g.remaining,scans:o})}function Le(e,t,n){if(!t||e.some(e=>!e.length))return;let r=t!==t.toLowerCase(),i=P(t,r);if(!i||i.length>n.maxCandidateLength)return;let a=Math.min(n.maxCandidateLength,n.maxCharacters),o=Array.from({length:e.length+1},()=>0);for(let t=e.length-1;t>=0;t--){let n=e[t][0].length;for(let r=1;r<e[t].length;r++)n=Math.min(n,e[t][r].length);o[t]=o[t+1]+n}if(o[0]>a)return;let s=[],c=0,l=0;for(let t=0;t<e.length;t++){let n,u=l;for(let s of e[t]){if(c+s.length+o[t+1]>a)continue;let e=ze(i,l,P(s,r)),d=e>l,f=u>l;(n===void 0||d&&!f||d===f&&(s.length<n.length||s.length===n.length&&e>u))&&(n=s,u=e)}if(n===void 0)return;s.push(n),c+=n.length,l=u}if(l<i.length)return;let u=s.join(``);if(M(i,P(u,r),u,0))return s}function Re(e,t,n,r){let i=xe(r),a=e=>({combination:e,scans:i.initial-i.remaining});if(!t)return a();let o=t!==t.toLowerCase(),s=P(t,o);if(!s||s.length>n.maxCandidateLength)return a();let c=Math.min(n.maxCandidateLength,n.maxCharacters),u=[{characters:0,choice:``,matched:0}],d=0,p=0;for(let t of e){let e=new Map,n=new Set;for(let r of Me(t,c,i)){if(n.has(r))continue;n.add(r);let t={normalized:P(r,o),raw:r};for(let n of u){if(p++,d+=t.normalized.length,p>l||d>f)return a();let r=n.characters+t.raw.length;if(r>c)continue;let i=ze(s,n.matched,t.normalized),o=e.get(i);o&&o.characters<=r||e.set(i,{characters:r,choice:t.raw,matched:i,previous:n})}}if(!e.size)return a();let r=1/0;u=[...e.values()].sort((e,t)=>t.matched-e.matched||e.characters-t.characters).filter(e=>e.characters>=r?!1:(r=e.characters,!0))}let m=u.find(e=>e.matched===s.length);if(!m)return a();let h=Array.from({length:e.length},()=>``),g=m;for(let t=e.length-1;t>=0;t--)h[t]=g.choice,g=g.previous;let _=h.join(``);return M(s,P(_,o),_,0)?a(h):a()}function ze(e,t,n){for(let r=0;r<n.length&&t<e.length;r++)n[r]===e[t]&&t++;return t}function H(e){return{candidates:new Set,characters:0,maxCandidateLength:e.maxCandidateLength,maxCandidates:e.maxCandidates,maxCharacters:e.maxCharacters}}function U(e,t,n){return n>=l||t.remaining<=0||e.candidates.size>=e.maxCandidates||e.characters>=e.maxCharacters?!1:(t.remaining--,!0)}function Be(e,t,n,r,i){let a=0;for(let o of r){if(!U(e,i,a))return;a++;let r=n.slice();r[o]=t[o].at(-1),W(e,r)}}function Ve(e,t,n,r,i){let a=0;for(let o=0;o<r.length;o++)for(let s=o+1;s<r.length;s++){if(!U(e,i,a))return;a++;let c=r[o],l=r[s],u=n.slice();u[c]=t[c].at(-1),u[l]=t[l].at(-1),W(e,u)}}function He(e,t,n,r,i){let a=0;for(let o of r)for(let r=1;r<t[o].length-1;r++){if(!U(e,i,a))return;a++;let s=n.slice();s[o]=t[o][r],W(e,s)}}function Ue(e,t,n,r,i){let a=0;for(let o=0;o<r.length;o++)for(let s=o+1;s<r.length;s++){let c=r[o],l=r[s];for(let r=1;r<t[c].length;r++)for(let o=1;o<t[l].length;o++){if(r===t[c].length-1&&o===t[l].length-1)continue;if(!U(e,i,a))return;a++;let s=n.slice();s[c]=t[c][r],s[l]=t[l][o],W(e,s)}}}function We(e,t,n,r,i=!1){if(!t.length){U(e,r,0)&&W(e,[``]);return}let a=t.map(()=>0),o=t.flatMap((e,t)=>e.length>1?[t]:[]),s=()=>{let e=o.length-1;for(;e>=0;){let n=o[e];if(a[n]++,a[n]<t[n].length)return!0;a[n]=0,e--}return!1};if(i&&!s())return;let c=Math.min(n,l);for(let n=0;n<c;n++){if(!U(e,r,n))return;if(W(e,t.map((e,t)=>e[a[t]])),!s())break}}function W(e,t){let n=e.maxCharacters-e.characters,r=0;for(let i of t)if(r+=i.length,r>Math.min(e.maxCandidateLength,n))return;let i=t.join(``);e.candidates.has(i)||e.candidates.size===e.maxCandidates||e.characters+i.length>e.maxCharacters||(e.candidates.add(i),e.characters+=i.length)}function Ge(e,t,n=!0){let r=t,i=t,a=/[^\s>"'`;]/;for(;r&&a.test(e.charAt(r-1));)--r;for(;i<e.length&&a.test(e.charAt(i));)++i;if(n)return{content:e.slice(r,i),start:r,end:i};let o=et(e,t),s=o?.key.toLowerCase();if(o&&(s?.endsWith(`class`)||s?.endsWith(`classname`)))return r=Math.max(r,o.valueStart),{content:e.slice(r,i),start:r,end:i};let c=e.slice(0,r).trimEnd();if(/(?:^|[\s;{])@apply$/.test(c))return{content:e.slice(r,i),start:r,end:i}}const Ke=new Set(`a abbr address area article aside audio b base bdi bdo blockquote body br button canvas caption cite code col colgroup data datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins kbd label legend li link main map mark menu meta meter nav noscript object ol optgroup option output p picture pre progress q rp rt ruby s samp script search section select slot small source span strong style sub summary sup table tbody td template textarea tfoot th thead time title tr track u ul var video wbr svg`.split(` `)),qe=new Set(`=([{,:;!?&|>~`);function Je(e){return e>=65&&e<=90||e>=97&&e<=122}function Ye(e){return Je(e)||e===95}function Xe(e){return Ye(e)||e>=48&&e<=57||e===36||e===45||e===46||e===58}function Ze(e,t,n){let r=t-n.length;return r<0||e.slice(r,t)!==n?!1:r===0||!Xe(e.charCodeAt(r-1))}function Qe(e,t,n,r){if(Ke.has(n.toLowerCase())||n.includes(`-`)||r&&n.charCodeAt(0)>=65&&n.charCodeAt(0)<=90)return!0;let i=t-1;for(;i>=0&&/\s/.test(e.charAt(i));)i--;return i<0||qe.has(e.charAt(i))?!0:Ze(e,i+1,`return`)}function $e(e){let t,n=!1,r,i=0,a=0;for(;a<e.length;){if(t){let o=e.charAt(a);r?o===`\\`?a++:o===r&&(r=void 0):o===`"`||o===`'`?r=o:o===`{`?i++:o===`}`?i>0&&i--:o===`>`&&i===0&&(t=void 0,n=!0),a++;continue}if(e.charAt(a)===`;`&&(n=!1),e.charCodeAt(a)!==60){a++;continue}let o=a++;if(!Ye(e.charCodeAt(a)))continue;let s=a;for(;a<e.length&&Xe(e.charCodeAt(a));)a++;if(a<e.length&&!/[\s/>]/.test(e.charAt(a)))continue;let c=e.slice(s,a);Qe(e,o,c,n)&&(t={name:c,start:o},i=0)}return t}function et(e,t){let n=e.substring(0,t),r=$e(n);if(!r)return;let i=r.start+1,a=n.slice(i),o=-1,s=-1,c=-1,l=-1,u=-1,d=-1,f;for(let e=0;e<a.length;e++){let t=a.charAt(e);if(f){t===`\\`?e++:t===f&&(f=void 0);continue}if(t===`"`||t===`'`){f=t,o<0&&(o=e);continue}if(/\s/.test(t)){o>=0&&(s=o,c=e,o=-1);continue}if(t===`=`){let t=o>=0?o:s,n=o>=0?e:c;t>=0&&n>t&&t>=l&&(l=t,u=n,d=e)}o<0&&(o=e)}if(l<0)return;let p=d+1;for(;/\s/.test(a.charAt(p));)p++;let m=a.charAt(p);if(m===`"`||m===`'`){p++;for(let e=p;e<a.length;e++){let t=a.charAt(e);if(t===`\\`)e++;else if(t===m)return}}else if(/[\s>]/.test(a.slice(p)))return;return{key:a.slice(l,u),valueStart:i+p}}function tt(e,t){return et(e,t)?.key}function nt(e,t){return et(e,t)}function rt(e){return e.reduce((e,t)=>{let n=[];return e.forEach(e=>{t.forEach(t=>{n.push(e.concat([t]))})}),n},[[]])}const G=1e3,it=6e5,at=5e7,ot=6e4,K=3e5,st=5e4,ct=2e5,lt=5e3,q={...h,maxAttempts:15e3,maxCandidates:15e3,maxCharacters:6e5,maxScans:3e5};function ut(){return{active:0,waiters:[]}}function J(e){return e>=48&&e<=57}function dt(e){for(let t=0;t<e.length;t++)if(J(e.charCodeAt(t)))return!0;return!1}function ft(e,t){let n=0,r=0;for(;n<e.length&&r<t.length;){let i=e.charCodeAt(n),a=t.charCodeAt(r),o=J(i),s=J(a);if(o&&s){let i=n+1,a=r+1;for(;i<e.length&&J(e.charCodeAt(i));)i++;for(;a<t.length&&J(t.charCodeAt(a));)a++;let o=n,s=r;for(;o<i-1&&e.charCodeAt(o)===48;)o++;for(;s<a-1&&t.charCodeAt(s)===48;)s++;let c=i-o,l=a-s;if(c!==l)return c<l?-1:1;for(;o<i;){let n=e.charCodeAt(o)-t.charCodeAt(s);if(n)return n<0?-1:1;o++,s++}n=i,r=a;continue}if(i!==a)return i<a?-1:1;n++,r++}return n!==e.length||r!==t.length?n===e.length?-1:1:0}function Y(e,t){let n=dt(e);return n===dt(t)?ft(e,t)||(e===t?0:e<t?-1:1):n?1:-1}function X(e,t=K,n=at){return{attempts:0,heap:[],limit:e,maxAttempts:t,maxScannedCharacters:n,retained:new Set,scannedCharacters:0}}function Z(e){return e.attempts<e.maxAttempts&&e.scannedCharacters<e.maxScannedCharacters}function Q(e,t){return Z(e)?(e.attempts++,!t||e.retained.has(t)||t.length>ot||t.length>e.maxScannedCharacters-e.scannedCharacters?!0:(e.scannedCharacters+=t.length,pt(e,t),!0)):!1}function pt(e,t){if(!(!t||e.retained.has(t)||t.length>ot)){if(e.heap.length<e.limit){e.heap.push(t),e.retained.add(t),mt(e.heap,e.heap.length-1);return}Y(t,e.heap[0])>=0||(e.retained.delete(e.heap[0]),e.heap[0]=t,e.retained.add(t),ht(e.heap,0))}}function mt(e,t){let n=t;for(;n>0;){let t=Math.floor((n-1)/2);if(Y(e[t],e[n])>=0)return;[e[t],e[n]]=[e[n],e[t]],n=t}}function ht(e,t){let n=t;for(;;){let t=n*2+1;if(t>=e.length)return;let r=t+1,i=r<e.length&&Y(e[r],e[t])>0?r:t;if(Y(e[n],e[i])>=0)return;[e[n],e[i]]=[e[i],e[n]],n=i}}function $(e){let t=[],n=0;for(let r of e.heap.sort(Y))n+r.length>it||(t.push(r),n+=r.length);return t}function gt(e,t,n,r){return Math.floor((t+n)*e/r)-Math.floor(t*e/r)}function*_t(e){let t=e.filter(e=>e.length).map(e=>({index:0,source:e})),n=0;for(;t.length;){let e=t[n];yield e.source[e.index++],e.index===e.source.length?t.splice(n,1):n++,n===t.length&&(n=0)}}function*vt(e,t,n,r,i,a){for(;n.attempts<r&&n.characters<i;){let r=e.next();if(r.done)return;let o=r.value;n.attempts++,!(!o||t.has(o)||o.length>a||o.length>i-n.characters)&&(t.add(o),n.characters+=o.length,yield o)}}function yt(e){let t=``;for(let n of e.parts){if(n.type!==`static`)break;t+=n.value}return t}function bt(e,t){if(!t)return{priorityCount:0,templates:[...e]};let n=t.replace(/-/g,``),r=[],i=[];for(let a=0;a<e.length;a++){let o=e[a],s=yt(o),c=s.replace(/-/g,``),l=-1;s&&t.startsWith(s)?l=0:c&&n.startsWith(c)?l=1:s.startsWith(t)?l=2:c.startsWith(n)&&(l=3),l<0?i.push(o):r.push({category:l,index:a,parsed:o,prefixLength:l<2?l?c.length:s.length:0})}return r.sort((e,t)=>e.category-t.category||t.prefixLength-e.prefixLength||e.index-t.index),{priorityCount:r.length,templates:[...r.map(({parsed:e})=>e),...i]}}function xt(e,t){return e.length<=t?[...e]:t<=0?[]:t===1?[e[0]]:Array.from({length:t},(n,r)=>e[Math.floor(r*(e.length-1)/(t-1))])}async function St(e,t,n){let r=Array(e.length),i=0,a=!1,o=Array.from({length:Math.min(t,e.length)},async()=>{for(;!a&&i<e.length;){let t=i++;try{r[t]=await n(e[t])}catch(e){throw a=!0,e}}});return await Promise.all(o),r}function Ct(e,t=G){let n=X(t);for(let t of e)if(!Q(n,t))break;return $(n)}function wt(e,t){let n=[],r=new Set,i=0,a=0;for(let o of e)if(o.startsWith(t)){if(i===K||n.length===G||a>=it)break;i++,!(!o||r.has(o)||o.length>ot||a+o.length>it)&&(r.add(o),n.push(o),a+=o.length)}return n}function Tt(o,s={}){let c=new Map,l=new a({max:lt,maxSize:32e6,sizeCalculation:(e,t)=>Math.max(1,t.length*2+e.reduce((e,t)=>e+t.length*2+8,0))}),u=new Map,d=o.config,f=0,p=[],m,g,_=[],v=0,y=new Set,S=new Set,C=[],w=new Map,T=new Set,E=ut(),{matchType:D=`prefix`,throwErrors:ee=!0}=s;return F(),{suggest:O,suggestInFile:k,templates:C,cache:l,errorCache:u,reset:F,enumerate:te};async function te(){let e=Array.from(`abcdefghijklmnopqrstuvwxyz`),t=[...e,`-`],n=e.flatMap(e=>[e,...t.map(t=>`${e}${t}`)]);for(;;){I();let e=d,t=f,r=new Set;if(await ne(n,r,e,t,e=>e)&&await ne([...r].filter(e=>/^\w+$/.test(e)&&e.length>3),r,e,t,e=>`${e}-`))return r}}async function ne(e,t,n,r,i){for(let a=0;a<e.length;a+=128){let o=await R(Promise.all(e.slice(a,a+128).map(e=>O(i(e)))),n,r);if(o.stale)return!1;for(let e of o.value)for(let n of e)t.add(n)}return!0}async function O(e,t=!1){if(I(),!t&&e.length<1)return[];if(l.has(e))return l.get(e);let n=w.get(e);if(n)return n;let r=ie(e,t);w.set(e,r);try{return await r}finally{w.get(e)===r&&w.delete(e)}}async function ie(e,t){for(;;){I();let n=d,r=f;if(!t&&e.length<1)return[];if(l.has(e))return l.get(e);let i=n.presets.find(e=>e.name===`@teacss/preset-attributify`)?.options?.prefix,a=i?e.startsWith(i)?e.slice(i.length):e.replace(`:${i}`,`:`):e,s=await R(o.matchVariants(a),n,r);if(s.stale)continue;let c=await R(Promise.all(s.value.map(async([,t])=>{if(!t&&a)return[];let i=t?e.indexOf(t):e.length;i===-1&&(i=0);let o=e.slice(0,i),s=e.slice(i+t.length),c=D===`fuzzy`?[ae(t,n,r),ce(t,n,r),M(t),oe(t)]:[ae(t,n,r),oe(t),M(t),ce(t,n,r)];return z(await Promise.all(c),o,s)})),n,r);if(c.stale)continue;let u=c.value.flat();if(u=D===`fuzzy`?fe(j(u,e,{maxCandidates:q.maxCandidates,maxCharacters:q.maxCharacters}),e):Ct(u),!L(n,r))return l.set(e,u),u}}async function k(e,t){I();let n=d,r=f,i=tt(e,t)!==void 0,a=await R(A(e,t,n),n,r);if(a.stale)return k(e,t);let o=a.value;if(o){let a=await O(o.extracted,i);if(L(n,r))return k(e,t);let s=o.transformSuggestions?o.transformSuggestions(a):a;return{suggestions:a.map((e,t)=>[e,s[t]]),resolveReplacement:o.resolveReplacement}}let s=Ge(e,t,n.presets.some(e=>e.name===`@teacss/preset-attributify`));if(!s)return;let c=await O(s.content,i);return L(n,r)?k(e,t):{suggestions:c.map(e=>[e,e]),resolveReplacement:e=>({start:s.start,end:s.end,replacement:e})}}async function A(e,t,n){if(!n.autocomplete.extractors.length)return null;for(let r of n.autocomplete.extractors){let n=await r.extract({content:e,cursor:t});if(n)return n}return null}async function ae(e,t,n){let r=await o.parseToken(e,`-`);return r&&!L(t,n)&&(S.delete(e),S.add(e),S.size>lt&&S.delete(S.values().next().value)),r?[e]:[]}async function oe(e){if(D===`fuzzy`){let t=pe(),n=fe(_,e,t,v),r=j(me(),e,{maxAttempts:K,maxCandidates:750,maxCharacters:6e4});return j([...n,...r],e,{maxCandidates:G,maxCharacters:q.maxCharacters})}return m??=[...p].sort(Y),wt(m,e)}async function M(e){return Ct(t());function*t(){for(let t of S)t.startsWith(e)&&(yield t);for(let[t,n]of o.cache){if(!n)continue;let r=t.replace(/ -$/,``);r.startsWith(e)&&(yield r)}}}async function ce(e,t,n){let r=C.filter(e=>typeof e==`function`);if(D!==`fuzzy`){let i=he(e),a=await le(r,e,t,n);return[...i,...a]}let i=ge(e),a=await ue(r,e,t,n);return[...i,...a]}async function le(e,t,n,r){if(!e.length)return[];let i=X(G),a=X(G);for(let o=0;o<e.length;o+=8){let s=await St(e.slice(o,o+8),8,e=>N(e,t,n,r));if(L(n,r))return[];let c=gt(K,o,s.length,e.length),l=gt(at,o,s.length,e.length),u=X(G,c,l),d=_t(s.filter(e=>!!e?.length));for(;Z(u);){let e=d.next();if(e.done)break;Q(u,e.value)}for(let e of $(u))pt(i,e);let f=X(G,c,l);for(;Z(f);){let e=d.next();if(e.done)break;Q(f,e.value)}for(let e of $(f))pt(i,e);for(;Z(a);){let e=d.next();if(e.done)break;Q(a,e.value)}}for(let e of $(a))pt(i,e);return $(i)}async function ue(e,t,n,r){if(!e.length)return[];let i=[],a=new Set,o={attempts:0,characters:0};for(let s=0;s<e.length;s+=32){let c=await St(e.slice(s,s+32),32,e=>N(e,t,n,r));if(L(n,r))return[];let l=_t(c.filter(e=>!!e?.length)),u=gt(K,s,c.length,e.length),d=gt(h.maxScannedCharacters,s,c.length,e.length),f=j(l,t,{maxAttempts:u,maxCandidates:G,maxCharacters:q.maxCharacters,maxScannedCharacters:d});i=j([...i,...f],t,{maxAttempts:i.length+f.length,maxCandidates:G,maxCharacters:q.maxCharacters});let p=j(vt(l,a,{attempts:0,characters:0},u,d,h.maxCandidateLength),t,{maxAttempts:u,maxCandidates:750,maxCharacters:q.maxCharacters,maxScannedCharacters:d});i=j([...i,...p],t,{maxAttempts:i.length+p.length,maxCandidates:G,maxCharacters:q.maxCharacters});let m=j(vt(l,a,{attempts:0,characters:0},u,d,h.maxCandidateLength),t,{maxAttempts:u,maxCandidates:750,maxCharacters:q.maxCharacters,maxScannedCharacters:d});i=j([...i,...m],t,{maxAttempts:i.length+m.length,maxCandidates:G,maxCharacters:q.maxCharacters});let g=j(vt(l,a,o,K,h.maxScannedCharacters,h.maxCandidateLength),t,{maxAttempts:K-o.attempts,maxCandidates:750,maxCharacters:q.maxCharacters,maxScannedCharacters:h.maxScannedCharacters-o.characters});i=j([...i,...g],t,{maxAttempts:i.length+g.length,maxCandidates:G,maxCharacters:q.maxCharacters})}return i}async function N(e,t,n,r){let i=E;await de(i);try{if(L(n,r))return;try{return await e(t)}catch{return}}finally{P(i)}}async function de(e){if(e.active<128){e.active++;return}await new Promise(t=>e.waiters.push(t))}function P(e){let t=e.waiters.shift();t?t():e.active--}function fe(e,t,a,o){return se(t,o??e.reduce((e,t)=>e+t.length,0))?j(e,t,{maxCandidates:G,maxCharacters:q.maxCharacters}):(a??new n(e,{fuzzy:`v1`,limit:G,tiebreakers:[i,r]})).find(t).map(e=>e.item)}function pe(){if(g)return g;let e=new Set,t=0,a=0,o=n=>!n||e.has(n)||n.length>q.maxCandidateLength||e.size===q.maxCandidates||t+n.length>q.maxCharacters?!1:(e.add(n),t+=n.length,!0),s=0;for(;s<p.length&&a<q.maxAttempts&&e.size<q.maxCandidates&&t<q.maxCharacters;){let e=p[s++];a++,o(e)&&y.add(e)}return _=[...e],v=t,g=new n(_,{fuzzy:`v1`,limit:G,tiebreakers:[i,r]}),g}function*me(){for(let e of p)y.has(e)||(yield e)}function he(e){let t=X(G),n=0,r=0,i=0,a=bt([...c.values()],e).templates.slice(0,st);for(let o=0;o<a.length;o++){let s=K-n,c=at-r,l=ct-i;if(c<=0||s<=0||l<=0||!Z(t))break;let u=a.length-o,d=Math.max(1,Math.floor(s/u)),f=x(a[o],e,{maxAttempts:d,maxCandidateLength:ot,maxCandidates:d,maxCharacters:Math.max(1,Math.floor(c/u)),maxScans:Math.max(1,Math.floor(l/u))});n+=f.attempts,r+=f.characters,i+=f.scans;for(let e of f.suggestions)if(!Q(t,e))break}return $(t)}function ge(e){let t=[],n=new Set,r=0,i=0,a=0,o=0,s=bt([...c.values()],e).templates.slice(0,st),l=e=>{!e||n.has(e)||e.length>h.maxCandidateLength||a>=q.maxCandidates||r+e.length>q.maxCharacters||(n.add(e),t.push(e),a++,r+=e.length)},u=0;for(let t of j(f(),e,{maxAttempts:st,maxCandidates:750,maxCharacters:q.maxCharacters}))l(t);let d=xt(s,Math.max(1,Math.floor(Math.min(q.maxAttempts,q.maxCandidates-a)/2)));for(let t=0;t<d.length;t++){let n=q.maxAttempts-i,s=q.maxCandidates-a,c=q.maxCharacters-r,u=q.maxScans-o;if(n<=0||s<=0||c<=0||u<=0)break;let f=d.length-t,p={maxAttempts:Math.max(2,Math.floor(n/f)),maxCandidates:Math.max(2,Math.floor(s/f)),maxCharacters:Math.max(1,Math.floor(c/f)),maxScans:Math.max(1,Math.floor(u/f))},m;if(e.length<=1){let n=x(d[t],e,p);m=n.suggestions,i+=n.attempts,o+=n.scans}else{let n=Ie(d[t].parts,p,e);m=n.candidates,i+=n.attempts,o+=n.scans}for(let e of m)l(e)}return j(t,e,{maxAttempts:q.maxAttempts,maxCandidates:750,maxCharacters:q.maxCharacters});function*f(){for(let t=0;t<s.length;t++){let n=ct-u;if(n<=0)return;let r=s.length-t,i=(e.length<=1?x:b)(s[t],e,{maxAttempts:1,maxCandidates:1,maxCharacters:h.maxCandidateLength,maxScans:Math.max(1,Math.floor(n/r))});u+=i.scans,yield*i.suggestions}}}function F(){let t=o.config,n=[...Object.keys(t.rulesStaticMap),...t.shortcuts.filter(e=>typeof e[0]==`string`).map(e=>e[0])],r=[...t.autocomplete.templates||[],...t.rulesDynamic.flatMap(t=>e(t?.[2]?.autocomplete||[])),...t.shortcuts.flatMap(t=>e(t?.[2]?.autocomplete||[])),...t.variants.flatMap(t=>e(t.autocomplete||[]))],i=new Map,a=new Map;for(let e of r)if(typeof e!=`function`){if(i.has(e)||a.has(e))continue;let n=re(e,t.theme,t.autocomplete.shorthands);n.errors.length&&a.set(e,n.errors),i.set(e,n)}if(a.size&&ee){u.clear();for(let[e,t]of a)u.set(e,t);let e=Array.from(a.values()).flat().map(e=>e.toString()).join(`
2
+ `);throw Error(e)}f++;for(let e of[...T])e();d=t,p=n,m=void 0,C.length=0,C.push(...r),c.clear();for(let[e,t]of i)c.set(e,t);l.clear(),w.clear(),E=ut(),u.clear();for(let[e,t]of a)u.set(e,t);g=void 0,_=[],v=0,y.clear(),S.clear()}function I(){d!==o.config&&F()}function L(e,t){return e!==o.config||t!==f}function R(e,t,n){return new Promise((r,i)=>{let a=!1,s=e=>{a||(a=!0,l(),T.delete(c),r(e))},c=()=>s({stale:!0}),l=o.events.on(`config`,e=>{e!==t&&c()});T.add(c),Promise.resolve(e).then(e=>s({stale:!1,value:e}),e=>{a||(a=!0,l(),T.delete(c),i(e))}),L(t,n)&&c()})}function z(e,n=``,r=``){let i=t(e.flat()).filter(e=>!!(e&&!e.endsWith(`-`)&&!o.isBlocked(e)&&!o.isBlocked(n+e+r)));D!==`fuzzy`&&i.sort(Y);let a=i.map(e=>n+e+r);return D===`fuzzy`?a:Ct(a)}}export{S as AutocompleteParseError,rt as cartesian,Tt as createAutocomplete,w as ignoredThemeKeys,re as parseAutocomplete,nt as searchAttrContext,tt as searchAttrKey,Ge as searchUsageBoundary,C as shorthands};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teacss/autocomplete",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "TeaCSS suggestion engine — utility-class completions for a partial token or a position in a file.",
5
5
  "homepage": "https://css.teasim.com",
6
6
  "funding": "https://github.com/sponsors/billgo",
@@ -22,7 +22,7 @@
22
22
  "dev": "tsdown --config-loader unrun --watch"
23
23
  },
24
24
  "dependencies": {
25
- "@teacss/core": "0.4.2",
25
+ "@teacss/core": "0.4.3",
26
26
  "fzf": "^0.5.2",
27
27
  "lru-cache": "^11.5.2"
28
28
  },