123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- import {LiteralUnion} from 'type-fest';
- import cliBoxes, {BoxStyle} from 'cli-boxes';
-
- declare namespace boxen {
- /**
- Characters used for custom border.
-
- @example
- ```
- // affffb
- // e e
- // dffffc
-
- const border: CustomBorderStyle = {
- topLeft: 'a',
- topRight: 'b',
- bottomRight: 'c',
- bottomLeft: 'd',
- vertical: 'e',
- horizontal: 'f'
- };
- ```
- */
- interface CustomBorderStyle extends BoxStyle {}
-
- /**
- Spacing used for `padding` and `margin`.
- */
- interface Spacing {
- readonly top: number;
- readonly right: number;
- readonly bottom: number;
- readonly left: number;
- }
-
- interface Options {
- /**
- Color of the box border.
- */
- readonly borderColor?: LiteralUnion<
- | 'black'
- | 'red'
- | 'green'
- | 'yellow'
- | 'blue'
- | 'magenta'
- | 'cyan'
- | 'white'
- | 'gray'
- | 'grey'
- | 'blackBright'
- | 'redBright'
- | 'greenBright'
- | 'yellowBright'
- | 'blueBright'
- | 'magentaBright'
- | 'cyanBright'
- | 'whiteBright',
- string
- >;
-
- /**
- Style of the box border.
-
- @default BorderStyle.Single
- */
- readonly borderStyle?: BorderStyle | CustomBorderStyle;
-
- /**
- Reduce opacity of the border.
-
- @default false
- */
- readonly dimBorder?: boolean;
-
- /**
- Space between the text and box border.
-
- @default 0
- */
- readonly padding?: number | Spacing;
-
- /**
- Space around the box.
-
- @default 0
- */
- readonly margin?: number | Spacing;
-
- /**
- Float the box on the available terminal screen space.
-
- @default 'left'
- */
- readonly float?: 'left' | 'right' | 'center';
-
- /**
- Color of the background.
- */
- readonly backgroundColor?: LiteralUnion<
- | 'black'
- | 'red'
- | 'green'
- | 'yellow'
- | 'blue'
- | 'magenta'
- | 'cyan'
- | 'white'
- | 'blackBright'
- | 'redBright'
- | 'greenBright'
- | 'yellowBright'
- | 'blueBright'
- | 'magentaBright'
- | 'cyanBright'
- | 'whiteBright',
- string
- >;
-
- /**
- Align the text in the box based on the widest line.
-
- @default 'left'
- */
- readonly align?: 'left' | 'right' | 'center';
- }
- }
-
- declare const enum BorderStyle {
- Single = 'single',
- Double = 'double',
- Round = 'round',
- Bold = 'bold',
- SingleDouble = 'singleDouble',
- DoubleSingle = 'doubleSingle',
- Classic = 'classic'
- }
-
- declare const boxen: {
- /**
- Creates a box in the terminal.
-
- @param text - The text inside the box.
- @returns The box.
-
- @example
- ```
- import boxen = require('boxen');
-
- console.log(boxen('unicorn', {padding: 1}));
- // ┌─────────────┐
- // │ │
- // │ unicorn │
- // │ │
- // └─────────────┘
-
- console.log(boxen('unicorn', {padding: 1, margin: 1, borderStyle: 'double'}));
- //
- // ╔═════════════╗
- // ║ ║
- // ║ unicorn ║
- // ║ ║
- // ╚═════════════╝
- //
- ```
- */
- (text: string, options?: boxen.Options): string;
-
- /**
- Border styles from [`cli-boxes`](https://github.com/sindresorhus/cli-boxes).
- */
- BorderStyle: typeof BorderStyle;
- };
-
- export = boxen;
|