@clack/core
Advanced tools
+8
-0
| # @clack/core | ||
| ## 1.0.0-alpha.7 | ||
| ### Patch Changes | ||
| - 0718b07: fix: export `*Options` types for prompts. | ||
| - 4ba2d78: Support short terminal windows when re-rendering by accounting for off-screen lines | ||
| - acc4c3a: Add a new `withGuide` option to all prompts to disable the default clack border | ||
| ## 1.0.0-alpha.6 | ||
@@ -4,0 +12,0 @@ |
+5
-2
@@ -14,2 +14,3 @@ import { Key } from 'node:readline'; | ||
| }; | ||
| withGuide: boolean; | ||
| } | ||
@@ -41,2 +42,3 @@ declare const settings: InternalClackSettings; | ||
| }; | ||
| withGuide?: boolean; | ||
| } | ||
@@ -275,4 +277,5 @@ declare function updateSettings(updates: ClackSettings): void; | ||
| declare const getRows: (output: Writable) => number; | ||
| declare function wrapTextWithPrefix(output: Writable | undefined, text: string, prefix: string, startPrefix?: string): string; | ||
| export { AutocompletePrompt, ConfirmPrompt, GroupMultiSelectPrompt, MultiSelectPrompt, PasswordPrompt, Prompt, SelectKeyPrompt, SelectPrompt, TextPrompt, block, getColumns, getRows, isCancel, settings, updateSettings }; | ||
| export type { ClackSettings, ClackState as State }; | ||
| export { AutocompletePrompt, ConfirmPrompt, GroupMultiSelectPrompt, MultiSelectPrompt, PasswordPrompt, Prompt, SelectKeyPrompt, SelectPrompt, TextPrompt, block, getColumns, getRows, isCancel, settings, updateSettings, wrapTextWithPrefix }; | ||
| export type { AutocompleteOptions, ClackSettings, ConfirmOptions, GroupMultiSelectOptions, MultiSelectOptions, PasswordOptions, PromptOptions, SelectKeyOptions, SelectOptions, ClackState as State, TextOptions }; |
+15
-13
@@ -1,16 +0,18 @@ | ||
| import D from"picocolors";import{stdout as z,stdin as Y}from"node:process";import*as k from"node:readline";import nt from"node:readline";import{cursor as I,erase as $}from"sisteransi";import{ReadStream as q}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,N=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,y=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,M=/\t{1,1000}/y,O=/[\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,L=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,lt=/\p{M}+/gu,ht={limit:1/0,ellipsis:""},J=(t,s={},e={})=>{const i=s.limit??1/0,r=s.ellipsis??"",n=s?.ellipsisWidth??(r?J(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,V=e.wideWidth??2;let o=0,u=0,p=t.length,E=0,f=!1,d=p,_=Math.max(0,i-n),C=0,x=0,h=0,c=0;t:for(;;){if(x>C||u>=p&&u>o){const rt=t.slice(C,x)||t.slice(o,u);E=0;for(const H of rt.replaceAll(lt,"")){const R=H.codePointAt(0)||0;if(ot(R)?c=m:at(R)?c=V:v!==A&&ut(R)?c=v:c=A,h+c>_&&(d=Math.min(d,Math.max(C,o)+E)),h+c>i){f=!0;break t}E+=H.length,h+=c}C=x=0}if(u>=p)break;if(L.lastIndex=u,L.test(t)){if(E=L.lastIndex-u,c=E*A,h+c>_&&(d=Math.min(d,u+Math.floor((_-h)/A))),h+c>i){f=!0;break}h+=c,C=o,x=u,u=o=L.lastIndex;continue}if(N.lastIndex=u,N.test(t)){if(h+F>_&&(d=Math.min(d,u)),h+F>i){f=!0;break}h+=F,C=o,x=u,u=o=N.lastIndex;continue}if(y.lastIndex=u,y.test(t)){if(E=y.lastIndex-u,c=E*l,h+c>_&&(d=Math.min(d,u+Math.floor((_-h)/l))),h+c>i){f=!0;break}h+=c,C=o,x=u,u=o=y.lastIndex;continue}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,C=o,x=u,u=o=M.lastIndex;continue}if(O.lastIndex=u,O.test(t)){if(h+g>_&&(d=Math.min(d,u)),h+g>i){f=!0;break}h+=g,C=o,x=u,u=o=O.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},S=(t,s={})=>J(t,ct,s).width,W="\x1B",X="\x9B",Ft=39,P="\x07",Z="[",pt="]",Q="m",j=`${pt}8;;`,tt=new RegExp(`(?:\\${Z}(?<code>\\d+)m|\\${j}(?<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},st=t=>`${W}${Z}${t}${Q}`,et=t=>`${W}${j}${t}${P}`,dt=t=>t.map(s=>S(s)),U=(t,s,e)=>{const i=s[Symbol.iterator]();let r=!1,n=!1,F=t.at(-1),l=F===void 0?0:S(F),a=i.next(),v=i.next(),g=0;for(;!a.done;){const m=a.value,A=S(m);l+A<=e?t[t.length-1]+=m:(t.push(m),l=0),(m===W||m===X)&&(r=!0,n=s.startsWith(j,g+1)),r?n?m===P&&(r=!1,n=!1):m===Q&&(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&&!(S(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=S(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(""),U(a,u,s);continue}if(p+l[o]>s&&p>0&&l[o]>0){if(e.wordWrap===!1&&p<s){U(a,u,s);continue}a.push("")}if(p+l[o]>s&&e.wordWrap===!1){U(a,u,s);continue}a[a.length-1]+=u}e.trim!==!1&&(a=a.map(o=>mt(o)));const v=a.join(` | ||
| `),g=v[Symbol.iterator]();let m=g.next(),A=g.next(),V=0;for(;!m.done;){const o=m.value,u=A.value;if(i+=o,o===W||o===X){tt.lastIndex=V+1;const f=tt.exec(v)?.groups;if(f?.code!==void 0){const d=Number.parseFloat(f.code);r=d===Ft?void 0:d}else f?.uri!==void 0&&(n=f.uri.length===0?void 0:f.uri)}const p=r?ft(r):void 0;u===` | ||
| `?(n&&(i+=et("")),r&&p&&(i+=st(p))):o===` | ||
| `&&(r&&p&&(i+=st(r)),n&&(i+=et(n))),V+=o.length,m=A,A=g.next()}return i};function it(t,s,e){return String(t).normalize().replaceAll(`\r | ||
| import w from"picocolors";import{stdout as R,stdin as q}from"node:process";import*as k from"node:readline";import ot from"node:readline";import{cursor as I,erase as N}from"sisteransi";import{ReadStream as J}from"node:tty";const at=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,lt=t=>t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510,ht=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,O=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,y=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,M=/\t{1,1000}/y,P=/[\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,L=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,ct=/\p{M}+/gu,Ft={limit:1/0,ellipsis:""},X=(t,e={},s={})=>{const i=e.limit??1/0,r=e.ellipsis??"",n=e?.ellipsisWidth??(r?X(r,Ft,s).width:0),o=s.ansiWidth??0,a=s.controlWidth??0,l=s.tabWidth??8,E=s.ambiguousWidth??1,g=s.emojiWidth??2,m=s.fullWidthWidth??2,A=s.regularWidth??1,V=s.wideWidth??2;let h=0,u=0,f=t.length,v=0,p=!1,d=f,b=Math.max(0,i-n),C=0,B=0,c=0,F=0;t:for(;;){if(B>C||u>=f&&u>h){const ut=t.slice(C,B)||t.slice(h,u);v=0;for(const Y of ut.replaceAll(ct,"")){const $=Y.codePointAt(0)||0;if(lt($)?F=m:ht($)?F=V:E!==A&&at($)?F=E:F=A,c+F>b&&(d=Math.min(d,Math.max(C,h)+v)),c+F>i){p=!0;break t}v+=Y.length,c+=F}C=B=0}if(u>=f)break;if(L.lastIndex=u,L.test(t)){if(v=L.lastIndex-u,F=v*A,c+F>b&&(d=Math.min(d,u+Math.floor((b-c)/A))),c+F>i){p=!0;break}c+=F,C=h,B=u,u=h=L.lastIndex;continue}if(O.lastIndex=u,O.test(t)){if(c+o>b&&(d=Math.min(d,u)),c+o>i){p=!0;break}c+=o,C=h,B=u,u=h=O.lastIndex;continue}if(y.lastIndex=u,y.test(t)){if(v=y.lastIndex-u,F=v*a,c+F>b&&(d=Math.min(d,u+Math.floor((b-c)/a))),c+F>i){p=!0;break}c+=F,C=h,B=u,u=h=y.lastIndex;continue}if(M.lastIndex=u,M.test(t)){if(v=M.lastIndex-u,F=v*l,c+F>b&&(d=Math.min(d,u+Math.floor((b-c)/l))),c+F>i){p=!0;break}c+=F,C=h,B=u,u=h=M.lastIndex;continue}if(P.lastIndex=u,P.test(t)){if(c+g>b&&(d=Math.min(d,u)),c+g>i){p=!0;break}c+=g,C=h,B=u,u=h=P.lastIndex;continue}u+=1}return{width:p?b:c,index:p?d:f,truncated:p,ellipsed:p&&i>=n}},ft={limit:1/0,ellipsis:"",ellipsisWidth:0},S=(t,e={})=>X(t,ft,e).width,W="\x1B",Z="\x9B",pt=39,j="\x07",Q="[",dt="]",tt="m",U=`${dt}8;;`,et=new RegExp(`(?:\\${Q}(?<code>\\d+)m|\\${U}(?<uri>.*)${j})`,"y"),mt=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},st=t=>`${W}${Q}${t}${tt}`,it=t=>`${W}${U}${t}${j}`,gt=t=>t.map(e=>S(e)),G=(t,e,s)=>{const i=e[Symbol.iterator]();let r=!1,n=!1,o=t.at(-1),a=o===void 0?0:S(o),l=i.next(),E=i.next(),g=0;for(;!l.done;){const m=l.value,A=S(m);a+A<=s?t[t.length-1]+=m:(t.push(m),a=0),(m===W||m===Z)&&(r=!0,n=e.startsWith(U,g+1)),r?n?m===j&&(r=!1,n=!1):m===tt&&(r=!1):(a+=A,a===s&&!E.done&&(t.push(""),a=0)),l=E,E=i.next(),g+=m.length}o=t.at(-1),!a&&o!==void 0&&o.length>0&&t.length>1&&(t[t.length-2]+=t.pop())},vt=t=>{const e=t.split(" ");let s=e.length;for(;s>0&&!(S(e[s-1])>0);)s--;return s===e.length?t:e.slice(0,s).join(" ")+e.slice(s).join("")},Et=(t,e,s={})=>{if(s.trim!==!1&&t.trim()==="")return"";let i="",r,n;const o=t.split(" "),a=gt(o);let l=[""];for(const[h,u]of o.entries()){s.trim!==!1&&(l[l.length-1]=(l.at(-1)??"").trimStart());let f=S(l.at(-1)??"");if(h!==0&&(f>=e&&(s.wordWrap===!1||s.trim===!1)&&(l.push(""),f=0),(f>0||s.trim===!1)&&(l[l.length-1]+=" ",f++)),s.hard&&a[h]>e){const v=e-f,p=1+Math.floor((a[h]-v-1)/e);Math.floor((a[h]-1)/e)<p&&l.push(""),G(l,u,e);continue}if(f+a[h]>e&&f>0&&a[h]>0){if(s.wordWrap===!1&&f<e){G(l,u,e);continue}l.push("")}if(f+a[h]>e&&s.wordWrap===!1){G(l,u,e);continue}l[l.length-1]+=u}s.trim!==!1&&(l=l.map(h=>vt(h)));const E=l.join(` | ||
| `),g=E[Symbol.iterator]();let m=g.next(),A=g.next(),V=0;for(;!m.done;){const h=m.value,u=A.value;if(i+=h,h===W||h===Z){et.lastIndex=V+1;const p=et.exec(E)?.groups;if(p?.code!==void 0){const d=Number.parseFloat(p.code);r=d===pt?void 0:d}else p?.uri!==void 0&&(n=p.uri.length===0?void 0:p.uri)}const f=r?mt(r):void 0;u===` | ||
| `?(n&&(i+=it("")),r&&f&&(i+=st(f))):h===` | ||
| `&&(r&&f&&(i+=st(r)),n&&(i+=it(n))),V+=h.length,m=A,A=g.next()}return i};function K(t,e,s){return String(t).normalize().replaceAll(`\r | ||
| `,` | ||
| `).split(` | ||
| `).map(i=>gt(i,s,e)).join(` | ||
| `)}const Et=["up","down","left","right","space","enter","cancel"],b={actions:new Set(Et),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"}};function vt(t){if(t.aliases!==void 0){const s=t.aliases;for(const e in s){if(!Object.hasOwn(s,e))continue;const i=s[e];b.actions.has(i)&&(b.aliases.has(e)||b.aliases.set(e,i))}}if(t.messages!==void 0){const s=t.messages;s.cancel!==void 0&&(b.messages.cancel=s.cancel),s.error!==void 0&&(b.messages.error=s.error)}}function G(t,s){if(typeof t=="string")return b.aliases.get(t)===s;for(const e of t)if(e!==void 0&&G(e,s))return!0;return!1}function At(t,s){if(t===s)return;const e=t.split(` | ||
| `),i=s.split(` | ||
| `),r=[];for(let n=0;n<Math.max(e.length,i.length);n++)e[n]!==i[n]&&r.push(n);return r}const It=globalThis.process.platform.startsWith("win"),K=Symbol("clack:cancel");function _t(t){return t===K}function T(t,s){const e=t;e.isTTY&&e.setRawMode(s)}function bt({input:t=Y,output:s=z,overwrite:e=!0,hideCursor:i=!0}={}){const r=k.createInterface({input:t,output:s,prompt:"",tabSize:1});k.emitKeypressEvents(t,r),t instanceof q&&t.isTTY&&t.setRawMode(!0);const n=(F,{name:l,sequence:a})=>{const v=String(F);if(G([v,l,a],"cancel")){i&&s.write(I.show),process.exit(0);return}if(!e)return;const g=l==="return"?0:-1,m=l==="return"?-1:0;k.moveCursor(s,g,m,()=>{k.clearLine(s,1,()=>{t.once("keypress",n)})})};return i&&s.write(I.hide),t.once("keypress",n),()=>{t.off("keypress",n),i&&s.write(I.show),t instanceof q&&t.isTTY&&!It&&t.setRawMode(!1),r.terminal=!1,r.close()}}const Ct=t=>"columns"in t&&typeof t.columns=="number"?t.columns:80,Bt=t=>"rows"in t&&typeof t.rows=="number"?t.rows:20;class B{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(s,e=!0){const{input:i=Y,output:r=z,render:n,signal:F,...l}=s;this.opts=l,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=n.bind(this),this._track=e,this._abortSignal=F,this.input=i,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(s,e){const i=this._subscribers.get(s)??[];i.push(e),this._subscribers.set(s,i)}on(s,e){this.setSubscriber(s,{cb:e})}once(s,e){this.setSubscriber(s,{cb:e,once:!0})}emit(s,...e){const i=this._subscribers.get(s)??[],r=[];for(const n of i)n.cb(...e),n.once&&r.push(()=>i.splice(i.indexOf(n),1));for(const n of r)n()}prompt(){return new Promise(s=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),s(K);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=nt.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),T(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(I.show),this.output.off("resize",this.render),T(this.input,!1),s(this.value)}),this.once("cancel",()=>{this.output.write(I.show),this.output.off("resize",this.render),T(this.input,!1),s(K)})})}_isActionKey(s,e){return s===" "}_setValue(s){this.value=s,this.emit("value",this.value)}_setUserInput(s,e){this.userInput=s??"",this.emit("userInput",this.userInput),e&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(s,e){if(this._track&&e.name!=="return"&&(e.name&&this._isActionKey(s,e)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),e?.name&&(!this._track&&b.aliases.has(e.name)&&this.emit("cursor",b.aliases.get(e.name)),b.actions.has(e.name)&&this.emit("cursor",e.name)),s&&(s.toLowerCase()==="y"||s.toLowerCase()==="n")&&this.emit("confirm",s.toLowerCase()==="y"),this.emit("key",s?.toLowerCase(),e),e?.name==="return"){if(this.opts.validate){const i=this.opts.validate(this.value);i&&(this.error=i instanceof Error?i.message:i,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}G([s,e?.name,e?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(` | ||
| `),T(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){const s=it(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(` | ||
| `).length-1;this.output.write(I.move(-999,s*-1))}render(){const s=it(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(s!==this._prevFrame){if(this.state==="initial")this.output.write(I.hide);else{const e=At(this._prevFrame,s);if(this.restoreCursor(),e&&e?.length===1){const i=e[0];this.output.write(I.move(0,i)),this.output.write($.lines(1));const r=s.split(` | ||
| `);this.output.write(r[i]),this._prevFrame=s,this.output.write(I.move(0,r.length-i-1));return}if(e&&e?.length>1){const i=e[0];this.output.write(I.move(0,i)),this.output.write($.down());const r=s.split(` | ||
| `).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 xt(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 Dt(t,s){return(s.label??String(s.value)).toLowerCase().includes(t.toLowerCase())}function wt(t,s){if(s)return t?s:s[0]}class St 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??Dt;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=wt(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=xt(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#t]?.value,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}}let Vt=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 kt 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}})}}function w(t,s,e){const i=t+s,r=Math.max(e.length-1,0),n=i<0?r:i>r?0:i;return e[n].disabled?w(n,s<0?-1:1,e):n}class yt extends B{options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter(s=>s.disabled!==!0)}toggleAll(){const s=this._enabledOptions,e=this.value!==void 0&&this.value.length===s.length;this.value=e?[]:s.map(i=>i.value)}toggleInvert(){const s=this.value;if(!s)return;const e=this._enabledOptions.filter(i=>!s.includes(i.value));this.value=e.map(i=>i.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??[]];const e=Math.max(this.options.findIndex(({value:i})=>i===s.cursorAt),0);this.cursor=this.options[e].disabled?w(e,1,this.options):e,this.on("key",i=>{i==="a"&&this.toggleAll(),i==="i"&&this.toggleInvert()}),this.on("cursor",i=>{switch(i){case"left":case"up":this.cursor=w(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=w(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}}let Mt=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 Lt 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;const e=this.options.findIndex(({value:r})=>r===s.initialValue),i=e===-1?0:e;this.cursor=this.options[i].disabled?w(i,1,this.options):i,this.changeValue(),this.on("cursor",r=>{switch(r){case"left":case"up":this.cursor=w(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=w(this.cursor,1,this.options);break}this.changeValue()})}}class Wt 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 Tt 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{St as AutocompletePrompt,Vt as ConfirmPrompt,kt as GroupMultiSelectPrompt,yt as MultiSelectPrompt,Mt as PasswordPrompt,B as Prompt,Wt as SelectKeyPrompt,Lt as SelectPrompt,Tt as TextPrompt,bt as block,Ct as getColumns,Bt as getRows,_t as isCancel,b as settings,vt as updateSettings}; | ||
| `).map(i=>Et(i,e,s)).join(` | ||
| `)}const At=["up","down","left","right","space","enter","cancel"],_={actions:new Set(At),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0};function It(t){if(t.aliases!==void 0){const e=t.aliases;for(const s in e){if(!Object.hasOwn(e,s))continue;const i=e[s];_.actions.has(i)&&(_.aliases.has(s)||_.aliases.set(s,i))}}if(t.messages!==void 0){const e=t.messages;e.cancel!==void 0&&(_.messages.cancel=e.cancel),e.error!==void 0&&(_.messages.error=e.error)}t.withGuide!==void 0&&(_.withGuide=t.withGuide!==!1)}function H(t,e){if(typeof t=="string")return _.aliases.get(t)===e;for(const s of t)if(s!==void 0&&H(s,e))return!0;return!1}function _t(t,e){if(t===e)return;const s=t.split(` | ||
| `),i=e.split(` | ||
| `),r=Math.max(s.length,i.length),n=[];for(let o=0;o<r;o++)s[o]!==i[o]&&n.push(o);return{lines:n,numLinesBefore:s.length,numLinesAfter:i.length,numLines:r}}const bt=globalThis.process.platform.startsWith("win"),z=Symbol("clack:cancel");function Ct(t){return t===z}function T(t,e){const s=t;s.isTTY&&s.setRawMode(e)}function xt({input:t=q,output:e=R,overwrite:s=!0,hideCursor:i=!0}={}){const r=k.createInterface({input:t,output:e,prompt:"",tabSize:1});k.emitKeypressEvents(t,r),t instanceof J&&t.isTTY&&t.setRawMode(!0);const n=(o,{name:a,sequence:l})=>{const E=String(o);if(H([E,a,l],"cancel")){i&&e.write(I.show),process.exit(0);return}if(!s)return;const g=a==="return"?0:-1,m=a==="return"?-1:0;k.moveCursor(e,g,m,()=>{k.clearLine(e,1,()=>{t.once("keypress",n)})})};return i&&e.write(I.hide),t.once("keypress",n),()=>{t.off("keypress",n),i&&e.write(I.show),t instanceof J&&t.isTTY&&!bt&&t.setRawMode(!1),r.terminal=!1,r.close()}}const rt=t=>"columns"in t&&typeof t.columns=="number"?t.columns:80,nt=t=>"rows"in t&&typeof t.rows=="number"?t.rows:20;function Bt(t,e,s,i=s){const r=rt(t??R);return K(e,r-s.length,{hard:!0,trim:!1}).split(` | ||
| `).map((n,o)=>`${o===0?i:s}${n}`).join(` | ||
| `)}class x{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(e,s=!0){const{input:i=q,output:r=R,render:n,signal:o,...a}=e;this.opts=a,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=n.bind(this),this._track=s,this._abortSignal=o,this.input=i,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(e,s){const i=this._subscribers.get(e)??[];i.push(s),this._subscribers.set(e,i)}on(e,s){this.setSubscriber(e,{cb:s})}once(e,s){this.setSubscriber(e,{cb:s,once:!0})}emit(e,...s){const i=this._subscribers.get(e)??[],r=[];for(const n of i)n.cb(...s),n.once&&r.push(()=>i.splice(i.indexOf(n),1));for(const n of r)n()}prompt(){return new Promise(e=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(z);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=ot.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),T(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(I.show),this.output.off("resize",this.render),T(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(I.show),this.output.off("resize",this.render),T(this.input,!1),e(z)})})}_isActionKey(e,s){return e===" "}_setValue(e){this.value=e,this.emit("value",this.value)}_setUserInput(e,s){this.userInput=e??"",this.emit("userInput",this.userInput),s&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(e,s){if(this._track&&s.name!=="return"&&(s.name&&this._isActionKey(e,s)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),s?.name&&(!this._track&&_.aliases.has(s.name)&&this.emit("cursor",_.aliases.get(s.name)),_.actions.has(s.name)&&this.emit("cursor",s.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),this.emit("key",e?.toLowerCase(),s),s?.name==="return"){if(this.opts.validate){const i=this.opts.validate(this.value);i&&(this.error=i instanceof Error?i.message:i,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}H([e,s?.name,s?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(` | ||
| `),T(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){const e=K(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(` | ||
| `).length-1;this.output.write(I.move(-999,e*-1))}render(){const e=K(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(I.hide);else{const s=_t(this._prevFrame,e),i=nt(this.output);if(this.restoreCursor(),s){const r=Math.max(0,s.numLinesAfter-i),n=Math.max(0,s.numLinesBefore-i);let o=s.lines.find(a=>a>=r);if(o===void 0){this._prevFrame=e;return}if(s.lines.length===1){this.output.write(I.move(0,o-n)),this.output.write(N.lines(1));const a=e.split(` | ||
| `);this.output.write(a[o]),this._prevFrame=e,this.output.write(I.move(0,a.length-o-1));return}else if(s.lines.length>1){if(r<n)o=r;else{const l=o-n;l>0&&this.output.write(I.move(0,l))}this.output.write(N.down());const a=e.split(` | ||
| `).slice(o);this.output.write(a.join(` | ||
| `)),this._prevFrame=e;return}}this.output.write(N.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}}function wt(t,e){if(t===void 0||e.length===0)return 0;const s=e.findIndex(i=>i.value===t);return s!==-1?s:0}function Dt(t,e){return(e.label??String(e.value)).toLowerCase().includes(t.toLowerCase())}function St(t,e){if(e)return t?e:e[0]}class Vt extends x{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#t=0;#s="";#i;#e;get cursor(){return this.#t}get userInputWithCursor(){if(!this.userInput)return w.inverse(w.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}\u2588`;const e=this.userInput.slice(0,this._cursor),[s,...i]=this.userInput.slice(this._cursor);return`${e}${w.inverse(s)}${i.join("")}`}get options(){return typeof this.#e=="function"?this.#e():this.#e}constructor(e){super(e),this.#e=e.options;const s=this.options;this.filteredOptions=[...s],this.multiple=e.multiple===!0,this.#i=e.filter??Dt;let i;if(e.initialValue&&Array.isArray(e.initialValue)?this.multiple?i=e.initialValue:i=e.initialValue.slice(0,1):!this.multiple&&this.options.length>0&&(i=[this.options[0].value]),i)for(const r of i){const n=s.findIndex(o=>o.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(e,s){return e===" "||this.multiple&&this.isNavigating&&s.name==="space"&&e!==void 0&&e!==""}#r(e,s){const i=s.name==="up",r=s.name==="down",n=s.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=St(this.multiple,this.selectedValues):this.multiple?this.focusedValue!==void 0&&(s.name==="tab"||this.isNavigating&&s.name==="space")?this.toggleSelected(this.focusedValue):this.isNavigating=!1:(this.focusedValue&&(this.selectedValues=[this.focusedValue]),this.isNavigating=!1)}deselectAll(){this.selectedValues=[]}toggleSelected(e){this.filteredOptions.length!==0&&(this.multiple?this.selectedValues.includes(e)?this.selectedValues=this.selectedValues.filter(s=>s!==e):this.selectedValues=[...this.selectedValues,e]:this.selectedValues=[e])}#n(e){if(e!==this.#s){this.#s=e;const s=this.options;e?this.filteredOptions=s.filter(i=>this.#i(e,i)):this.filteredOptions=[...s],this.#t=wt(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#t]?.value,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}}let kt=class extends x{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",s=>{this.output.write(I.move(0,-1)),this.value=s,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};class yt extends x{options;cursor=0;#t;getGroupItems(e){return this.options.filter(s=>s.group===e)}isGroupSelected(e){const s=this.getGroupItems(e),i=this.value;return i===void 0?!1:s.every(r=>i.includes(r.value))}toggleValue(){const e=this.options[this.cursor];if(this.value===void 0&&(this.value=[]),e.group===!0){const s=e.value,i=this.getGroupItems(s);this.isGroupSelected(s)?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 s=this.value.includes(e.value);this.value=s?this.value.filter(i=>i!==e.value):[...this.value,e.value]}}constructor(e){super(e,!1);const{options:s}=e;this.#t=e.selectableGroups!==!1,this.options=Object.entries(s).flatMap(([i,r])=>[{value:i,group:!0,label:i},...r.map(n=>({...n,group:i}))]),this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:i})=>i===e.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}})}}function D(t,e,s){const i=t+e,r=Math.max(s.length-1,0),n=i<0?r:i>r?0:i;return s[n].disabled?D(n,e<0?-1:1,s):n}class Mt extends x{options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter(e=>e.disabled!==!0)}toggleAll(){const e=this._enabledOptions,s=this.value!==void 0&&this.value.length===e.length;this.value=s?[]:e.map(i=>i.value)}toggleInvert(){const e=this.value;if(!e)return;const s=this._enabledOptions.filter(i=>!e.includes(i.value));this.value=s.map(i=>i.value)}toggleValue(){this.value===void 0&&(this.value=[]);const e=this.value.includes(this._value);this.value=e?this.value.filter(s=>s!==this._value):[...this.value,this._value]}constructor(e){super(e,!1),this.options=e.options,this.value=[...e.initialValues??[]];const s=Math.max(this.options.findIndex(({value:i})=>i===e.cursorAt),0);this.cursor=this.options[s].disabled?D(s,1,this.options):s,this.on("key",i=>{i==="a"&&this.toggleAll(),i==="i"&&this.toggleInvert()}),this.on("cursor",i=>{switch(i){case"left":case"up":this.cursor=D(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=D(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}}let Lt=class extends x{_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 e=this.userInput;if(this.cursor>=e.length)return`${this.masked}${w.inverse(w.hidden("_"))}`;const s=this.masked,i=s.slice(0,this.cursor),r=s.slice(this.cursor);return`${i}${w.inverse(r[0])}${r.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:e,...s}){super(s),this._mask=e??"\u2022",this.on("userInput",i=>{this._setValue(i)})}};class Wt extends x{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(e){super(e,!1),this.options=e.options;const s=this.options.findIndex(({value:r})=>r===e.initialValue),i=s===-1?0:s;this.cursor=this.options[i].disabled?D(i,1,this.options):i,this.changeValue(),this.on("cursor",r=>{switch(r){case"left":case"up":this.cursor=D(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=D(this.cursor,1,this.options);break}this.changeValue()})}}class Tt extends x{options;cursor=0;constructor(e){super(e,!1),this.options=e.options;const s=this.options.map(({value:[i]})=>i?.toLowerCase());this.cursor=Math.max(s.indexOf(e.initialValue),0),this.on("key",i=>{if(!i||!s.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 $t extends x{get userInputWithCursor(){if(this.state==="submit")return this.userInput;const e=this.userInput;if(this.cursor>=e.length)return`${this.userInput}\u2588`;const s=e.slice(0,this.cursor),[i,...r]=e.slice(this.cursor);return`${s}${w.inverse(i)}${r.join("")}`}get cursor(){return this._cursor}constructor(e){super({...e,initialUserInput:e.initialUserInput??e.initialValue}),this.on("userInput",s=>{this._setValue(s)}),this.on("finalize",()=>{this.value||(this.value=e.defaultValue),this.value===void 0&&(this.value="")})}}export{Vt as AutocompletePrompt,kt as ConfirmPrompt,yt as GroupMultiSelectPrompt,Mt as MultiSelectPrompt,Lt as PasswordPrompt,x as Prompt,Tt as SelectKeyPrompt,Wt as SelectPrompt,$t as TextPrompt,xt as block,rt as getColumns,nt as getRows,Ct as isCancel,_ as settings,It as updateSettings,Bt as wrapTextWithPrefix}; | ||
| //# sourceMappingURL=index.mjs.map |
+1
-1
| { | ||
| "name": "@clack/core", | ||
| "version": "1.0.0-alpha.6", | ||
| "version": "1.0.0-alpha.7", | ||
| "type": "module", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.mjs", |
Sorry, the diff of this file is too big to display
134577
2.67%102
4.08%