Files
dewedev/node_modules/prompts/lib/util/style.js
dwindown 7f2dd5260f Initial commit: Developer Tools MVP with visual editor
- Complete React app with 7 developer tools
- JSON Tool with visual structured editor
- Serialize Tool with visual structured editor
- URL, Base64, CSV/JSON, Beautifier, Diff tools
- Responsive navigation with dropdown menu
- Dark/light mode toggle
- Mobile-responsive design with sticky header
- All tools working with copy/paste functionality
2025-08-02 09:31:26 +07:00

41 lines
1.1 KiB
JavaScript

'use strict';
const c = require('kleur');
const figures = require('./figures');
// rendering user input.
const styles = Object.freeze({
password: { scale: 1, render: input => '*'.repeat(input.length) },
emoji: { scale: 2, render: input => '😃'.repeat(input.length) },
invisible: { scale: 0, render: input => '' },
default: { scale: 1, render: input => `${input}` }
});
const render = type => styles[type] || styles.default;
// icon to signalize a prompt.
const symbols = Object.freeze({
aborted: c.red(figures.cross),
done: c.green(figures.tick),
exited: c.yellow(figures.cross),
default: c.cyan('?')
});
const symbol = (done, aborted, exited) =>
aborted ? symbols.aborted : exited ? symbols.exited : done ? symbols.done : symbols.default;
// between the question and the user's input.
const delimiter = completing =>
c.gray(completing ? figures.ellipsis : figures.pointerSmall);
const item = (expandable, expanded) =>
c.gray(expandable ? (expanded ? figures.pointerSmall : '+') : figures.line);
module.exports = {
styles,
render,
symbols,
symbol,
delimiter,
item
};