You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@clack/core

Package Overview
Dependencies
Maintainers
3
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@clack/core - npm Package Compare versions

Comparing version
1.0.0-alpha.3
to
1.0.0-alpha.4
+6
-0
CHANGELOG.md
# @clack/core
## 1.0.0-alpha.4
### Patch Changes
- d98e033: add invert selection for multiselect prompt
## 1.0.0-alpha.3

@@ -4,0 +10,0 @@

+1
-0

@@ -204,2 +204,3 @@ import { Key } from 'node:readline';

private toggleAll;
private toggleInvert;
private toggleValue;

@@ -206,0 +207,0 @@ constructor(opts: MultiSelectOptions<T>);

+1
-1

@@ -15,3 +15,3 @@ import D from"picocolors";import{stdout as H,stdin as z}from"node:process";import*as V from"node:readline";import rt from"node:readline";import{cursor as I,erase as $}from"sisteransi";import{ReadStream as Y,WriteStream as nt}from"node:tty";const ut=t=>t===161||t===164||t===167||t===168||t===170||t===173||t===174||t>=176&&t<=180||t>=182&&t<=186||t>=188&&t<=191||t===198||t===208||t===215||t===216||t>=222&&t<=225||t===230||t>=232&&t<=234||t===236||t===237||t===240||t===242||t===243||t>=247&&t<=250||t===252||t===254||t===257||t===273||t===275||t===283||t===294||t===295||t===299||t>=305&&t<=307||t===312||t>=319&&t<=322||t===324||t>=328&&t<=331||t===333||t===338||t===339||t===358||t===359||t===363||t===462||t===464||t===466||t===468||t===470||t===472||t===474||t===476||t===593||t===609||t===708||t===711||t>=713&&t<=715||t===717||t===720||t>=728&&t<=731||t===733||t===735||t>=768&&t<=879||t>=913&&t<=929||t>=931&&t<=937||t>=945&&t<=961||t>=963&&t<=969||t===1025||t>=1040&&t<=1103||t===1105||t===8208||t>=8211&&t<=8214||t===8216||t===8217||t===8220||t===8221||t>=8224&&t<=8226||t>=8228&&t<=8231||t===8240||t===8242||t===8243||t===8245||t===8251||t===8254||t===8308||t===8319||t>=8321&&t<=8324||t===8364||t===8451||t===8453||t===8457||t===8467||t===8470||t===8481||t===8482||t===8486||t===8491||t===8531||t===8532||t>=8539&&t<=8542||t>=8544&&t<=8555||t>=8560&&t<=8569||t===8585||t>=8592&&t<=8601||t===8632||t===8633||t===8658||t===8660||t===8679||t===8704||t===8706||t===8707||t===8711||t===8712||t===8715||t===8719||t===8721||t===8725||t===8730||t>=8733&&t<=8736||t===8739||t===8741||t>=8743&&t<=8748||t===8750||t>=8756&&t<=8759||t===8764||t===8765||t===8776||t===8780||t===8786||t===8800||t===8801||t>=8804&&t<=8807||t===8810||t===8811||t===8814||t===8815||t===8834||t===8835||t===8838||t===8839||t===8853||t===8857||t===8869||t===8895||t===8978||t>=9312&&t<=9449||t>=9451&&t<=9547||t>=9552&&t<=9587||t>=9600&&t<=9615||t>=9618&&t<=9621||t===9632||t===9633||t>=9635&&t<=9641||t===9650||t===9651||t===9654||t===9655||t===9660||t===9661||t===9664||t===9665||t>=9670&&t<=9672||t===9675||t>=9678&&t<=9681||t>=9698&&t<=9701||t===9711||t===9733||t===9734||t===9737||t===9742||t===9743||t===9756||t===9758||t===9792||t===9794||t===9824||t===9825||t>=9827&&t<=9829||t>=9831&&t<=9834||t===9836||t===9837||t===9839||t===9886||t===9887||t===9919||t>=9926&&t<=9933||t>=9935&&t<=9939||t>=9941&&t<=9953||t===9955||t===9960||t===9961||t>=9963&&t<=9969||t===9972||t>=9974&&t<=9977||t===9979||t===9980||t===9982||t===9983||t===10045||t>=10102&&t<=10111||t>=11094&&t<=11097||t>=12872&&t<=12879||t>=57344&&t<=63743||t>=65024&&t<=65039||t===65533||t>=127232&&t<=127242||t>=127248&&t<=127277||t>=127280&&t<=127337||t>=127344&&t<=127373||t===127375||t===127376||t>=127387&&t<=127404||t>=917760&&t<=917999||t>=983040&&t<=1048573||t>=1048576&&t<=1114109,ot=t=>t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510,at=t=>t>=4352&&t<=4447||t===8986||t===8987||t===9001||t===9002||t>=9193&&t<=9196||t===9200||t===9203||t===9725||t===9726||t===9748||t===9749||t>=9800&&t<=9811||t===9855||t===9875||t===9889||t===9898||t===9899||t===9917||t===9918||t===9924||t===9925||t===9934||t===9940||t===9962||t===9970||t===9971||t===9973||t===9978||t===9981||t===9989||t===9994||t===9995||t===10024||t===10060||t===10062||t>=10067&&t<=10069||t===10071||t>=10133&&t<=10135||t===10160||t===10175||t===11035||t===11036||t===11088||t===11093||t>=11904&&t<=11929||t>=11931&&t<=12019||t>=12032&&t<=12245||t>=12272&&t<=12287||t>=12289&&t<=12350||t>=12353&&t<=12438||t>=12441&&t<=12543||t>=12549&&t<=12591||t>=12593&&t<=12686||t>=12688&&t<=12771||t>=12783&&t<=12830||t>=12832&&t<=12871||t>=12880&&t<=19903||t>=19968&&t<=42124||t>=42128&&t<=42182||t>=43360&&t<=43388||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65106||t>=65108&&t<=65126||t>=65128&&t<=65131||t>=94176&&t<=94180||t===94192||t===94193||t>=94208&&t<=100343||t>=100352&&t<=101589||t>=101632&&t<=101640||t>=110576&&t<=110579||t>=110581&&t<=110587||t===110589||t===110590||t>=110592&&t<=110882||t===110898||t>=110928&&t<=110930||t===110933||t>=110948&&t<=110951||t>=110960&&t<=111355||t===126980||t===127183||t===127374||t>=127377&&t<=127386||t>=127488&&t<=127490||t>=127504&&t<=127547||t>=127552&&t<=127560||t===127568||t===127569||t>=127584&&t<=127589||t>=127744&&t<=127776||t>=127789&&t<=127797||t>=127799&&t<=127868||t>=127870&&t<=127891||t>=127904&&t<=127946||t>=127951&&t<=127955||t>=127968&&t<=127984||t===127988||t>=127992&&t<=128062||t===128064||t>=128066&&t<=128252||t>=128255&&t<=128317||t>=128331&&t<=128334||t>=128336&&t<=128359||t===128378||t===128405||t===128406||t===128420||t>=128507&&t<=128591||t>=128640&&t<=128709||t===128716||t>=128720&&t<=128722||t>=128725&&t<=128727||t>=128732&&t<=128735||t===128747||t===128748||t>=128756&&t<=128764||t>=128992&&t<=129003||t===129008||t>=129292&&t<=129338||t>=129340&&t<=129349||t>=129351&&t<=129535||t>=129648&&t<=129660||t>=129664&&t<=129672||t>=129680&&t<=129725||t>=129727&&t<=129733||t>=129742&&t<=129755||t>=129760&&t<=129768||t>=129776&&t<=129784||t>=131072&&t<=196605||t>=196608&&t<=262141,R=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,k=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,y=/\t{1,1000}/y,N=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,M=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,lt=/\p{M}+/gu,ht={limit:1/0,ellipsis:""},q=(t,s={},e={})=>{const i=s.limit??1/0,r=s.ellipsis??"",n=s?.ellipsisWidth??(r?q(r,ht,e).width:0),F=e.ansiWidth??0,l=e.controlWidth??0,a=e.tabWidth??8,v=e.ambiguousWidth??1,g=e.emojiWidth??2,m=e.fullWidthWidth??2,A=e.regularWidth??1,S=e.wideWidth??2;let o=0,u=0,p=t.length,E=0,f=!1,d=p,_=Math.max(0,i-n),b=0,x=0,h=0,c=0;t:for(;;){if(x>b||u>=p&&u>o){const it=t.slice(b,x)||t.slice(o,u);E=0;for(const K of it.replaceAll(lt,"")){const T=K.codePointAt(0)||0;if(ot(T)?c=m:at(T)?c=S:v!==A&&ut(T)?c=v:c=A,h+c>_&&(d=Math.min(d,Math.max(b,o)+E)),h+c>i){f=!0;break t}E+=K.length,h+=c}b=x=0}if(u>=p)break;if(M.lastIndex=u,M.test(t)){if(E=M.lastIndex-u,c=E*A,h+c>_&&(d=Math.min(d,u+Math.floor((_-h)/A))),h+c>i){f=!0;break}h+=c,b=o,x=u,u=o=M.lastIndex;continue}if(R.lastIndex=u,R.test(t)){if(h+F>_&&(d=Math.min(d,u)),h+F>i){f=!0;break}h+=F,b=o,x=u,u=o=R.lastIndex;continue}if(k.lastIndex=u,k.test(t)){if(E=k.lastIndex-u,c=E*l,h+c>_&&(d=Math.min(d,u+Math.floor((_-h)/l))),h+c>i){f=!0;break}h+=c,b=o,x=u,u=o=k.lastIndex;continue}if(y.lastIndex=u,y.test(t)){if(E=y.lastIndex-u,c=E*a,h+c>_&&(d=Math.min(d,u+Math.floor((_-h)/a))),h+c>i){f=!0;break}h+=c,b=o,x=u,u=o=y.lastIndex;continue}if(N.lastIndex=u,N.test(t)){if(h+g>_&&(d=Math.min(d,u)),h+g>i){f=!0;break}h+=g,b=o,x=u,u=o=N.lastIndex;continue}u+=1}return{width:f?_:h,index:f?d:p,truncated:f,ellipsed:f&&i>=n}},ct={limit:1/0,ellipsis:"",ellipsisWidth:0},w=(t,s={})=>q(t,ct,s).width,L="\x1B",J="\x9B",Ft=39,P="\x07",X="[",pt="]",Z="m",O=`${pt}8;;`,Q=new RegExp(`(?:\\${X}(?<code>\\d+)m|\\${O}(?<uri>.*)${P})`,"y"),ft=t=>{if(t>=30&&t<=37||t>=90&&t<=97)return 39;if(t>=40&&t<=47||t>=100&&t<=107)return 49;if(t===1||t===2)return 22;if(t===3)return 23;if(t===4)return 24;if(t===7)return 27;if(t===8)return 28;if(t===9)return 29;if(t===0)return 0},tt=t=>`${L}${X}${t}${Z}`,st=t=>`${L}${O}${t}${P}`,dt=t=>t.map(s=>w(s)),j=(t,s,e)=>{const i=s[Symbol.iterator]();let r=!1,n=!1,F=t.at(-1),l=F===void 0?0:w(F),a=i.next(),v=i.next(),g=0;for(;!a.done;){const m=a.value,A=w(m);l+A<=e?t[t.length-1]+=m:(t.push(m),l=0),(m===L||m===J)&&(r=!0,n=s.startsWith(O,g+1)),r?n?m===P&&(r=!1,n=!1):m===Z&&(r=!1):(l+=A,l===e&&!v.done&&(t.push(""),l=0)),a=v,v=i.next(),g+=m.length}F=t.at(-1),!l&&F!==void 0&&F.length>0&&t.length>1&&(t[t.length-2]+=t.pop())},mt=t=>{const s=t.split(" ");let e=s.length;for(;e>0&&!(w(s[e-1])>0);)e--;return e===s.length?t:s.slice(0,e).join(" ")+s.slice(e).join("")},gt=(t,s,e={})=>{if(e.trim!==!1&&t.trim()==="")return"";let i="",r,n;const F=t.split(" "),l=dt(F);let a=[""];for(const[o,u]of F.entries()){e.trim!==!1&&(a[a.length-1]=(a.at(-1)??"").trimStart());let p=w(a.at(-1)??"");if(o!==0&&(p>=s&&(e.wordWrap===!1||e.trim===!1)&&(a.push(""),p=0),(p>0||e.trim===!1)&&(a[a.length-1]+=" ",p++)),e.hard&&l[o]>s){const E=s-p,f=1+Math.floor((l[o]-E-1)/s);Math.floor((l[o]-1)/s)<f&&a.push(""),j(a,u,s);continue}if(p+l[o]>s&&p>0&&l[o]>0){if(e.wordWrap===!1&&p<s){j(a,u,s);continue}a.push("")}if(p+l[o]>s&&e.wordWrap===!1){j(a,u,s);continue}a[a.length-1]+=u}e.trim!==!1&&(a=a.map(o=>mt(o)));const v=a.join(`

`).slice(i);this.output.write(r.join(`
`)),this._prevFrame=s;return}this.output.write($.down())}this.output.write(s),this.state==="initial"&&(this.state="active"),this._prevFrame=s}}}function Bt(t,s){if(t===void 0||s.length===0)return 0;const e=s.findIndex(i=>i.value===t);return e!==-1?e:0}function xt(t,s){return(s.label??String(s.value)).toLowerCase().includes(t.toLowerCase())}function Dt(t,s){if(s)return t?s:s[0]}class wt extends B{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#t=0;#e="";#i;#s;get cursor(){return this.#t}get userInputWithCursor(){if(!this.userInput)return D.inverse(D.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}\u2588`;const s=this.userInput.slice(0,this._cursor),[e,...i]=this.userInput.slice(this._cursor);return`${s}${D.inverse(e)}${i.join("")}`}get options(){return typeof this.#s=="function"?this.#s():this.#s}constructor(s){super(s),this.#s=s.options;const e=this.options;this.filteredOptions=[...e],this.multiple=s.multiple===!0,this.#i=s.filter??xt;let i;if(s.initialValue&&Array.isArray(s.initialValue)?this.multiple?i=s.initialValue:i=s.initialValue.slice(0,1):!this.multiple&&this.options.length>0&&(i=[this.options[0].value]),i)for(const r of i){const n=e.findIndex(F=>F.value===r);n!==-1&&(this.toggleSelected(r),this.#t=n)}this.focusedValue=this.options[this.#t]?.value,this.on("key",(r,n)=>this.#r(r,n)),this.on("userInput",r=>this.#n(r))}_isActionKey(s,e){return s===" "||this.multiple&&this.isNavigating&&e.name==="space"&&s!==void 0&&s!==""}#r(s,e){const i=e.name==="up",r=e.name==="down",n=e.name==="return";i||r?(this.#t=Math.max(0,Math.min(this.#t+(i?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#t]?.value,this.multiple||(this.selectedValues=[this.focusedValue]),this.isNavigating=!0):n?this.value=Dt(this.multiple,this.selectedValues):this.multiple?this.focusedValue!==void 0&&(e.name==="tab"||this.isNavigating&&e.name==="space")?this.toggleSelected(this.focusedValue):this.isNavigating=!1:(this.focusedValue&&(this.selectedValues=[this.focusedValue]),this.isNavigating=!1)}deselectAll(){this.selectedValues=[]}toggleSelected(s){this.filteredOptions.length!==0&&(this.multiple?this.selectedValues.includes(s)?this.selectedValues=this.selectedValues.filter(e=>e!==s):this.selectedValues=[...this.selectedValues,s]:this.selectedValues=[s])}#n(s){if(s!==this.#e){this.#e=s;const e=this.options;s?this.filteredOptions=e.filter(i=>this.#i(s,i)):this.filteredOptions=[...e],this.#t=Bt(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#t]?.value,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}}let St=class extends B{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(s){super(s,!1),this.value=!!s.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",e=>{this.output.write(I.move(0,-1)),this.value=e,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};class Vt extends B{options;cursor=0;#t;getGroupItems(s){return this.options.filter(e=>e.group===s)}isGroupSelected(s){const e=this.getGroupItems(s),i=this.value;return i===void 0?!1:e.every(r=>i.includes(r.value))}toggleValue(){const s=this.options[this.cursor];if(this.value===void 0&&(this.value=[]),s.group===!0){const e=s.value,i=this.getGroupItems(e);this.isGroupSelected(e)?this.value=this.value.filter(r=>i.findIndex(n=>n.value===r)===-1):this.value=[...this.value,...i.map(r=>r.value)],this.value=Array.from(new Set(this.value))}else{const e=this.value.includes(s.value);this.value=e?this.value.filter(i=>i!==s.value):[...this.value,s.value]}}constructor(s){super(s,!1);const{options:e}=s;this.#t=s.selectableGroups!==!1,this.options=Object.entries(e).flatMap(([i,r])=>[{value:i,group:!0,label:i},...r.map(n=>({...n,group:i}))]),this.value=[...s.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:i})=>i===s.cursorAt),this.#t?0:1),this.on("cursor",i=>{switch(i){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;const r=this.options[this.cursor]?.group===!0;!this.#t&&r&&(this.cursor=this.cursor===0?this.options.length-1:this.cursor-1);break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;const r=this.options[this.cursor]?.group===!0;!this.#t&&r&&(this.cursor=this.cursor===this.options.length-1?0:this.cursor+1);break}case"space":this.toggleValue();break}})}}let kt=class extends B{options;cursor=0;get _value(){return this.options[this.cursor].value}toggleAll(){const s=this.value!==void 0&&this.value.length===this.options.length;this.value=s?[]:this.options.map(e=>e.value)}toggleValue(){this.value===void 0&&(this.value=[]);const s=this.value.includes(this._value);this.value=s?this.value.filter(e=>e!==this._value):[...this.value,this._value]}constructor(s){super(s,!1),this.options=s.options,this.value=[...s.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:e})=>e===s.cursorAt),0),this.on("key",e=>{e==="a"&&this.toggleAll()}),this.on("cursor",e=>{switch(e){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}},yt=class extends B{_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;const s=this.userInput;if(this.cursor>=s.length)return`${this.masked}${D.inverse(D.hidden("_"))}`;const e=this.masked,i=e.slice(0,this.cursor),r=e.slice(this.cursor);return`${i}${D.inverse(r[0])}${r.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:s,...e}){super(e),this._mask=s??"\u2022",this.on("userInput",i=>{this._setValue(i)})}};class Mt extends B{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(s){super(s,!1),this.options=s.options,this.cursor=this.options.findIndex(({value:e})=>e===s.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",e=>{switch(e){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}}class Lt extends B{options;cursor=0;constructor(s){super(s,!1),this.options=s.options;const e=this.options.map(({value:[i]})=>i?.toLowerCase());this.cursor=Math.max(e.indexOf(s.initialValue),0),this.on("key",i=>{if(!i||!e.includes(i))return;const r=this.options.find(({value:[n]})=>n?.toLowerCase()===i);r&&(this.value=r.value,this.state="submit",this.emit("submit"))})}}class Wt extends B{get userInputWithCursor(){if(this.state==="submit")return this.userInput;const s=this.userInput;if(this.cursor>=s.length)return`${this.userInput}\u2588`;const e=s.slice(0,this.cursor),[i,...r]=s.slice(this.cursor);return`${e}${D.inverse(i)}${r.join("")}`}get cursor(){return this._cursor}constructor(s){super({...s,initialUserInput:s.initialUserInput??s.initialValue}),this.on("userInput",e=>{this._setValue(e)}),this.on("finalize",()=>{this.value||(this.value=s.defaultValue),this.value===void 0&&(this.value="")})}}export{wt as AutocompletePrompt,St as ConfirmPrompt,Vt as GroupMultiSelectPrompt,kt as MultiSelectPrompt,yt as PasswordPrompt,B as Prompt,Lt as SelectKeyPrompt,Mt as SelectPrompt,Wt as TextPrompt,Ct as block,bt as getColumns,_t as isCancel,C as settings,vt as updateSettings};
`)),this._prevFrame=s;return}this.output.write($.down())}this.output.write(s),this.state==="initial"&&(this.state="active"),this._prevFrame=s}}}function Bt(t,s){if(t===void 0||s.length===0)return 0;const e=s.findIndex(i=>i.value===t);return e!==-1?e:0}function xt(t,s){return(s.label??String(s.value)).toLowerCase().includes(t.toLowerCase())}function Dt(t,s){if(s)return t?s:s[0]}class wt extends B{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#t=0;#e="";#i;#s;get cursor(){return this.#t}get userInputWithCursor(){if(!this.userInput)return D.inverse(D.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}\u2588`;const s=this.userInput.slice(0,this._cursor),[e,...i]=this.userInput.slice(this._cursor);return`${s}${D.inverse(e)}${i.join("")}`}get options(){return typeof this.#s=="function"?this.#s():this.#s}constructor(s){super(s),this.#s=s.options;const e=this.options;this.filteredOptions=[...e],this.multiple=s.multiple===!0,this.#i=s.filter??xt;let i;if(s.initialValue&&Array.isArray(s.initialValue)?this.multiple?i=s.initialValue:i=s.initialValue.slice(0,1):!this.multiple&&this.options.length>0&&(i=[this.options[0].value]),i)for(const r of i){const n=e.findIndex(F=>F.value===r);n!==-1&&(this.toggleSelected(r),this.#t=n)}this.focusedValue=this.options[this.#t]?.value,this.on("key",(r,n)=>this.#r(r,n)),this.on("userInput",r=>this.#n(r))}_isActionKey(s,e){return s===" "||this.multiple&&this.isNavigating&&e.name==="space"&&s!==void 0&&s!==""}#r(s,e){const i=e.name==="up",r=e.name==="down",n=e.name==="return";i||r?(this.#t=Math.max(0,Math.min(this.#t+(i?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#t]?.value,this.multiple||(this.selectedValues=[this.focusedValue]),this.isNavigating=!0):n?this.value=Dt(this.multiple,this.selectedValues):this.multiple?this.focusedValue!==void 0&&(e.name==="tab"||this.isNavigating&&e.name==="space")?this.toggleSelected(this.focusedValue):this.isNavigating=!1:(this.focusedValue&&(this.selectedValues=[this.focusedValue]),this.isNavigating=!1)}deselectAll(){this.selectedValues=[]}toggleSelected(s){this.filteredOptions.length!==0&&(this.multiple?this.selectedValues.includes(s)?this.selectedValues=this.selectedValues.filter(e=>e!==s):this.selectedValues=[...this.selectedValues,s]:this.selectedValues=[s])}#n(s){if(s!==this.#e){this.#e=s;const e=this.options;s?this.filteredOptions=e.filter(i=>this.#i(s,i)):this.filteredOptions=[...e],this.#t=Bt(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#t]?.value,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}}let St=class extends B{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(s){super(s,!1),this.value=!!s.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",e=>{this.output.write(I.move(0,-1)),this.value=e,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};class Vt extends B{options;cursor=0;#t;getGroupItems(s){return this.options.filter(e=>e.group===s)}isGroupSelected(s){const e=this.getGroupItems(s),i=this.value;return i===void 0?!1:e.every(r=>i.includes(r.value))}toggleValue(){const s=this.options[this.cursor];if(this.value===void 0&&(this.value=[]),s.group===!0){const e=s.value,i=this.getGroupItems(e);this.isGroupSelected(e)?this.value=this.value.filter(r=>i.findIndex(n=>n.value===r)===-1):this.value=[...this.value,...i.map(r=>r.value)],this.value=Array.from(new Set(this.value))}else{const e=this.value.includes(s.value);this.value=e?this.value.filter(i=>i!==s.value):[...this.value,s.value]}}constructor(s){super(s,!1);const{options:e}=s;this.#t=s.selectableGroups!==!1,this.options=Object.entries(e).flatMap(([i,r])=>[{value:i,group:!0,label:i},...r.map(n=>({...n,group:i}))]),this.value=[...s.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:i})=>i===s.cursorAt),this.#t?0:1),this.on("cursor",i=>{switch(i){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;const r=this.options[this.cursor]?.group===!0;!this.#t&&r&&(this.cursor=this.cursor===0?this.options.length-1:this.cursor-1);break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;const r=this.options[this.cursor]?.group===!0;!this.#t&&r&&(this.cursor=this.cursor===this.options.length-1?0:this.cursor+1);break}case"space":this.toggleValue();break}})}}let kt=class extends B{options;cursor=0;get _value(){return this.options[this.cursor].value}toggleAll(){const s=this.value!==void 0&&this.value.length===this.options.length;this.value=s?[]:this.options.map(e=>e.value)}toggleInvert(){const s=this.options.filter(e=>!this.value.includes(e.value));this.value=s.map(e=>e.value)}toggleValue(){this.value===void 0&&(this.value=[]);const s=this.value.includes(this._value);this.value=s?this.value.filter(e=>e!==this._value):[...this.value,this._value]}constructor(s){super(s,!1),this.options=s.options,this.value=[...s.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:e})=>e===s.cursorAt),0),this.on("key",e=>{e==="a"&&this.toggleAll(),e==="i"&&this.toggleInvert()}),this.on("cursor",e=>{switch(e){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}},yt=class extends B{_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;const s=this.userInput;if(this.cursor>=s.length)return`${this.masked}${D.inverse(D.hidden("_"))}`;const e=this.masked,i=e.slice(0,this.cursor),r=e.slice(this.cursor);return`${i}${D.inverse(r[0])}${r.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:s,...e}){super(e),this._mask=s??"\u2022",this.on("userInput",i=>{this._setValue(i)})}};class Mt extends B{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(s){super(s,!1),this.options=s.options,this.cursor=this.options.findIndex(({value:e})=>e===s.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",e=>{switch(e){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}}class Lt extends B{options;cursor=0;constructor(s){super(s,!1),this.options=s.options;const e=this.options.map(({value:[i]})=>i?.toLowerCase());this.cursor=Math.max(e.indexOf(s.initialValue),0),this.on("key",i=>{if(!i||!e.includes(i))return;const r=this.options.find(({value:[n]})=>n?.toLowerCase()===i);r&&(this.value=r.value,this.state="submit",this.emit("submit"))})}}class Wt extends B{get userInputWithCursor(){if(this.state==="submit")return this.userInput;const s=this.userInput;if(this.cursor>=s.length)return`${this.userInput}\u2588`;const e=s.slice(0,this.cursor),[i,...r]=s.slice(this.cursor);return`${e}${D.inverse(i)}${r.join("")}`}get cursor(){return this._cursor}constructor(s){super({...s,initialUserInput:s.initialUserInput??s.initialValue}),this.on("userInput",e=>{this._setValue(e)}),this.on("finalize",()=>{this.value||(this.value=s.defaultValue),this.value===void 0&&(this.value="")})}}export{wt as AutocompletePrompt,St as ConfirmPrompt,Vt as GroupMultiSelectPrompt,kt as MultiSelectPrompt,yt as PasswordPrompt,B as Prompt,Lt as SelectKeyPrompt,Mt as SelectPrompt,Wt as TextPrompt,Ct as block,bt as getColumns,_t as isCancel,C as settings,vt as updateSettings};
//# sourceMappingURL=index.mjs.map
{
"name": "@clack/core",
"version": "1.0.0-alpha.3",
"version": "1.0.0-alpha.4",
"type": "module",

@@ -5,0 +5,0 @@ "main": "./dist/index.mjs",

Sorry, the diff of this file is too big to display