ansimax 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/README.es.md +42 -2
- package/README.md +42 -2
- package/dist/index.d.mts +26 -1
- package/dist/index.d.ts +26 -1
- package/dist/index.js +24 -0
- package/dist/index.mjs +23 -0
- package/examples/all-in-one.cjs +1 -1
- package/examples/all-in-one.mjs +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,54 @@
|
|
|
3
3
|
All notable changes to **ansimax** are documented in this file.
|
|
4
4
|
This project follows [Semantic Versioning](https://semver.org/).
|
|
5
5
|
|
|
6
|
+
## [1.2.3] — Gradient factory + performance
|
|
7
|
+
|
|
8
|
+
Patch release adding a new performance-oriented API and refinements. No
|
|
9
|
+
breaking changes — every 1.2.x program runs identically.
|
|
10
|
+
|
|
11
|
+
### Added — `createGradient()` factory
|
|
12
|
+
|
|
13
|
+
A pre-resolved gradient that can be applied repeatedly to different
|
|
14
|
+
strings without re-parsing hex stops on every call. Significantly
|
|
15
|
+
faster for animation loops, frame-based rendering, and bulk colorizing:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { createGradient } from 'ansimax';
|
|
19
|
+
|
|
20
|
+
const fire = createGradient(['#ff5555', '#ffb86c', '#f1fa8c']);
|
|
21
|
+
|
|
22
|
+
// Reuse — hex stops are pre-resolved
|
|
23
|
+
console.log(fire('first line'));
|
|
24
|
+
console.log(fire('second line'));
|
|
25
|
+
|
|
26
|
+
// Use as colorFn for ascii.banner (matches the ColorFn signature)
|
|
27
|
+
console.log(ascii.banner('FIRE', { colorFn: fire }));
|
|
28
|
+
|
|
29
|
+
// Per-call options still work (especially useful for animation)
|
|
30
|
+
for (let p = 0; p < 1; p += 0.05) {
|
|
31
|
+
process.stdout.write('\r' + fire('flowing', { phase: p }));
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Performance**: hex→RGB conversion happens once at factory time. For
|
|
36
|
+
loops calling `gradient()` hundreds of times per frame, this can cut
|
|
37
|
+
gradient overhead by ~40–60% (depending on stop count).
|
|
38
|
+
|
|
39
|
+
**API surface**:
|
|
40
|
+
- `createGradient(stops, defaultOpts?)` returns `(text, opts?) => string`
|
|
41
|
+
- The returned function matches the `ColorFn` shape (compatible with
|
|
42
|
+
`ascii.banner({ colorFn })`, `themes.gradient`, etc.)
|
|
43
|
+
- Per-call `opts` override defaults; useful for varying `phase` per frame
|
|
44
|
+
while keeping the same colors/easing
|
|
45
|
+
|
|
46
|
+
### Improved
|
|
47
|
+
|
|
48
|
+
- **More JSDoc on `createGradient`** with three runnable `@example` blocks.
|
|
49
|
+
- All 1880 + 12 new tests pass.
|
|
50
|
+
- No new runtime dependencies — still zero.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
6
54
|
## [1.2.2] — Quality polish
|
|
7
55
|
|
|
8
56
|
Patch release focused on API ergonomics and robustness refinements. No
|
package/README.es.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
_Colores • Gradientes • Animaciones • ASCII Art • Pixel Art • Árboles • Componentes • Temas_
|
|
8
8
|
|
|
9
9
|
[](LICENSE)
|
|
10
|
-
[](https://www.npmjs.com/package/ansimax)
|
|
11
11
|
[](tsconfig.json)
|
|
12
12
|
[](#testing)
|
|
13
13
|
[](#testing)
|
|
@@ -260,6 +260,28 @@ console.log(gradientRect({
|
|
|
260
260
|
}));
|
|
261
261
|
```
|
|
262
262
|
|
|
263
|
+
### Gradientes reusables (v1.2.3)
|
|
264
|
+
|
|
265
|
+
```ts
|
|
266
|
+
import { createGradient, ascii } from 'ansimax';
|
|
267
|
+
|
|
268
|
+
// Pre-resuelve los stops de hex una vez — significativamente más rápido para uso repetido
|
|
269
|
+
const fire = createGradient(['#ff5555', '#ffb86c', '#f1fa8c']);
|
|
270
|
+
|
|
271
|
+
console.log(fire('Primera línea'));
|
|
272
|
+
console.log(fire('Segunda línea'));
|
|
273
|
+
console.log(fire('Tercera línea'));
|
|
274
|
+
|
|
275
|
+
// Úsalo como colorFn para banners — misma firma de ColorFn
|
|
276
|
+
console.log(ascii.banner('FIRE', { colorFn: fire }));
|
|
277
|
+
|
|
278
|
+
// Las opciones por-llamada aún funcionan — perfecto para animación
|
|
279
|
+
for (let p = 0; p < 1; p += 0.05) {
|
|
280
|
+
process.stdout.write('\r' + fire('fluyendo', { phase: p }));
|
|
281
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
263
285
|
### ASCII Art
|
|
264
286
|
|
|
265
287
|
<img src="media/ascii_art.png" alt="ASCII art" />
|
|
@@ -335,7 +357,7 @@ console.log(components.table([
|
|
|
335
357
|
['loaders', color.green('● listo'), '100%'],
|
|
336
358
|
], { borderStyle: 'rounded' }));
|
|
337
359
|
|
|
338
|
-
console.log(components.badge('VERSION', 'v1.2.
|
|
360
|
+
console.log(components.badge('VERSION', 'v1.2.3'));
|
|
339
361
|
console.log(components.badge('BUILD', 'passing'));
|
|
340
362
|
```
|
|
341
363
|
|
|
@@ -737,6 +759,24 @@ ansimax/
|
|
|
737
759
|
|
|
738
760
|
## 📝 Changelog
|
|
739
761
|
|
|
762
|
+
### v1.2.3 — Factory de gradientes + performance
|
|
763
|
+
|
|
764
|
+
Release patch añadiendo una API orientada a performance:
|
|
765
|
+
|
|
766
|
+
- ⚡ **Factory `createGradient()`** — pre-resuelve los stops de hex una vez para reuso, ~40-60% más rápido en loops de animación y colorizado en bulk
|
|
767
|
+
- 📖 Más JSDoc con ejemplos ejecutables
|
|
768
|
+
- 🎯 Coincide con la firma `ColorFn` — funciona como `colorFn` en `ascii.banner`, themes, etc.
|
|
769
|
+
|
|
770
|
+
```ts
|
|
771
|
+
import { createGradient } from 'ansimax';
|
|
772
|
+
|
|
773
|
+
const fire = createGradient(['#ff5555', '#ffb86c', '#f1fa8c']);
|
|
774
|
+
console.log(fire('¡Colores reusados!'));
|
|
775
|
+
console.log(ascii.banner('FIRE', { colorFn: fire }));
|
|
776
|
+
```
|
|
777
|
+
|
|
778
|
+
Drop-in replacement para `1.2.2`.
|
|
779
|
+
|
|
740
780
|
### v1.2.2 — Pulido de calidad
|
|
741
781
|
|
|
742
782
|
Release patch enfocado en ergonomía de API y refinamientos de robustez.
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
_Colors • Gradients • Animations • ASCII Art • Pixel Art • Trees • Components • Themes_
|
|
8
8
|
|
|
9
9
|
[](LICENSE)
|
|
10
|
-
[](https://www.npmjs.com/package/ansimax)
|
|
11
11
|
[](tsconfig.json)
|
|
12
12
|
[](#testing)
|
|
13
13
|
[](#testing)
|
|
@@ -260,6 +260,28 @@ console.log(gradientRect({
|
|
|
260
260
|
}));
|
|
261
261
|
```
|
|
262
262
|
|
|
263
|
+
### Reusable Gradients (v1.2.3)
|
|
264
|
+
|
|
265
|
+
```ts
|
|
266
|
+
import { createGradient, ascii } from 'ansimax';
|
|
267
|
+
|
|
268
|
+
// Pre-resolve hex stops once — significantly faster for repeated use
|
|
269
|
+
const fire = createGradient(['#ff5555', '#ffb86c', '#f1fa8c']);
|
|
270
|
+
|
|
271
|
+
console.log(fire('First line'));
|
|
272
|
+
console.log(fire('Second line'));
|
|
273
|
+
console.log(fire('Third line'));
|
|
274
|
+
|
|
275
|
+
// Use as a colorFn for banners — same ColorFn signature
|
|
276
|
+
console.log(ascii.banner('FIRE', { colorFn: fire }));
|
|
277
|
+
|
|
278
|
+
// Per-call options still work — perfect for animation
|
|
279
|
+
for (let p = 0; p < 1; p += 0.05) {
|
|
280
|
+
process.stdout.write('\r' + fire('flowing', { phase: p }));
|
|
281
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
263
285
|
### ASCII Art
|
|
264
286
|
|
|
265
287
|
<img src="media/ascii_art.png" alt="ASCII art" />
|
|
@@ -335,7 +357,7 @@ console.log(components.table([
|
|
|
335
357
|
['loaders', color.green('● ready'), '100%'],
|
|
336
358
|
], { borderStyle: 'rounded' }));
|
|
337
359
|
|
|
338
|
-
console.log(components.badge('VERSION', 'v1.2.
|
|
360
|
+
console.log(components.badge('VERSION', 'v1.2.3'));
|
|
339
361
|
console.log(components.badge('BUILD', 'passing'));
|
|
340
362
|
```
|
|
341
363
|
|
|
@@ -737,6 +759,24 @@ ansimax/
|
|
|
737
759
|
|
|
738
760
|
## 📝 Changelog
|
|
739
761
|
|
|
762
|
+
### v1.2.3 — Gradient factory + performance
|
|
763
|
+
|
|
764
|
+
Patch release adding a performance-oriented API:
|
|
765
|
+
|
|
766
|
+
- ⚡ **`createGradient()` factory** — pre-resolves hex stops once for reuse, ~40-60% faster for animation loops and bulk colorizing
|
|
767
|
+
- 📖 More JSDoc with runnable examples
|
|
768
|
+
- 🎯 Matches the `ColorFn` signature — works as `colorFn` in `ascii.banner`, themes, etc.
|
|
769
|
+
|
|
770
|
+
```ts
|
|
771
|
+
import { createGradient } from 'ansimax';
|
|
772
|
+
|
|
773
|
+
const fire = createGradient(['#ff5555', '#ffb86c', '#f1fa8c']);
|
|
774
|
+
console.log(fire('Reused colors!'));
|
|
775
|
+
console.log(ascii.banner('FIRE', { colorFn: fire }));
|
|
776
|
+
```
|
|
777
|
+
|
|
778
|
+
Drop-in replacement for `1.2.2`.
|
|
779
|
+
|
|
740
780
|
### v1.2.2 — Quality polish
|
|
741
781
|
|
|
742
782
|
Patch release focused on API ergonomics and robustness refinements.
|
package/dist/index.d.mts
CHANGED
|
@@ -598,6 +598,31 @@ interface GradientOptions {
|
|
|
598
598
|
* ```
|
|
599
599
|
*/
|
|
600
600
|
declare const gradient: (text: unknown, stops: string[] | null | undefined, opts?: GradientOptions) => string;
|
|
601
|
+
/**
|
|
602
|
+
* A pre-resolved gradient that can be applied repeatedly to different
|
|
603
|
+
* strings without re-parsing hex stops. Useful for hot loops, animation
|
|
604
|
+
* frames, or any case where the same color palette colorizes many texts.
|
|
605
|
+
*
|
|
606
|
+
* The returned function accepts the same per-call options as `gradient()`
|
|
607
|
+
* (e.g. you can still override `phase` per call for animation).
|
|
608
|
+
*
|
|
609
|
+
* @example
|
|
610
|
+
* ```ts
|
|
611
|
+
* const fire = createGradient(['#ff5555', '#ffb86c', '#f1fa8c']);
|
|
612
|
+
*
|
|
613
|
+
* console.log(fire('first line'));
|
|
614
|
+
* console.log(fire('second line'));
|
|
615
|
+
*
|
|
616
|
+
* // Use as colorFn for ascii.banner
|
|
617
|
+
* console.log(ascii.banner('FIRE', { colorFn: fire }));
|
|
618
|
+
*
|
|
619
|
+
* // Animate by overriding phase per frame
|
|
620
|
+
* for (let p = 0; p < 1; p += 0.05) {
|
|
621
|
+
* console.log(fire('flowing', { phase: p }));
|
|
622
|
+
* }
|
|
623
|
+
* ```
|
|
624
|
+
*/
|
|
625
|
+
declare const createGradient: (stops: string[] | null | undefined, defaultOpts?: Omit<GradientOptions, "phase">) => ((text: unknown, opts?: GradientOptions) => string);
|
|
601
626
|
declare const rainbow: ColorFn;
|
|
602
627
|
interface AnimateGradientOptions {
|
|
603
628
|
/** Total animation duration in ms. Default `2000`. */
|
|
@@ -1742,4 +1767,4 @@ declare const ansimax: {
|
|
|
1742
1767
|
configure: (opts?: AnsimaxConfig, meta?: ConfigureOptions) => void;
|
|
1743
1768
|
};
|
|
1744
1769
|
|
|
1745
|
-
export { type AnimateGradientController, type AnimateGradientOptions, type AnimationHooks, type AnimationSpeed, type AnsiCode, type AnsimaxConfig, BEL, BG, type BadgeOptions, type BallOptions, type BannerOptions, type BoxOptions, type BoxStyle, type BreatheOptions, DEFAULTS as CONFIG_DEFAULTS, CSI, type Canvas, type CanvasRenderOptions, type ColorChain, type ColorFn, type ColorLevel, type ColorMode, type ColorSupport, type ColumnsOptions, type ConfigChangeListener, type ConfigKey, type ConfigKeyListener, type ConfigureOptions, type CountdownOptions, type CustomOptions, DEFAULT_TERM_COLS, DEFAULT_TERM_ROWS, type DebounceOptions, type DiffType, type Dimensions, type DividerOptions, type DotsOptions, ESC, type EasingFn, type EasingName, type EraseMode, FG, FRAME_MS, type FadeOptions, type FontMap, type FontName, type FrameCallback, type FrameHandle, type GlitchOptions, type Glyph, type GradientOptions, type GradientRectOptions, type LineDiff, type LiveController, type LiveOptions, type LoadingBarOptions, type LogoOptions, MENU_CANCELLED, type MemoizeOptions, type MenuInput, type MenuOptions, type MenuOutput, type MenuResult, type MultiLoader, type MultiLoaderItem, OSC, type OnResizeOptions, type OutputBuffer, type ParallelOptions, type ParallelStep, type Pixel, type PixelGrid, type PlayController, type PlayOptions, type PresetName, type ProgressAnimateOptions, type ProgressBarOptions, type ProgressOptions, type PulseOptions, type RGB, type RGBA, type RegisterFontOptions, type RenderOptions, type ResizeListener, type RevealOptions, SPINNERS, SPRITES, ST, STYLE, type SectionOptions, type SleepOptions, type SlideOptions, type SpinOptions, type SpinnerType, type StatusOptions, type StatusType, type StopFn, type StreamOptions, type TableBorderStyle, type TableOptions, type Task, type TaskResult, type TasksOptions, type Theme, type BannerOpts as ThemeBannerOpts, type ThemeChangeListener, type ThemeInstance, type ThemeStyleName, type TimelineEvent, type TimelineOptions, type TreeData, type TreeDimensions, type TreeNode, type RenderOptions$1 as TreeRenderOptions, type TreeStyle, type TypeDeleteOptions, type TypewriterOptions, type WalkVisitor, type WaveOptions, type WriteAsyncOptions, animate, animateGradient, ascii, bell, bg256, bgRgb, box, canAnimate, cancelTerminalFrame, center, chain, charWidth, clamp, clearAnsiCache, clearColorCache, clearRenderCache, clearThemeColorCache, color, colorLevel, presets as colorPresets, components, compose, configure, countNodes, createCanvas, createOutputBuffer, createTheme, cursor, debounce, ansimax as default, diffLines, escapeRegex, fg256, fgRgb, filterTree, findInTree, flipHorizontal, flipVertical, frames, getConfig, getConfigValue, getRenderCacheSize, getSpeedMultiplier, getTerminalHeight, getTerminalWidth, gradient, gradientColor, gradientRect, graphemes, hasFont, hexToRgb, hideCursor, images, isHexColor, isNoColor, lerp, lerpColor, link, listFonts, listPresets, loader, mapTree, measureTree, memoize, nextTick, onConfigChange, onConfigKeyChange, onResize, once, padBoth, padEnd, padStart, pauseListeners, presetNames, rainbow, registerFont, registerPreset, renderPixelArt, renderTree, renderTreeStream, repeatVisible, requestTerminalFrame, reset, resetColorSupportCache, resetConfig, resetCursorRefCount, resetFramesCursorCount, resetLoaderCursorCount, resetNoColor, resumeListeners, rgbTo256, rgbToHex, rotate90, safeJson, screen, setNoColor, setTitle, sgr, showCursor, sleep, sleepFrame, sliceAnsi, stripAnsi$1 as stripAnsi, stripAnsi$2 as stripAnsiCodes, stripAnsi as stripAnsiColors, supportsColor, supportsColorLevel, termSize, themes, throttle, tree, trees, truncateAnsi, visibleLen, walkTree, withConfig, wordWrap, wrapAnsi, write, writeAsync, writeErr, writeln, writelnErr };
|
|
1770
|
+
export { type AnimateGradientController, type AnimateGradientOptions, type AnimationHooks, type AnimationSpeed, type AnsiCode, type AnsimaxConfig, BEL, BG, type BadgeOptions, type BallOptions, type BannerOptions, type BoxOptions, type BoxStyle, type BreatheOptions, DEFAULTS as CONFIG_DEFAULTS, CSI, type Canvas, type CanvasRenderOptions, type ColorChain, type ColorFn, type ColorLevel, type ColorMode, type ColorSupport, type ColumnsOptions, type ConfigChangeListener, type ConfigKey, type ConfigKeyListener, type ConfigureOptions, type CountdownOptions, type CustomOptions, DEFAULT_TERM_COLS, DEFAULT_TERM_ROWS, type DebounceOptions, type DiffType, type Dimensions, type DividerOptions, type DotsOptions, ESC, type EasingFn, type EasingName, type EraseMode, FG, FRAME_MS, type FadeOptions, type FontMap, type FontName, type FrameCallback, type FrameHandle, type GlitchOptions, type Glyph, type GradientOptions, type GradientRectOptions, type LineDiff, type LiveController, type LiveOptions, type LoadingBarOptions, type LogoOptions, MENU_CANCELLED, type MemoizeOptions, type MenuInput, type MenuOptions, type MenuOutput, type MenuResult, type MultiLoader, type MultiLoaderItem, OSC, type OnResizeOptions, type OutputBuffer, type ParallelOptions, type ParallelStep, type Pixel, type PixelGrid, type PlayController, type PlayOptions, type PresetName, type ProgressAnimateOptions, type ProgressBarOptions, type ProgressOptions, type PulseOptions, type RGB, type RGBA, type RegisterFontOptions, type RenderOptions, type ResizeListener, type RevealOptions, SPINNERS, SPRITES, ST, STYLE, type SectionOptions, type SleepOptions, type SlideOptions, type SpinOptions, type SpinnerType, type StatusOptions, type StatusType, type StopFn, type StreamOptions, type TableBorderStyle, type TableOptions, type Task, type TaskResult, type TasksOptions, type Theme, type BannerOpts as ThemeBannerOpts, type ThemeChangeListener, type ThemeInstance, type ThemeStyleName, type TimelineEvent, type TimelineOptions, type TreeData, type TreeDimensions, type TreeNode, type RenderOptions$1 as TreeRenderOptions, type TreeStyle, type TypeDeleteOptions, type TypewriterOptions, type WalkVisitor, type WaveOptions, type WriteAsyncOptions, animate, animateGradient, ascii, bell, bg256, bgRgb, box, canAnimate, cancelTerminalFrame, center, chain, charWidth, clamp, clearAnsiCache, clearColorCache, clearRenderCache, clearThemeColorCache, color, colorLevel, presets as colorPresets, components, compose, configure, countNodes, createCanvas, createGradient, createOutputBuffer, createTheme, cursor, debounce, ansimax as default, diffLines, escapeRegex, fg256, fgRgb, filterTree, findInTree, flipHorizontal, flipVertical, frames, getConfig, getConfigValue, getRenderCacheSize, getSpeedMultiplier, getTerminalHeight, getTerminalWidth, gradient, gradientColor, gradientRect, graphemes, hasFont, hexToRgb, hideCursor, images, isHexColor, isNoColor, lerp, lerpColor, link, listFonts, listPresets, loader, mapTree, measureTree, memoize, nextTick, onConfigChange, onConfigKeyChange, onResize, once, padBoth, padEnd, padStart, pauseListeners, presetNames, rainbow, registerFont, registerPreset, renderPixelArt, renderTree, renderTreeStream, repeatVisible, requestTerminalFrame, reset, resetColorSupportCache, resetConfig, resetCursorRefCount, resetFramesCursorCount, resetLoaderCursorCount, resetNoColor, resumeListeners, rgbTo256, rgbToHex, rotate90, safeJson, screen, setNoColor, setTitle, sgr, showCursor, sleep, sleepFrame, sliceAnsi, stripAnsi$1 as stripAnsi, stripAnsi$2 as stripAnsiCodes, stripAnsi as stripAnsiColors, supportsColor, supportsColorLevel, termSize, themes, throttle, tree, trees, truncateAnsi, visibleLen, walkTree, withConfig, wordWrap, wrapAnsi, write, writeAsync, writeErr, writeln, writelnErr };
|
package/dist/index.d.ts
CHANGED
|
@@ -598,6 +598,31 @@ interface GradientOptions {
|
|
|
598
598
|
* ```
|
|
599
599
|
*/
|
|
600
600
|
declare const gradient: (text: unknown, stops: string[] | null | undefined, opts?: GradientOptions) => string;
|
|
601
|
+
/**
|
|
602
|
+
* A pre-resolved gradient that can be applied repeatedly to different
|
|
603
|
+
* strings without re-parsing hex stops. Useful for hot loops, animation
|
|
604
|
+
* frames, or any case where the same color palette colorizes many texts.
|
|
605
|
+
*
|
|
606
|
+
* The returned function accepts the same per-call options as `gradient()`
|
|
607
|
+
* (e.g. you can still override `phase` per call for animation).
|
|
608
|
+
*
|
|
609
|
+
* @example
|
|
610
|
+
* ```ts
|
|
611
|
+
* const fire = createGradient(['#ff5555', '#ffb86c', '#f1fa8c']);
|
|
612
|
+
*
|
|
613
|
+
* console.log(fire('first line'));
|
|
614
|
+
* console.log(fire('second line'));
|
|
615
|
+
*
|
|
616
|
+
* // Use as colorFn for ascii.banner
|
|
617
|
+
* console.log(ascii.banner('FIRE', { colorFn: fire }));
|
|
618
|
+
*
|
|
619
|
+
* // Animate by overriding phase per frame
|
|
620
|
+
* for (let p = 0; p < 1; p += 0.05) {
|
|
621
|
+
* console.log(fire('flowing', { phase: p }));
|
|
622
|
+
* }
|
|
623
|
+
* ```
|
|
624
|
+
*/
|
|
625
|
+
declare const createGradient: (stops: string[] | null | undefined, defaultOpts?: Omit<GradientOptions, "phase">) => ((text: unknown, opts?: GradientOptions) => string);
|
|
601
626
|
declare const rainbow: ColorFn;
|
|
602
627
|
interface AnimateGradientOptions {
|
|
603
628
|
/** Total animation duration in ms. Default `2000`. */
|
|
@@ -1742,4 +1767,4 @@ declare const ansimax: {
|
|
|
1742
1767
|
configure: (opts?: AnsimaxConfig, meta?: ConfigureOptions) => void;
|
|
1743
1768
|
};
|
|
1744
1769
|
|
|
1745
|
-
export { type AnimateGradientController, type AnimateGradientOptions, type AnimationHooks, type AnimationSpeed, type AnsiCode, type AnsimaxConfig, BEL, BG, type BadgeOptions, type BallOptions, type BannerOptions, type BoxOptions, type BoxStyle, type BreatheOptions, DEFAULTS as CONFIG_DEFAULTS, CSI, type Canvas, type CanvasRenderOptions, type ColorChain, type ColorFn, type ColorLevel, type ColorMode, type ColorSupport, type ColumnsOptions, type ConfigChangeListener, type ConfigKey, type ConfigKeyListener, type ConfigureOptions, type CountdownOptions, type CustomOptions, DEFAULT_TERM_COLS, DEFAULT_TERM_ROWS, type DebounceOptions, type DiffType, type Dimensions, type DividerOptions, type DotsOptions, ESC, type EasingFn, type EasingName, type EraseMode, FG, FRAME_MS, type FadeOptions, type FontMap, type FontName, type FrameCallback, type FrameHandle, type GlitchOptions, type Glyph, type GradientOptions, type GradientRectOptions, type LineDiff, type LiveController, type LiveOptions, type LoadingBarOptions, type LogoOptions, MENU_CANCELLED, type MemoizeOptions, type MenuInput, type MenuOptions, type MenuOutput, type MenuResult, type MultiLoader, type MultiLoaderItem, OSC, type OnResizeOptions, type OutputBuffer, type ParallelOptions, type ParallelStep, type Pixel, type PixelGrid, type PlayController, type PlayOptions, type PresetName, type ProgressAnimateOptions, type ProgressBarOptions, type ProgressOptions, type PulseOptions, type RGB, type RGBA, type RegisterFontOptions, type RenderOptions, type ResizeListener, type RevealOptions, SPINNERS, SPRITES, ST, STYLE, type SectionOptions, type SleepOptions, type SlideOptions, type SpinOptions, type SpinnerType, type StatusOptions, type StatusType, type StopFn, type StreamOptions, type TableBorderStyle, type TableOptions, type Task, type TaskResult, type TasksOptions, type Theme, type BannerOpts as ThemeBannerOpts, type ThemeChangeListener, type ThemeInstance, type ThemeStyleName, type TimelineEvent, type TimelineOptions, type TreeData, type TreeDimensions, type TreeNode, type RenderOptions$1 as TreeRenderOptions, type TreeStyle, type TypeDeleteOptions, type TypewriterOptions, type WalkVisitor, type WaveOptions, type WriteAsyncOptions, animate, animateGradient, ascii, bell, bg256, bgRgb, box, canAnimate, cancelTerminalFrame, center, chain, charWidth, clamp, clearAnsiCache, clearColorCache, clearRenderCache, clearThemeColorCache, color, colorLevel, presets as colorPresets, components, compose, configure, countNodes, createCanvas, createOutputBuffer, createTheme, cursor, debounce, ansimax as default, diffLines, escapeRegex, fg256, fgRgb, filterTree, findInTree, flipHorizontal, flipVertical, frames, getConfig, getConfigValue, getRenderCacheSize, getSpeedMultiplier, getTerminalHeight, getTerminalWidth, gradient, gradientColor, gradientRect, graphemes, hasFont, hexToRgb, hideCursor, images, isHexColor, isNoColor, lerp, lerpColor, link, listFonts, listPresets, loader, mapTree, measureTree, memoize, nextTick, onConfigChange, onConfigKeyChange, onResize, once, padBoth, padEnd, padStart, pauseListeners, presetNames, rainbow, registerFont, registerPreset, renderPixelArt, renderTree, renderTreeStream, repeatVisible, requestTerminalFrame, reset, resetColorSupportCache, resetConfig, resetCursorRefCount, resetFramesCursorCount, resetLoaderCursorCount, resetNoColor, resumeListeners, rgbTo256, rgbToHex, rotate90, safeJson, screen, setNoColor, setTitle, sgr, showCursor, sleep, sleepFrame, sliceAnsi, stripAnsi$1 as stripAnsi, stripAnsi$2 as stripAnsiCodes, stripAnsi as stripAnsiColors, supportsColor, supportsColorLevel, termSize, themes, throttle, tree, trees, truncateAnsi, visibleLen, walkTree, withConfig, wordWrap, wrapAnsi, write, writeAsync, writeErr, writeln, writelnErr };
|
|
1770
|
+
export { type AnimateGradientController, type AnimateGradientOptions, type AnimationHooks, type AnimationSpeed, type AnsiCode, type AnsimaxConfig, BEL, BG, type BadgeOptions, type BallOptions, type BannerOptions, type BoxOptions, type BoxStyle, type BreatheOptions, DEFAULTS as CONFIG_DEFAULTS, CSI, type Canvas, type CanvasRenderOptions, type ColorChain, type ColorFn, type ColorLevel, type ColorMode, type ColorSupport, type ColumnsOptions, type ConfigChangeListener, type ConfigKey, type ConfigKeyListener, type ConfigureOptions, type CountdownOptions, type CustomOptions, DEFAULT_TERM_COLS, DEFAULT_TERM_ROWS, type DebounceOptions, type DiffType, type Dimensions, type DividerOptions, type DotsOptions, ESC, type EasingFn, type EasingName, type EraseMode, FG, FRAME_MS, type FadeOptions, type FontMap, type FontName, type FrameCallback, type FrameHandle, type GlitchOptions, type Glyph, type GradientOptions, type GradientRectOptions, type LineDiff, type LiveController, type LiveOptions, type LoadingBarOptions, type LogoOptions, MENU_CANCELLED, type MemoizeOptions, type MenuInput, type MenuOptions, type MenuOutput, type MenuResult, type MultiLoader, type MultiLoaderItem, OSC, type OnResizeOptions, type OutputBuffer, type ParallelOptions, type ParallelStep, type Pixel, type PixelGrid, type PlayController, type PlayOptions, type PresetName, type ProgressAnimateOptions, type ProgressBarOptions, type ProgressOptions, type PulseOptions, type RGB, type RGBA, type RegisterFontOptions, type RenderOptions, type ResizeListener, type RevealOptions, SPINNERS, SPRITES, ST, STYLE, type SectionOptions, type SleepOptions, type SlideOptions, type SpinOptions, type SpinnerType, type StatusOptions, type StatusType, type StopFn, type StreamOptions, type TableBorderStyle, type TableOptions, type Task, type TaskResult, type TasksOptions, type Theme, type BannerOpts as ThemeBannerOpts, type ThemeChangeListener, type ThemeInstance, type ThemeStyleName, type TimelineEvent, type TimelineOptions, type TreeData, type TreeDimensions, type TreeNode, type RenderOptions$1 as TreeRenderOptions, type TreeStyle, type TypeDeleteOptions, type TypewriterOptions, type WalkVisitor, type WaveOptions, type WriteAsyncOptions, animate, animateGradient, ascii, bell, bg256, bgRgb, box, canAnimate, cancelTerminalFrame, center, chain, charWidth, clamp, clearAnsiCache, clearColorCache, clearRenderCache, clearThemeColorCache, color, colorLevel, presets as colorPresets, components, compose, configure, countNodes, createCanvas, createGradient, createOutputBuffer, createTheme, cursor, debounce, ansimax as default, diffLines, escapeRegex, fg256, fgRgb, filterTree, findInTree, flipHorizontal, flipVertical, frames, getConfig, getConfigValue, getRenderCacheSize, getSpeedMultiplier, getTerminalHeight, getTerminalWidth, gradient, gradientColor, gradientRect, graphemes, hasFont, hexToRgb, hideCursor, images, isHexColor, isNoColor, lerp, lerpColor, link, listFonts, listPresets, loader, mapTree, measureTree, memoize, nextTick, onConfigChange, onConfigKeyChange, onResize, once, padBoth, padEnd, padStart, pauseListeners, presetNames, rainbow, registerFont, registerPreset, renderPixelArt, renderTree, renderTreeStream, repeatVisible, requestTerminalFrame, reset, resetColorSupportCache, resetConfig, resetCursorRefCount, resetFramesCursorCount, resetLoaderCursorCount, resetNoColor, resumeListeners, rgbTo256, rgbToHex, rotate90, safeJson, screen, setNoColor, setTitle, sgr, showCursor, sleep, sleepFrame, sliceAnsi, stripAnsi$1 as stripAnsi, stripAnsi$2 as stripAnsiCodes, stripAnsi as stripAnsiColors, supportsColor, supportsColorLevel, termSize, themes, throttle, tree, trees, truncateAnsi, visibleLen, walkTree, withConfig, wordWrap, wrapAnsi, write, writeAsync, writeErr, writeln, writelnErr };
|
package/dist/index.js
CHANGED
|
@@ -70,6 +70,7 @@ __export(index_exports, {
|
|
|
70
70
|
configure: () => configure,
|
|
71
71
|
countNodes: () => countNodes,
|
|
72
72
|
createCanvas: () => createCanvas,
|
|
73
|
+
createGradient: () => createGradient,
|
|
73
74
|
createOutputBuffer: () => createOutputBuffer,
|
|
74
75
|
createTheme: () => createTheme,
|
|
75
76
|
cursor: () => cursor,
|
|
@@ -1165,6 +1166,28 @@ var gradient = (text, stops, opts = {}) => {
|
|
|
1165
1166
|
}
|
|
1166
1167
|
return _gradientAnsiAware(s, colors, easingFn, phaseN);
|
|
1167
1168
|
};
|
|
1169
|
+
var createGradient = (stops, defaultOpts = {}) => {
|
|
1170
|
+
const colors = Array.isArray(stops) ? stops.map(safeHex).filter((c) => c !== null) : [];
|
|
1171
|
+
const defaultEasingFn = resolveEasing(defaultOpts.easing);
|
|
1172
|
+
const defaultPreserveAnsi = defaultOpts.preserveAnsi ?? false;
|
|
1173
|
+
return (text, opts = {}) => {
|
|
1174
|
+
const s = coerceText(text);
|
|
1175
|
+
if (!s || isNoColor()) return s;
|
|
1176
|
+
if (colors.length === 0) return s;
|
|
1177
|
+
if (colors.length === 1) {
|
|
1178
|
+
const c = colors[0];
|
|
1179
|
+
return adaptiveFg(c.r, c.g, c.b) + s + reset();
|
|
1180
|
+
}
|
|
1181
|
+
const easingFn = opts.easing !== void 0 ? resolveEasing(opts.easing) : defaultEasingFn;
|
|
1182
|
+
const preserveAnsi = opts.preserveAnsi ?? defaultPreserveAnsi;
|
|
1183
|
+
const phase = opts.phase ?? 0;
|
|
1184
|
+
const phaseN = Number.isFinite(phase) ? (phase % 1 + 1) % 1 : 0;
|
|
1185
|
+
if (!preserveAnsi || !s.includes("\x1B")) {
|
|
1186
|
+
return _gradientPlain(s, colors, easingFn, phaseN);
|
|
1187
|
+
}
|
|
1188
|
+
return _gradientAnsiAware(s, colors, easingFn, phaseN);
|
|
1189
|
+
};
|
|
1190
|
+
};
|
|
1168
1191
|
var _gradientPlain = (text, colors, easingFn, phase) => {
|
|
1169
1192
|
const chars = [...text];
|
|
1170
1193
|
const visible = chars.filter((c) => c !== " ").length;
|
|
@@ -5488,6 +5511,7 @@ var index_default = ansimax;
|
|
|
5488
5511
|
configure,
|
|
5489
5512
|
countNodes,
|
|
5490
5513
|
createCanvas,
|
|
5514
|
+
createGradient,
|
|
5491
5515
|
createOutputBuffer,
|
|
5492
5516
|
createTheme,
|
|
5493
5517
|
cursor,
|
package/dist/index.mjs
CHANGED
|
@@ -992,6 +992,28 @@ var gradient = (text, stops, opts = {}) => {
|
|
|
992
992
|
}
|
|
993
993
|
return _gradientAnsiAware(s, colors, easingFn, phaseN);
|
|
994
994
|
};
|
|
995
|
+
var createGradient = (stops, defaultOpts = {}) => {
|
|
996
|
+
const colors = Array.isArray(stops) ? stops.map(safeHex).filter((c) => c !== null) : [];
|
|
997
|
+
const defaultEasingFn = resolveEasing(defaultOpts.easing);
|
|
998
|
+
const defaultPreserveAnsi = defaultOpts.preserveAnsi ?? false;
|
|
999
|
+
return (text, opts = {}) => {
|
|
1000
|
+
const s = coerceText(text);
|
|
1001
|
+
if (!s || isNoColor()) return s;
|
|
1002
|
+
if (colors.length === 0) return s;
|
|
1003
|
+
if (colors.length === 1) {
|
|
1004
|
+
const c = colors[0];
|
|
1005
|
+
return adaptiveFg(c.r, c.g, c.b) + s + reset();
|
|
1006
|
+
}
|
|
1007
|
+
const easingFn = opts.easing !== void 0 ? resolveEasing(opts.easing) : defaultEasingFn;
|
|
1008
|
+
const preserveAnsi = opts.preserveAnsi ?? defaultPreserveAnsi;
|
|
1009
|
+
const phase = opts.phase ?? 0;
|
|
1010
|
+
const phaseN = Number.isFinite(phase) ? (phase % 1 + 1) % 1 : 0;
|
|
1011
|
+
if (!preserveAnsi || !s.includes("\x1B")) {
|
|
1012
|
+
return _gradientPlain(s, colors, easingFn, phaseN);
|
|
1013
|
+
}
|
|
1014
|
+
return _gradientAnsiAware(s, colors, easingFn, phaseN);
|
|
1015
|
+
};
|
|
1016
|
+
};
|
|
995
1017
|
var _gradientPlain = (text, colors, easingFn, phase) => {
|
|
996
1018
|
const chars = [...text];
|
|
997
1019
|
const visible = chars.filter((c) => c !== " ").length;
|
|
@@ -5314,6 +5336,7 @@ export {
|
|
|
5314
5336
|
configure,
|
|
5315
5337
|
countNodes,
|
|
5316
5338
|
createCanvas,
|
|
5339
|
+
createGradient,
|
|
5317
5340
|
createOutputBuffer,
|
|
5318
5341
|
createTheme,
|
|
5319
5342
|
cursor,
|
package/examples/all-in-one.cjs
CHANGED
|
@@ -118,7 +118,7 @@ async function main() {
|
|
|
118
118
|
console.log(components.section('🏷️ Badges & Status', { width: 60 }));
|
|
119
119
|
console.log();
|
|
120
120
|
console.log(' ',
|
|
121
|
-
components.badge('VERSION', 'v1.2.
|
|
121
|
+
components.badge('VERSION', 'v1.2.3'),
|
|
122
122
|
components.badge('BUILD', 'passing'),
|
|
123
123
|
components.badge('LICENSE', 'Apache 2.0'));
|
|
124
124
|
console.log();
|
package/examples/all-in-one.mjs
CHANGED
|
@@ -117,7 +117,7 @@ console.log();
|
|
|
117
117
|
console.log(components.section('🏷️ Badges & Status', { width: 60 }));
|
|
118
118
|
console.log();
|
|
119
119
|
console.log(' ',
|
|
120
|
-
components.badge('VERSION', 'v1.2.
|
|
120
|
+
components.badge('VERSION', 'v1.2.3'),
|
|
121
121
|
components.badge('BUILD', 'passing'),
|
|
122
122
|
components.badge('LICENSE', 'Apache 2.0'));
|
|
123
123
|
console.log();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ansimax",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes \u2014 all in TypeScript.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|