From 058e8f8c28880419f5bfdaab8daec11ed570b4e9 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sat, 29 Jun 2024 23:00:58 +0200 Subject: [PATCH] Switch to `yoctocolors` (#1446) --- ...colors-npm-1.0.1-39442f3da8-fa68166d1f.zip | Bin 3757 -> 0 bytes ...rs-cjs-npm-2.1.1-6c0013abb8-d7cbb833eb.zip | Bin 0 -> 4958 bytes packages/checkbox/package.json | 2 +- packages/checkbox/src/index.mts | 6 ++-- packages/core/README.md | 8 ++--- packages/core/package.json | 4 +-- packages/core/src/lib/Separator.mts | 4 +-- packages/core/src/lib/theme.mts | 20 ++++++------- packages/demo/demos/input.mjs | 4 +-- packages/demo/package.json | 2 +- packages/expand/package.json | 2 +- packages/expand/src/index.mts | 6 ++-- packages/inquirer/lib/objects/separator.js | 4 +-- packages/inquirer/lib/prompts/base.js | 12 ++++---- packages/inquirer/lib/prompts/checkbox.js | 20 +++++++------ packages/inquirer/lib/prompts/confirm.js | 4 +-- packages/inquirer/lib/prompts/editor.js | 8 ++--- packages/inquirer/lib/prompts/expand.js | 12 ++++---- packages/inquirer/lib/prompts/input.js | 6 ++-- packages/inquirer/lib/prompts/list.js | 8 ++--- packages/inquirer/lib/prompts/password.js | 10 +++---- packages/inquirer/lib/prompts/rawlist.js | 8 ++--- packages/inquirer/lib/utils/paginator.js | 6 ++-- packages/inquirer/package.json | 4 +-- packages/rawlist/package.json | 2 +- packages/rawlist/src/index.mts | 4 +-- packages/select/package.json | 2 +- packages/select/src/index.mts | 4 +-- yarn.lock | 28 +++++++++--------- 29 files changed, 102 insertions(+), 98 deletions(-) delete mode 100644 .yarn/cache/picocolors-npm-1.0.1-39442f3da8-fa68166d1f.zip create mode 100644 .yarn/cache/yoctocolors-cjs-npm-2.1.1-6c0013abb8-d7cbb833eb.zip diff --git a/.yarn/cache/picocolors-npm-1.0.1-39442f3da8-fa68166d1f.zip b/.yarn/cache/picocolors-npm-1.0.1-39442f3da8-fa68166d1f.zip deleted file mode 100644 index 21041b39e9bc8d83abfa57b8b5402dcfbdc0853b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3757 zcma)<2T)Vn7KTHQ5IQJ=sB{7$fOG_@LAo@fQVfs;5FwOMm7sJ10a58iKv1MgN9lwj zAYG|a1ibWKlZ#o(`b>>O;6%na_kNp;~8>zVS%_CTWB-r8mK0#c)vOWmRY z^re_BWI02j(|UG9H&U3aT=iNlQ52O2wV%SoUVKCjChS9bU9*v&fI@ z=GJ7Gc8n)wcU{62zS^6Y@H}pj(?L8X>JW|N#DN+i3 zL1{_$PXj{|4D?1>QcV`SBn0h! z_97G-Vl-K|vQ>l{6k#TBJLttxb7PMeSZ%|UFNYb%=?)}T_hpf#YSVy{ENm2o+KoQ3 z1xk=Dum*O!=xXz%W_;1K5|205!4kLh`R2z#Zt!N2*+;3F2bq`wzpaT&4eGl}3SSoT z&Ey!Ym?&JTB+)MTCKiS-bJ5TJj`+^CP4bVneyZd~%|)^af;wynN)b9nC5JMDS~@$p zW6{n~Tddh5c?@0z6yW}>9!X3pqX-gi?|P*r#>Bpf?@~sAQ}~RenP~W*5<{fi;;$;*8F8Y(D-_|>*tq=pSFn*Wu%c?3z5=mBv%vBGKtZUO+>xX;NgdGXXcSrMnuSV zpm9b(pD6yKOiK??cq%kAV_*e2X|tEd9rlb(YjQb(x3snQ+a|BAT)uXgg5c)nT)gPe z!e=0M`_5edQ@7pkev`79G8v^~Jqz&)zbA|3Q%poVF#sS)s9v7`mMmLrz*Dm;!y-(9 z`A-lQ&OQwKoI|9PQ5U!cBz0J`jd*n!6JB_oF`(+7JriU=y)|sztlJXQykz%mT7G(S zxQSFcXUHMH0 z;bjbA_Xj`L?1s6mi|S}ZDb30@Hy2CmW(=&#xp>%^`w_i3r9Xe6HjW~B35aH|2ezz;r66$GWZmj=wfn6M1+4#gNC zoC9w`S(=qDXF}&GU!0Z;_T}8WQ&H~jiXH6XQ^Z!U`QInXXMx?b)m+GJi>DJR34QbQ zP1d!s&+6@Kq-Lkmz58ZL>Tt8Lk%|#`>>k3}70Ck;te>aK_A9nTb4;l4l}0hUip0wd zA*yp2N}QQToOAe2e5{Vt)VbW8H#W?1(>t#t#6Upui?~%T};TLSWeVPO!<+);&gFq&z z0rB*R+E%EPy^~>ku46ROqWQGYf+=#14+p5Wghl1cZoopTZR#1nR|PGhjp-?IYe? zEzO@_aFiuQOcfPF3q$VHURjHJ6k)I%=3I4iWVyiGq z4;IMV7S?D&$8f-)4dfl_6+t80%oImK0L)S7WT&2LR=H(oS|hUFonP||Lka)0*2WX|?C8uy#O9Yyn}SPeqXn+F zxN7J}1zS_3K|G(_-;{(0s!|6cF=P zO|LSBdess)x?bN;EoMrjSc14kzwR3x-wTuq6W^brmQWTKO_tod0g6n|qSIOj619JA3%Eqe*Jvl^1zVKFmQu zaF5F&k@})FIJYaz1%6_Yy$178XHn@RFLT^UAbpT_G#ga3t(d8nVfzan<WT zBUWsT`LFhGDxGt^&`l0^12UcV^}(eRK|A(^pI(?^l!2Uay-l{3Im4NT=$CRKW~Wcy zi;hPx=G^FK40GM0Fn-+RFsF^i3TEV;?<^w~BHs|Y!{rnrhiL6YXjT&$CabU(V_9Mn zJr5@C;aUXg?=IGD49PR4?M1&1u<}*3a52UNn=)|I0ukWV7g^BM9q+0qQG7uicdAVj z$6&HN4_gKsin^nXAv7n#^ONfgZ4O41S@GH#_vf67^f2mrm`hhfyMyMa{M9MM6Rnb^Pv~irqJZxY3b5g+6(#dVX6^@5lPel!2%??RrW9 zsg~DpL60lEuS`CO#q93SB+^OFLY7bsNJAD@&Bc{dy83)XD$Q$hZC9E0@5cdnX#1lb zR8tR#e=i(h<_-Q^g!K&}eEE)9=U;YR6x0Q)6IMW3uSlo5yC1?4VDlVz{>8f(Q%NpT zXj$_pGx_RR6rJDZ`@0S|3q2dD{9x<8QfDz#@$y zA5RMe;iSa^M4jhM9$H0mn01Xr_yeDrl%D=~eqp+j?@DLV6P{W@>I*jfY zw|EqN)J+|tiwQ@T|A4l|9z`DAkPeXzU;gj^@?YZ`<(sV#(IQAOn85^8+DUpe-8e8qrT{U zAkHp!-Vo;?uuH%dUCg>dj_}+3?RxQvc=#1i=Uvvbf zlJ3woacub#P*YQs4t?NB4(aussMM#GaNo6cl3%*HnTrL-77^}qctccFV$g5eU)v3G z@#%O4(gx$@qEZ(Tm5vDaavKiOfq9M*gAvepH*!~fn-=W+Y zpE9P%U7ny&+ug^z3>hQZ_;51v4b_%`=%KC^xOEnK^^W2w=~1udmF83jU;OfU{ttvU zYM^gwU-E(5qye;4q0*oq@6p-^YKz_0gJ(-UeMcQb#9!)_##eQ>pR90uRyuzdl_}`V zo3I>a#E>H-n<;!X8q~LoZScho_wF!R5#THYLTxofZi1_9e76#KhnjPQLG}qDS_yXT z7_x^&RYbh)8ss2GOzc1)T);ZfrZSvBteB$9hDSI$QAc3Z8_jQOZS`3G)(MpZBTgWus42IWeOPl;rZ z4p&q_kK=ilr)}qahMXwB1I|nY`eEQQmty`b^483a1+3w?3cjG0K~#-%!XA?lD3hLO zmjbF$T={7rX^~=LCO5+Uz2X3Ub;a`VK+=@mU+(|Yhl?KFwaq5P!&9cf!xQ+O4}17H zyWErX40vd23z<=*dw_%zQ!>4PV;aB%L5zIFx$M3lgK(sVx4_9OMYz3RKdum%=8n2b(qIGEz*xX!2d^ziqfMMP1pKq>ws`M z`XY*`{>FCWT=O$OU%}xN+2^_&>dlpmNzilid-Er23m=V6_LP1=-L+k~lFSOS)x4mT$>)qm<+)zb$!+A_2oOCUEVNaH7 z*|M>ibv~c(T5GvIQ`S`O3bK2&+A8A;qfqlFwph`q@IA-G%LD_76PZjX>w-#wbV_cf zcMb@&X-Z}_F5v-Fb@NQbJjLCqQSQ1nfoH{~8wiHCV}y8}IRJ%xN=&XCJf>_yY;=4O^~Hl&lV&hI!Q! z_rb6$@=Y4lQa117!stOd5%G-d)rYvp*ihS*5?fXvcchiINyW06oU1CJOkQct?zaCP4b*RKlUOocF+>fN|e?37e_PV3`Ka|hx3 z>7SlXml{>bo`sQ}PaX9vP?4Wg&F(jA^cW0tEpRPG&~khU(dhRc<~tvv>)35u+1-}b zFPsE9MW?4;PSbbJY9aPsR3a2f%QUi31~>4)a#YEyzWsC`XLI}6N# z@zz&|F;HT{5W7K=!DU+bkXOTUnTj}|W$#Hq@xgjaYpCxT=|3aeeW(6F1~S34{M^~aP>QfGRR_#n>AdV zH9t=v6L*yFY$bjF3-YRtI5*jJH;;4mh)AP7-PZv1Wny-l z%W+FSRo8vwb!WTsRw}0^n3qX+)Gk%)fGDv)pvwF0uds56%(81KbUG1xv%KF|lMj7Q zstuS?xHDiaWtRAcO-SFEu2@S=8Q3N}P24!r|xLJ2X#ycBI^f z_K{?f7 zpV_N)uQx>iif?w>gGOv^0<#!XKIQBKQS+?uQ-l9 zO!$Lds_G%;*?YzV`jhn0FhuZ{qI(*mZv+?K&5Hi~T11GpLKG=#{%SP#$7yez-3~3g zJQ?Q;7FOvydn!Ustl8w3{ha2M&9$P!udrl1VPTeWVdP8=)z#N=-0`UIlh1E^Aw@-63f;TPaJcE=A-QvGwOn;(Z zC8L$D#(B&_tvd{&%#bWwf%8M?9rMqbVQ#7PXHWEc0!lF@&)Df#hzTsyhftJ}^Ih*G z1AGE=6pnTV7VCgP#CcDbETQS-0R>OBy?14*tQxV7rIvCc}U4T-3y3k)DFFu;RF4nBe&g3asfDYvNK|}@J;)|K^ z1J5Jur|xYxL~-{AkyU>RzIdO){H<604E|*&cFeHM8e05BVtcyCDiYdlCYQA=J+P60 zBfs{kKb3sv`?PPEDC=Xgx8;*G^?vH%y-d$l{8a7>YY#hO;Vvl~c0wgBxU0+0-uedt zb4A#Zk&P)9MGRUGa!@5lQ~sx~8n*QL>zX!Kiio7RtxIr-wxzt|qn38X0pGD7Wya@9 zUqiT3$FVk>-!|TSC-$bte?yHRCl8A4;`HIJq2qMESCyWi6J)l0W7FIA*ie*_yiRTx zzYaV@Cdn>p6GP+}%`eAWMN3F3(bE!9EH+ekh;pqo%$%JV9{((8`5?p8Y+07SAD_R* zUtr(J4hxkpXQ!tSLuTMgZdi3wcceUPcT^cjD?vyVqMN+EKC-MSUq00hh+aHUKq4NK zyqod_qux!;J53jGY0pMx`xFu;k4CdOW;iD*$apAd~DEMe;K#SpR zYK#|zw+bw7oN}e}@bD7Z{p=zOBn#Osmc=$)*Ic*!^toRU^9ygev6{s&6|byjs|dQG z`0#^NBd+TYPL97$oS(NIZl5!KXI@)qMBbR_z)CfvwaQ)(w2!UT*4;a6VH(aYkplGsYd7ZsK7kgyRMzV`2m90AXQ!L8 z*frjciN;YLdcjhl&TFtjNPbuk6t@?*k#enH@#Nui;2b1+aYbb3UUD4r`)U!8kDgL4 z(WIo!-kvK#!Cj_+{1K`L;93Fbqm;5tZ$vysAbJ4m4H1Gpj_L`EP=H@s=gUUS<_nYz z+Vc(@n>5!e{muIdw8HC?Ls-?|B~{I@pT>rv4*;2}u8if4qf~3{90zT-%{O|V+Q%@H zs1}wVGrY04X?ZyuqIA0@HTKc5>%!IJd2U;>g!q=V#Hb;-+C7qU{D1D*RnZ$IS@?K( z=@(jB=y!YeU%J3qGB5z1)#(#0MW;F3ZE=h_Q!hD4)7=)y29>aTW7x!KG<)Q<%+67C zX`;y=SBM-*w>WlHKDCJ@G*8=>v0U39zvm{3qF?@IwFRn}@y=q-w8m<$1WnxgRLRqk z1DYezGMj-_Gp}_$PR^cOu|d>Q_)nU?CEutIoHIogISiDGP*k;S*mvhVz;2jlpO?Jw z6ZJ_p_H951#G`RxenjF~@o7@5L zrX@A*V*cPsu~QDC2L^#*W#3M*^&T{-P1g;(a@UR{i3^WHyxZ z>*DEg#H(~LYN`Rc50tX@JoZfL;tqzq;)~Hr5ISy>fGYb=dZN#7V3#Zj2zVIjI`O(z zoalpNz61G3;$s2(v%Htgq_CReY4NUfBjZuzY%O3OPN5g%>MC;f{$FNpJ$zk{xC~XP z$OJcT(HiUF6I>_!_wvZa|NXOV-~6NdrC9Rsrhk-6ezxtKVi&`InEv15$zQ0S((~8y z$xl>Sl pc.dim(`- ${text}`), + disabledChoice: (text: string) => colors.dim(`- ${text}`), renderSelectedChoices: (selectedChoices) => selectedChoices.map((choice) => choice.name || choice.value).join(', '), }, diff --git a/packages/core/README.md b/packages/core/README.md index e2db75eb3..9d18e9474 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -15,7 +15,7 @@ yarn add @inquirer/core # Usage ```ts -import pc from 'picocolors'; +import colors from 'yoctocolors'; import { createPrompt, useState, @@ -44,12 +44,12 @@ const confirm = createPrompt( let formattedValue = value; let defaultValue = ''; if (status === 'done') { - formattedValue = pc.cyan(value); + formattedValue = colors.cyan(value); } else { - defaultValue = pc.dim(config.default === false ? ' (y/N)' : ' (Y/n)'); + defaultValue = colors.dim(config.default === false ? ' (y/N)' : ' (Y/n)'); } - const message = pc.bold(config.message); + const message = colors.bold(config.message); return `${prefix} ${message}${defaultValue} ${formattedValue}`; }, ); diff --git a/packages/core/package.json b/packages/core/package.json index 632585b48..ca1c81afc 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -66,10 +66,10 @@ "cli-spinners": "^2.9.2", "cli-width": "^4.1.0", "mute-stream": "^1.0.0", - "picocolors": "^1.0.1", "signal-exit": "^4.1.0", "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.1" }, "devDependencies": { "@inquirer/testing": "^2.1.23" diff --git a/packages/core/src/lib/Separator.mts b/packages/core/src/lib/Separator.mts index e4dde943d..dec18a093 100644 --- a/packages/core/src/lib/Separator.mts +++ b/packages/core/src/lib/Separator.mts @@ -1,4 +1,4 @@ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import figures from '@inquirer/figures'; /** @@ -7,7 +7,7 @@ import figures from '@inquirer/figures'; */ export class Separator { - readonly separator = pc.dim(Array.from({ length: 15 }).join(figures.line)); + readonly separator = colors.dim(Array.from({ length: 15 }).join(figures.line)); readonly type = 'separator'; constructor(separator?: string) { diff --git a/packages/core/src/lib/theme.mts b/packages/core/src/lib/theme.mts index 00f89ef14..6a0fdf471 100644 --- a/packages/core/src/lib/theme.mts +++ b/packages/core/src/lib/theme.mts @@ -1,4 +1,4 @@ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import spinners from 'cli-spinners'; import type { Prettify } from '@inquirer/type'; @@ -22,18 +22,18 @@ type DefaultTheme = { export type Theme = Prettify; export const defaultTheme: DefaultTheme = { - prefix: pc.green('?'), + prefix: colors.green('?'), spinner: { interval: spinners.dots.interval, - frames: spinners.dots.frames.map((frame) => pc.yellow(frame)), + frames: spinners.dots.frames.map((frame) => colors.yellow(frame)), }, style: { - answer: pc.cyan, - message: pc.bold, - error: (text) => pc.red(`> ${text}`), - defaultAnswer: (text) => pc.dim(`(${text})`), - help: pc.dim, - highlight: pc.cyan, - key: (text: string) => pc.cyan(pc.bold(`<${text}>`)), + answer: colors.cyan, + message: colors.bold, + error: (text) => colors.red(`> ${text}`), + defaultAnswer: (text) => colors.dim(`(${text})`), + help: colors.dim, + highlight: colors.cyan, + key: (text: string) => colors.cyan(colors.bold(`<${text}>`)), }, }; diff --git a/packages/demo/demos/input.mjs b/packages/demo/demos/input.mjs index 710293813..0556bdbf5 100644 --- a/packages/demo/demos/input.mjs +++ b/packages/demo/demos/input.mjs @@ -1,5 +1,5 @@ import * as url from 'node:url'; -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import { input } from '@inquirer/prompts'; const hexRegEx = /(\d|[a-f])/gim; @@ -19,7 +19,7 @@ const demo = async () => { answer = await input({ message: 'Enter an hex color?', transformer(value = '', { isFinal }) { - return isFinal ? pc.underline(value) : value; + return isFinal ? colors.underline(value) : value; }, validate: (value = '') => isHex(value) || 'Pass a valid hex value', }); diff --git a/packages/demo/package.json b/packages/demo/package.json index afb3fc5c0..a915d76e6 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -63,7 +63,7 @@ "dependencies": { "@inquirer/core": "^8.2.4", "@inquirer/prompts": "^5.0.7", - "picocolors": "^1.0.1" + "yoctocolors-cjs": "^2.1.1" }, "publishConfig": { "access": "public" diff --git a/packages/expand/package.json b/packages/expand/package.json index 49dd169b0..a2715e031 100644 --- a/packages/expand/package.json +++ b/packages/expand/package.json @@ -56,7 +56,7 @@ "dependencies": { "@inquirer/core": "^8.2.4", "@inquirer/type": "^1.3.3", - "picocolors": "^1.0.1" + "yoctocolors-cjs": "^2.1.1" }, "devDependencies": { "@inquirer/testing": "^2.1.23" diff --git a/packages/expand/src/index.mts b/packages/expand/src/index.mts index ea18cea2f..3beebe330 100644 --- a/packages/expand/src/index.mts +++ b/packages/expand/src/index.mts @@ -8,7 +8,7 @@ import { type Theme, } from '@inquirer/core'; import type { PartialDeep } from '@inquirer/type'; -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; type ExpandChoice = | { key: string; name: string } @@ -67,7 +67,7 @@ export default createPrompt((config, done) => { } else if (value === '') { setError('Please input a value'); } else { - setError(`"${pc.red(value)}" isn't an available option`); + setError(`"${colors.red(value)}" isn't an available option`); } } } else { @@ -116,7 +116,7 @@ export default createPrompt((config, done) => { let helpTip = ''; const currentOption = allChoices.find(({ key }) => key === value.toLowerCase()); if (currentOption) { - helpTip = `${pc.cyan('>>')} ${getChoiceKey(currentOption, 'name')}`; + helpTip = `${colors.cyan('>>')} ${getChoiceKey(currentOption, 'name')}`; } let error = ''; diff --git a/packages/inquirer/lib/objects/separator.js b/packages/inquirer/lib/objects/separator.js index 1f479ca1c..b821b2a40 100644 --- a/packages/inquirer/lib/objects/separator.js +++ b/packages/inquirer/lib/objects/separator.js @@ -1,4 +1,4 @@ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import figures from '@inquirer/figures'; /** @@ -11,7 +11,7 @@ import figures from '@inquirer/figures'; export default class Separator { constructor(line) { this.type = 'separator'; - this.line = pc.dim(line || Array.from({ length: 15 }).join(figures.line)); + this.line = colors.dim(line || Array.from({ length: 15 }).join(figures.line)); } /** diff --git a/packages/inquirer/lib/prompts/base.js b/packages/inquirer/lib/prompts/base.js index 57b840bb6..63b3c519b 100644 --- a/packages/inquirer/lib/prompts/base.js +++ b/packages/inquirer/lib/prompts/base.js @@ -2,7 +2,7 @@ * Base prompt implementation * Should be extended by prompt types. */ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import runAsync from 'run-async'; import { filter, mergeMap, share, take, takeUntil } from 'rxjs'; import Choices from '../objects/choices.js'; @@ -24,7 +24,7 @@ export default class Prompt { filteringText: '', when: () => true, suffix: '', - prefix: pc.green('?'), + prefix: colors.green('?'), transformer: (val) => val, ...question, }; @@ -149,9 +149,9 @@ export default class Prompt { getQuestion() { let message = (this.opt.prefix ? this.opt.prefix + ' ' : '') + - pc.bold(this.opt.message) + + colors.bold(this.opt.message) + this.opt.suffix + - pc.reset(' '); + colors.reset(' '); // Append the default if available, and if question isn't touched/answered if ( @@ -162,8 +162,8 @@ export default class Prompt { // If default password is supplied, hide it message += this.opt.type === 'password' - ? pc.italic(pc.dim('[hidden] ')) - : pc.dim('(' + this.opt.default + ') '); + ? colors.italic(colors.dim('[hidden] ')) + : colors.dim('(' + this.opt.default + ') '); } return message; diff --git a/packages/inquirer/lib/prompts/checkbox.js b/packages/inquirer/lib/prompts/checkbox.js index 8301b7861..0a7d1b840 100644 --- a/packages/inquirer/lib/prompts/checkbox.js +++ b/packages/inquirer/lib/prompts/checkbox.js @@ -3,7 +3,7 @@ */ import ansiEscapes from 'ansi-escapes'; -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import figures from '@inquirer/figures'; import { map, takeUntil } from 'rxjs'; import observe from '../utils/events.js'; @@ -88,19 +88,19 @@ export default class CheckboxPrompt extends Base { if (!this.dontShowHints) { message += '(Press ' + - pc.cyan(pc.bold('')) + + colors.cyan(colors.bold('')) + ' to select, ' + - pc.cyan(pc.bold('')) + + colors.cyan(colors.bold('')) + ' to toggle all, ' + - pc.cyan(pc.bold('')) + + colors.cyan(colors.bold('')) + ' to invert selection, and ' + - pc.cyan(pc.bold('')) + + colors.cyan(colors.bold('')) + ' to proceed)'; } // Render choices or answer depending on the state if (this.status === 'answered') { - message += pc.cyan(this.selection.join(', ')); + message += colors.cyan(this.selection.join(', ')); } else { const choicesStr = renderChoices(this.opt.choices, this.pointer); const indexPosition = this.opt.choices.indexOf( @@ -132,7 +132,7 @@ export default class CheckboxPrompt extends Base { } if (error) { - bottomContent = pc.red('>> ') + error; + bottomContent = colors.red('>> ') + error; } message += ansiEscapes.cursorHide; @@ -249,7 +249,9 @@ function renderChoices(choices, pointer) { } else { const line = getCheckbox(choice.checked) + ' ' + choice.name; output += - i - separatorOffset === pointer ? pc.cyan(figures.pointer + line) : ' ' + line; + i - separatorOffset === pointer + ? colors.cyan(figures.pointer + line) + : ' ' + line; } output += '\n'; @@ -265,5 +267,5 @@ function renderChoices(choices, pointer) { */ function getCheckbox(checked) { - return checked ? pc.green(figures.radioOn) : figures.radioOff; + return checked ? colors.green(figures.radioOn) : figures.radioOff; } diff --git a/packages/inquirer/lib/prompts/confirm.js b/packages/inquirer/lib/prompts/confirm.js index 0d9ab9a47..563883e6b 100644 --- a/packages/inquirer/lib/prompts/confirm.js +++ b/packages/inquirer/lib/prompts/confirm.js @@ -2,7 +2,7 @@ * `confirm` type prompt */ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import { take, takeUntil } from 'rxjs'; import observe from '../utils/events.js'; import Base from './base.js'; @@ -60,7 +60,7 @@ export default class ConfirmPrompt extends Base { let message = this.getQuestion(); if (typeof answer === 'boolean') { - message += pc.cyan(answer ? 'Yes' : 'No'); + message += colors.cyan(answer ? 'Yes' : 'No'); } else if (answer) { message += answer; } else { diff --git a/packages/inquirer/lib/prompts/editor.js b/packages/inquirer/lib/prompts/editor.js index b82d00678..cd5ace309 100644 --- a/packages/inquirer/lib/prompts/editor.js +++ b/packages/inquirer/lib/prompts/editor.js @@ -2,7 +2,7 @@ * `editor` type prompt */ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import { editAsync } from 'external-editor'; import { Subject } from 'rxjs'; import observe from '../utils/events.js'; @@ -56,11 +56,11 @@ export default class EditorPrompt extends Base { message += this.status === 'answered' - ? pc.dim('Received') - : pc.dim('Press to launch your preferred editor.'); + ? colors.dim('Received') + : colors.dim('Press to launch your preferred editor.'); if (error) { - bottomContent = pc.red('>> ') + error; + bottomContent = colors.red('>> ') + error; } this.screen.render(message, bottomContent); diff --git a/packages/inquirer/lib/prompts/expand.js b/packages/inquirer/lib/prompts/expand.js index 16423df0e..5e37de575 100644 --- a/packages/inquirer/lib/prompts/expand.js +++ b/packages/inquirer/lib/prompts/expand.js @@ -2,7 +2,7 @@ * `rawlist` type prompt */ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import { map, takeUntil } from 'rxjs'; import Separator from '../objects/separator.js'; import observe from '../utils/events.js'; @@ -76,7 +76,7 @@ export default class ExpandPrompt extends Base { let bottomContent = ''; if (this.status === 'answered') { - message += pc.cyan(this.answer); + message += colors.cyan(this.answer); } else if (this.status === 'expanded') { const choicesStr = renderChoices(this.opt.choices, this.selectedKey); message += this.paginator.paginate(choicesStr, this.selectedKey, this.opt.pageSize); @@ -86,11 +86,11 @@ export default class ExpandPrompt extends Base { message += this.rl.line; if (error) { - bottomContent = pc.red('>> ') + error; + bottomContent = colors.red('>> ') + error; } if (hint) { - bottomContent = pc.cyan('>> ') + hint; + bottomContent = colors.cyan('>> ') + hint; } this.screen.render(message, bottomContent); @@ -125,7 +125,7 @@ export default class ExpandPrompt extends Base { let choiceStr = choice.key + ') ' + choice.name; if (this.selectedKey === choice.key) { - choiceStr = pc.cyan(choiceStr); + choiceStr = colors.cyan(choiceStr); } output += choiceStr; @@ -258,7 +258,7 @@ function renderChoices(choices, pointer) { let choiceStr = choice.key + ') ' + choice.name; if (pointer === choice.key) { - choiceStr = pc.cyan(choiceStr); + choiceStr = colors.cyan(choiceStr); } output += choiceStr; diff --git a/packages/inquirer/lib/prompts/input.js b/packages/inquirer/lib/prompts/input.js index e5894420f..7758fa872 100644 --- a/packages/inquirer/lib/prompts/input.js +++ b/packages/inquirer/lib/prompts/input.js @@ -2,7 +2,7 @@ * `input` type prompt */ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import { map, takeUntil } from 'rxjs'; import observe from '../utils/events.js'; import Base from './base.js'; @@ -52,11 +52,11 @@ export default class InputPrompt extends Base { if (transformer) { message += transformer(appendContent, this.answers, { isFinal }); } else { - message += isFinal ? pc.cyan(appendContent) : appendContent; + message += isFinal ? colors.cyan(appendContent) : appendContent; } if (error) { - bottomContent = pc.red('>> ') + error; + bottomContent = colors.red('>> ') + error; } this.screen.render(message, bottomContent); diff --git a/packages/inquirer/lib/prompts/list.js b/packages/inquirer/lib/prompts/list.js index a2ff46ada..31fd0f0b0 100644 --- a/packages/inquirer/lib/prompts/list.js +++ b/packages/inquirer/lib/prompts/list.js @@ -3,7 +3,7 @@ */ import ansiEscapes from 'ansi-escapes'; -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import figures from '@inquirer/figures'; import runAsync from 'run-async'; import { flatMap, map, take, takeUntil } from 'rxjs'; @@ -81,12 +81,12 @@ export default class ListPrompt extends Base { let message = this.getQuestion(); if (this.firstRender) { - message += pc.dim('(Use arrow keys)'); + message += colors.dim('(Use arrow keys)'); } // Render choices or answer depending on the state if (this.status === 'answered') { - message += pc.cyan(this.opt.choices.getChoice(this.selected).short); + message += colors.cyan(this.opt.choices.getChoice(this.selected).short); } else { const choicesStr = listRender(this.opt.choices, this.selected); const indexPosition = this.opt.choices.indexOf( @@ -192,7 +192,7 @@ function listRender(choices, pointer) { const isSelected = i - separatorOffset === pointer; let line = (isSelected ? figures.pointer + ' ' : ' ') + choice.name; if (isSelected) { - line = pc.cyan(line); + line = colors.cyan(line); } output += line + ' \n'; diff --git a/packages/inquirer/lib/prompts/password.js b/packages/inquirer/lib/prompts/password.js index 159d86343..bbc9d09b8 100644 --- a/packages/inquirer/lib/prompts/password.js +++ b/packages/inquirer/lib/prompts/password.js @@ -2,7 +2,7 @@ * `password` type prompt */ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import { map, takeUntil } from 'rxjs'; import observe from '../utils/events.js'; import Base from './base.js'; @@ -61,7 +61,7 @@ export default class PasswordPrompt extends Base { : this.getMaskedValue(this.rl.line || ''); if (error) { - bottomContent = '\n' + pc.red('>> ') + error; + bottomContent = '\n' + colors.red('>> ') + error; } this.screen.render(message, bottomContent); @@ -70,12 +70,12 @@ export default class PasswordPrompt extends Base { getMaskedValue(value) { if (this.status === 'answered') { return this.opt.mask - ? pc.cyan(mask(value, this.opt.mask)) - : pc.italic(pc.dim('[hidden]')); + ? colors.cyan(mask(value, this.opt.mask)) + : colors.italic(colors.dim('[hidden]')); } return this.opt.mask ? mask(value, this.opt.mask) - : pc.italic(pc.dim('[input is hidden] ')); + : colors.italic(colors.dim('[input is hidden] ')); } /** diff --git a/packages/inquirer/lib/prompts/rawlist.js b/packages/inquirer/lib/prompts/rawlist.js index 69adba477..de4a856db 100644 --- a/packages/inquirer/lib/prompts/rawlist.js +++ b/packages/inquirer/lib/prompts/rawlist.js @@ -2,7 +2,7 @@ * `rawlist` type prompt */ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import { map, takeUntil } from 'rxjs'; import Separator from '../objects/separator.js'; import observe from '../utils/events.js'; @@ -93,7 +93,7 @@ export default class RawListPrompt extends Base { let bottomContent = ''; if (this.status === 'answered') { - message += pc.cyan(this.opt.choices.getChoice(this.selected).short); + message += colors.cyan(this.opt.choices.getChoice(this.selected).short); } else { const choicesStr = renderChoices(this.opt.choices, this.selected); message += @@ -103,7 +103,7 @@ export default class RawListPrompt extends Base { message += this.rl.line; if (error) { - bottomContent = '\n' + pc.red('>> ') + error; + bottomContent = '\n' + colors.red('>> ') + error; } this.screen.render(message, bottomContent); @@ -211,7 +211,7 @@ function renderChoices(choices, pointer) { const index = i - separatorOffset; let display = index + 1 + ') ' + choice.name; if (index === pointer) { - display = pc.cyan(display); + display = colors.cyan(display); } output += display; diff --git a/packages/inquirer/lib/utils/paginator.js b/packages/inquirer/lib/utils/paginator.js index 7660fd316..9d1ab69fe 100644 --- a/packages/inquirer/lib/utils/paginator.js +++ b/packages/inquirer/lib/utils/paginator.js @@ -1,4 +1,4 @@ -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; /** * The paginator returns a subset of the choices if the list is too long. @@ -38,7 +38,9 @@ export default class Paginator { : this.getFiniteLines(lines, active, pageSize); this.lastIndex = active; return ( - visibleLines.join('\n') + '\n' + pc.dim('(Move up and down to reveal more choices)') + visibleLines.join('\n') + + '\n' + + colors.dim('(Move up and down to reveal more choices)') ); } diff --git a/packages/inquirer/package.json b/packages/inquirer/package.json index 3a0a59a32..231b5cffa 100644 --- a/packages/inquirer/package.json +++ b/packages/inquirer/package.json @@ -65,12 +65,12 @@ "external-editor": "^3.1.0", "mute-stream": "1.0.0", "ora": "^5.4.1", - "picocolors": "^1.0.1", "run-async": "^3.0.0", "rxjs": "^7.8.1", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.1" }, "homepage": "https://github.com/SBoudrias/Inquirer.js/blob/master/packages/inquirer/README.md", "sideEffects": false diff --git a/packages/rawlist/package.json b/packages/rawlist/package.json index 8a5001120..253905d79 100644 --- a/packages/rawlist/package.json +++ b/packages/rawlist/package.json @@ -56,7 +56,7 @@ "dependencies": { "@inquirer/core": "^8.2.4", "@inquirer/type": "^1.3.3", - "picocolors": "^1.0.1" + "yoctocolors-cjs": "^2.1.1" }, "devDependencies": { "@inquirer/testing": "^2.1.23" diff --git a/packages/rawlist/src/index.mts b/packages/rawlist/src/index.mts index b57832aa6..cec9504d5 100644 --- a/packages/rawlist/src/index.mts +++ b/packages/rawlist/src/index.mts @@ -9,7 +9,7 @@ import { type Theme, } from '@inquirer/core'; import type { PartialDeep } from '@inquirer/type'; -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; const numberRegex = /\d+/; @@ -60,7 +60,7 @@ export default createPrompt( } else if (value === '') { setError('Please input a value'); } else { - setError(`"${pc.red(value)}" isn't an available option`); + setError(`"${colors.red(value)}" isn't an available option`); } } else { setValue(rl.line); diff --git a/packages/select/package.json b/packages/select/package.json index decdb7255..52123ca26 100644 --- a/packages/select/package.json +++ b/packages/select/package.json @@ -58,7 +58,7 @@ "@inquirer/figures": "^1.0.3", "@inquirer/type": "^1.3.3", "ansi-escapes": "^4.3.2", - "picocolors": "^1.0.1" + "yoctocolors-cjs": "^2.1.1" }, "devDependencies": { "@inquirer/testing": "^2.1.23" diff --git a/packages/select/src/index.mts b/packages/select/src/index.mts index 27118c314..73c32bafb 100644 --- a/packages/select/src/index.mts +++ b/packages/select/src/index.mts @@ -17,7 +17,7 @@ import { type Theme, } from '@inquirer/core'; import type { PartialDeep } from '@inquirer/type'; -import pc from 'picocolors'; +import colors from 'yoctocolors-cjs'; import figures from '@inquirer/figures'; import ansiEscapes from 'ansi-escapes'; @@ -29,7 +29,7 @@ type SelectTheme = { const selectTheme: SelectTheme = { icon: { cursor: figures.pointer }, - style: { disabled: (text: string) => pc.dim(`- ${text}`) }, + style: { disabled: (text: string) => colors.dim(`- ${text}`) }, helpMode: 'auto', }; diff --git a/yarn.lock b/yarn.lock index 418db2410..9c0d3fe67 100644 --- a/yarn.lock +++ b/yarn.lock @@ -388,7 +388,7 @@ __metadata: "@inquirer/testing": "npm:^2.1.23" "@inquirer/type": "npm:^1.3.3" ansi-escapes: "npm:^4.3.2" - picocolors: "npm:^1.0.1" + yoctocolors-cjs: "npm:^2.1.1" languageName: unknown linkType: soft @@ -424,10 +424,10 @@ __metadata: cli-spinners: "npm:^2.9.2" cli-width: "npm:^4.1.0" mute-stream: "npm:^1.0.0" - picocolors: "npm:^1.0.1" signal-exit: "npm:^4.1.0" strip-ansi: "npm:^6.0.1" wrap-ansi: "npm:^6.2.0" + yoctocolors-cjs: "npm:^2.1.1" languageName: unknown linkType: soft @@ -437,7 +437,7 @@ __metadata: dependencies: "@inquirer/core": "npm:^8.2.4" "@inquirer/prompts": "npm:^5.0.7" - picocolors: "npm:^1.0.1" + yoctocolors-cjs: "npm:^2.1.1" bin: inquirer-demo: index.mjs languageName: unknown @@ -469,7 +469,7 @@ __metadata: "@inquirer/core": "npm:^8.2.4" "@inquirer/testing": "npm:^2.1.23" "@inquirer/type": "npm:^1.3.3" - picocolors: "npm:^1.0.1" + yoctocolors-cjs: "npm:^2.1.1" languageName: unknown linkType: soft @@ -523,7 +523,7 @@ __metadata: "@inquirer/core": "npm:^8.2.4" "@inquirer/testing": "npm:^2.1.23" "@inquirer/type": "npm:^1.3.3" - picocolors: "npm:^1.0.1" + yoctocolors-cjs: "npm:^2.1.1" languageName: unknown linkType: soft @@ -565,7 +565,7 @@ __metadata: "@inquirer/testing": "npm:^2.1.23" "@inquirer/type": "npm:^1.3.3" ansi-escapes: "npm:^4.3.2" - picocolors: "npm:^1.0.1" + yoctocolors-cjs: "npm:^2.1.1" languageName: unknown linkType: soft @@ -4400,13 +4400,13 @@ __metadata: external-editor: "npm:^3.1.0" mute-stream: "npm:1.0.0" ora: "npm:^5.4.1" - picocolors: "npm:^1.0.1" run-async: "npm:^3.0.0" rxjs: "npm:^7.8.1" string-width: "npm:^4.2.3" strip-ansi: "npm:^6.0.1" terminal-link: "npm:^3.0.0" wrap-ansi: "npm:^6.2.0" + yoctocolors-cjs: "npm:^2.1.1" languageName: unknown linkType: soft @@ -6563,13 +6563,6 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.1": - version: 1.0.1 - resolution: "picocolors@npm:1.0.1" - checksum: 10/fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 - languageName: node - linkType: hard - "picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -8643,3 +8636,10 @@ __metadata: checksum: 10/2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 languageName: node linkType: hard + +"yoctocolors-cjs@npm:^2.1.1": + version: 2.1.1 + resolution: "yoctocolors-cjs@npm:2.1.1" + checksum: 10/d7cbb833eb2fac85e38f5efeaf163ad2d468b7795eef595f034183a404253767d06ec6075e44ab0414436a7bbf5e4aad524e5a3f380dafbbd24e971a4ee51d37 + languageName: node + linkType: hard