@kya-os/cli 1.0.0-beta.9 → 1.1.0

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.
Files changed (78) hide show
  1. package/README.md +7 -2
  2. package/dist/commands/init.d.ts +3 -0
  3. package/dist/commands/init.d.ts.map +1 -1
  4. package/dist/commands/init.js +60 -15
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/components/agent-card.js +2 -2
  7. package/dist/components/agent-card.js.map +1 -1
  8. package/dist/components/agent-table.js +19 -19
  9. package/dist/components/agent-table.js.map +1 -1
  10. package/dist/components/welcome.js +1 -1
  11. package/dist/effects/cli-integration.js +8 -8
  12. package/dist/effects/cli-integration.js.map +1 -1
  13. package/dist/effects/config.d.ts +10 -86
  14. package/dist/effects/config.d.ts.map +1 -1
  15. package/dist/effects/config.js +18 -201
  16. package/dist/effects/config.js.map +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/utils/platform-detector.js +3 -3
  19. package/dist/utils/platform-detector.js.map +1 -1
  20. package/dist/utils/screen-manager.js +5 -1
  21. package/dist/utils/screen-manager.js.map +1 -1
  22. package/dist/utils/validation.d.ts +9 -0
  23. package/dist/utils/validation.d.ts.map +1 -1
  24. package/dist/utils/validation.js +3 -0
  25. package/dist/utils/validation.js.map +1 -1
  26. package/package.json +4 -3
  27. package/dist/effects/animation-engine.d.ts +0 -173
  28. package/dist/effects/animation-engine.d.ts.map +0 -1
  29. package/dist/effects/animation-engine.js +0 -254
  30. package/dist/effects/animation-engine.js.map +0 -1
  31. package/dist/effects/effect-runner.d.ts +0 -69
  32. package/dist/effects/effect-runner.d.ts.map +0 -1
  33. package/dist/effects/effect-runner.js +0 -255
  34. package/dist/effects/effect-runner.js.map +0 -1
  35. package/dist/effects/gradient.d.ts +0 -131
  36. package/dist/effects/gradient.d.ts.map +0 -1
  37. package/dist/effects/gradient.js +0 -236
  38. package/dist/effects/gradient.js.map +0 -1
  39. package/dist/effects/implementations/beams.d.ts +0 -80
  40. package/dist/effects/implementations/beams.d.ts.map +0 -1
  41. package/dist/effects/implementations/beams.js +0 -221
  42. package/dist/effects/implementations/beams.js.map +0 -1
  43. package/dist/effects/implementations/blackhole.d.ts +0 -98
  44. package/dist/effects/implementations/blackhole.d.ts.map +0 -1
  45. package/dist/effects/implementations/blackhole.js +0 -421
  46. package/dist/effects/implementations/blackhole.js.map +0 -1
  47. package/dist/effects/implementations/burn.d.ts +0 -74
  48. package/dist/effects/implementations/burn.d.ts.map +0 -1
  49. package/dist/effects/implementations/burn.js +0 -234
  50. package/dist/effects/implementations/burn.js.map +0 -1
  51. package/dist/effects/implementations/decrypt.d.ts +0 -115
  52. package/dist/effects/implementations/decrypt.d.ts.map +0 -1
  53. package/dist/effects/implementations/decrypt.js +0 -394
  54. package/dist/effects/implementations/decrypt.js.map +0 -1
  55. package/dist/effects/implementations/waves.d.ts +0 -78
  56. package/dist/effects/implementations/waves.d.ts.map +0 -1
  57. package/dist/effects/implementations/waves.js +0 -278
  58. package/dist/effects/implementations/waves.js.map +0 -1
  59. package/dist/effects/index.d.ts +0 -34
  60. package/dist/effects/index.d.ts.map +0 -1
  61. package/dist/effects/index.js +0 -114
  62. package/dist/effects/index.js.map +0 -1
  63. package/dist/effects/motion-engine.d.ts +0 -168
  64. package/dist/effects/motion-engine.d.ts.map +0 -1
  65. package/dist/effects/motion-engine.js +0 -353
  66. package/dist/effects/motion-engine.js.map +0 -1
  67. package/dist/effects/safe-executor.d.ts +0 -55
  68. package/dist/effects/safe-executor.d.ts.map +0 -1
  69. package/dist/effects/safe-executor.js +0 -210
  70. package/dist/effects/safe-executor.js.map +0 -1
  71. package/dist/effects/types.d.ts +0 -199
  72. package/dist/effects/types.d.ts.map +0 -1
  73. package/dist/effects/types.js +0 -80
  74. package/dist/effects/types.js.map +0 -1
  75. package/dist/effects/utils.d.ts +0 -104
  76. package/dist/effects/utils.d.ts.map +0 -1
  77. package/dist/effects/utils.js +0 -280
  78. package/dist/effects/utils.js.map +0 -1
@@ -1,255 +0,0 @@
1
- /**
2
- * Effect Runner
3
- * Orchestrates terminal effects with proper management
4
- */
5
- import { ANSI, getTerminalDimensions, calculateFrameDelay } from "./utils.js";
6
- import { getConfig } from "./config.js";
7
- import * as readline from "readline";
8
- import { stdout } from "process";
9
- /**
10
- * Effect runner for executing terminal effects
11
- */
12
- export class EffectRunner {
13
- constructor() {
14
- this.isRunning = false;
15
- this.currentEffect = null;
16
- this.animationHandle = null;
17
- this.terminalState = {
18
- cursorHidden: false,
19
- originalDimensions: getTerminalDimensions(),
20
- cleanupHandlers: [],
21
- };
22
- }
23
- /**
24
- * Run an effect
25
- */
26
- async run(options) {
27
- if (this.isRunning) {
28
- throw new Error("Another effect is already running");
29
- }
30
- const config = await getConfig();
31
- const outputStream = options.outputStream || stdout;
32
- // Check if effects are enabled or if terminal doesn't support effects
33
- if (!config.enabled || !this.supportsEffects(outputStream)) {
34
- // Use fallback
35
- const fallbackLines = options.effect.renderFallback();
36
- outputStream.write(fallbackLines.join("\n") + "\n");
37
- options.onComplete?.();
38
- return;
39
- }
40
- try {
41
- this.isRunning = true;
42
- this.currentEffect = options.effect;
43
- // Setup terminal
44
- await this.setupTerminal(outputStream, options.persistent);
45
- // Initialize effect
46
- const effectConfig = {
47
- frameRate: 30 * config.speedMultiplier,
48
- useXTermColors: false,
49
- noColor: false,
50
- canvas: this.terminalState.originalDimensions,
51
- ...options.config,
52
- };
53
- options.effect.initialize(options.text, effectConfig);
54
- // Execute with safety wrapper
55
- // Since we're handling the animation loop ourselves, we bypass the executor's execute method
56
- // and use the animation loop directly with try-catch for safety
57
- try {
58
- await this.runAnimation(options.effect, outputStream, effectConfig.frameRate, options.skipExitPrompt, options.persistent);
59
- }
60
- catch (animationError) {
61
- // If animation fails, try fallback
62
- const fallbackLines = options.effect.renderFallback();
63
- outputStream.write(fallbackLines.join("\n") + "\n");
64
- throw animationError;
65
- }
66
- // Clean up
67
- await this.cleanup(outputStream, options.persistent);
68
- options.onComplete?.();
69
- }
70
- catch (error) {
71
- await this.cleanup(outputStream, options.persistent);
72
- const err = error instanceof Error ? error : new Error(String(error));
73
- options.onError?.(err);
74
- throw err;
75
- }
76
- finally {
77
- this.isRunning = false;
78
- this.currentEffect = null;
79
- }
80
- }
81
- /**
82
- * Stop the currently running effect
83
- */
84
- async stop() {
85
- if (!this.isRunning || !this.currentEffect) {
86
- return;
87
- }
88
- // Cancel animation
89
- if (this.animationHandle) {
90
- clearTimeout(this.animationHandle);
91
- this.animationHandle = null;
92
- }
93
- // Clean up effect
94
- this.currentEffect.cleanup();
95
- await this.cleanup(stdout, false);
96
- this.isRunning = false;
97
- this.currentEffect = null;
98
- }
99
- /**
100
- * Check if terminal supports effects
101
- */
102
- supportsEffects(stream) {
103
- // Check if we have a TTY and basic terminal capabilities
104
- if (!stream.isTTY)
105
- return false;
106
- if (!process.env.TERM || process.env.TERM === 'dumb')
107
- return false;
108
- // Check for common CI environments that might not support effects well
109
- if (process.env.CI || process.env.GITHUB_ACTIONS)
110
- return false;
111
- return true;
112
- }
113
- /**
114
- * Setup terminal for effect rendering
115
- */
116
- async setupTerminal(stream, persistent) {
117
- // Only use alternate screen buffer if not in persistent mode
118
- if (!persistent) {
119
- // Enter alternate screen buffer (prevents scrolling)
120
- stream.write("\x1b[?1049h");
121
- }
122
- // Hide cursor
123
- stream.write(ANSI.cursor.hide);
124
- this.terminalState.cursorHidden = true;
125
- // Clear screen
126
- stream.write(ANSI.clear.screen);
127
- stream.write(ANSI.cursor.home);
128
- // Setup cleanup handlers
129
- const handleExit = () => {
130
- this.cleanup(stream, persistent).catch(() => { });
131
- };
132
- const handleResize = () => {
133
- this.terminalState.originalDimensions = getTerminalDimensions();
134
- };
135
- process.on("exit", handleExit);
136
- process.on("SIGINT", handleExit);
137
- process.on("SIGTERM", handleExit);
138
- process.stdout.on("resize", handleResize);
139
- this.terminalState.cleanupHandlers.push(() => process.off("exit", handleExit), () => process.off("SIGINT", handleExit), () => process.off("SIGTERM", handleExit), () => process.stdout.off("resize", handleResize));
140
- // Setup keyboard handling for cancellation
141
- if (stream === stdout) {
142
- readline.emitKeypressEvents(process.stdin);
143
- if (process.stdin.isTTY) {
144
- process.stdin.setRawMode(true);
145
- }
146
- const handleKeypress = async (_str, key) => {
147
- if (key && (key.name === "escape" || (key.ctrl && key.name === "c") || key.name === "x" || key.name === "q")) {
148
- await this.stop();
149
- // Ensure we exit alternate screen
150
- stream.write("\x1b[?1049l");
151
- process.exit(0);
152
- }
153
- };
154
- process.stdin.on("keypress", handleKeypress);
155
- this.terminalState.cleanupHandlers.push(() => process.stdin.off("keypress", handleKeypress));
156
- }
157
- }
158
- /**
159
- * Run the animation loop
160
- */
161
- async runAnimation(effect, stream, frameRate, skipExitPrompt, persistent) {
162
- const frameDelay = calculateFrameDelay(frameRate);
163
- while (!effect.isComplete()) {
164
- const startTime = Date.now();
165
- // Render frame
166
- const lines = await effect.render();
167
- // Clear screen and render
168
- stream.write(ANSI.cursor.home);
169
- stream.write(lines.join("\n"));
170
- stream.write(ANSI.clear.toEnd);
171
- // Calculate actual delay needed
172
- const renderTime = Date.now() - startTime;
173
- const delay = Math.max(0, frameDelay - renderTime);
174
- // Wait for next frame
175
- if (delay > 0) {
176
- await new Promise((resolve) => {
177
- this.animationHandle = setTimeout(resolve, delay);
178
- });
179
- }
180
- }
181
- // Only show exit prompt if not skipped and not in persistent mode
182
- if (!skipExitPrompt && !persistent) {
183
- // After animation completes, show exit message
184
- stream.write("\n\n");
185
- stream.write("\x1b[2m"); // Dim text
186
- stream.write("Press any key to exit...");
187
- stream.write("\x1b[0m"); // Reset
188
- stream.write("\n");
189
- // Wait for keypress - ensure we're in raw mode
190
- if (process.stdin.isTTY && !process.stdin.isRaw) {
191
- process.stdin.setRawMode(true);
192
- }
193
- await new Promise((resolve) => {
194
- const handleKeypress = (_str, _key) => {
195
- process.stdin.off("keypress", handleKeypress);
196
- resolve();
197
- };
198
- process.stdin.on("keypress", handleKeypress);
199
- });
200
- }
201
- else if (persistent) {
202
- // In persistent mode, render the final frame one more time to ensure it's visible
203
- const finalLines = await effect.render();
204
- stream.write(ANSI.cursor.home);
205
- stream.write(finalLines.join("\n"));
206
- stream.write(ANSI.clear.toEnd);
207
- stream.write("\n");
208
- }
209
- }
210
- /**
211
- * Clean up terminal state
212
- */
213
- async cleanup(stream, persistent) {
214
- // Clear animation handle
215
- if (this.animationHandle) {
216
- clearTimeout(this.animationHandle);
217
- this.animationHandle = null;
218
- }
219
- // Restore cursor
220
- if (this.terminalState.cursorHidden) {
221
- stream.write(ANSI.cursor.show);
222
- this.terminalState.cursorHidden = false;
223
- }
224
- // Reset terminal
225
- stream.write(ANSI.reset);
226
- // Only exit alternate screen buffer if not in persistent mode
227
- if (!persistent) {
228
- // Exit alternate screen buffer
229
- stream.write("\x1b[?1049l");
230
- }
231
- stream.write("\n");
232
- // Remove event handlers
233
- for (const handler of this.terminalState.cleanupHandlers) {
234
- handler();
235
- }
236
- this.terminalState.cleanupHandlers = [];
237
- // Restore stdin mode
238
- if (process.stdin.isTTY && stream === stdout) {
239
- process.stdin.setRawMode(false);
240
- }
241
- }
242
- /**
243
- * Check if an effect is currently running
244
- */
245
- isEffectRunning() {
246
- return this.isRunning;
247
- }
248
- /**
249
- * Get current effect info
250
- */
251
- getCurrentEffect() {
252
- return this.currentEffect;
253
- }
254
- }
255
- //# sourceMappingURL=effect-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"effect-runner.js","sourceRoot":"","sources":["../../src/effects/effect-runner.ts"],"names":[],"mappings":"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"}
@@ -1,131 +0,0 @@
1
- /**
2
- * Gradient System for Terminal Effects
3
- * Provides comprehensive gradient color mapping capabilities
4
- */
5
- import { Coordinate, TerminalDimensions } from "./types.js";
6
- /**
7
- * Gradient direction options
8
- */
9
- export declare enum GradientDirection {
10
- HORIZONTAL = "horizontal",
11
- VERTICAL = "vertical",
12
- DIAGONAL = "diagonal",
13
- RADIAL = "radial",
14
- DIAGONAL_REVERSE = "diagonal_reverse"
15
- }
16
- /**
17
- * Gradient configuration
18
- */
19
- export interface GradientConfig {
20
- /** Array of color stops */
21
- stops: string[];
22
- /** Number of steps between each stop */
23
- steps?: number;
24
- /** Direction of the gradient */
25
- direction?: GradientDirection;
26
- /** Easing function for color interpolation */
27
- easingFn?: (t: number) => number;
28
- }
29
- /**
30
- * Gradient class for creating color transitions
31
- */
32
- export declare class Gradient {
33
- private colorStops;
34
- private steps;
35
- private direction;
36
- private easingFn;
37
- private spectrum;
38
- constructor(config: GradientConfig);
39
- /**
40
- * Generate the full color spectrum
41
- */
42
- private generateSpectrum;
43
- /**
44
- * Interpolate between two colors
45
- */
46
- private interpolateColors;
47
- /**
48
- * Build coordinate-to-color mapping for a canvas area
49
- */
50
- buildCoordinateColorMapping(dimensions: TerminalDimensions, bounds?: {
51
- top?: number;
52
- bottom?: number;
53
- left?: number;
54
- right?: number;
55
- }): Map<string, string>;
56
- /**
57
- * Get color at a specific position based on gradient direction
58
- */
59
- private getColorAtPosition;
60
- /**
61
- * Get color for a specific coordinate
62
- */
63
- getColorForCoordinate(coord: Coordinate, dimensions: TerminalDimensions): string;
64
- /**
65
- * Get the generated color spectrum
66
- */
67
- getSpectrum(): string[];
68
- /**
69
- * Apply gradient to a string (character by character)
70
- */
71
- applyToString(text: string): Array<{
72
- char: string;
73
- color: string;
74
- }>;
75
- }
76
- /**
77
- * Predefined gradients
78
- */
79
- export declare const GRADIENTS: {
80
- FIRE: {
81
- stops: string[];
82
- steps: number;
83
- };
84
- OCEAN: {
85
- stops: string[];
86
- steps: number;
87
- };
88
- MATRIX: {
89
- stops: string[];
90
- steps: number;
91
- };
92
- SUNSET: {
93
- stops: string[];
94
- steps: number;
95
- };
96
- COOL: {
97
- stops: string[];
98
- steps: number;
99
- };
100
- MONOCHROME: {
101
- stops: string[];
102
- steps: number;
103
- };
104
- RAINBOW: {
105
- stops: string[];
106
- steps: number;
107
- };
108
- };
109
- /**
110
- * Easing functions for gradient interpolation
111
- */
112
- export declare const EASING: {
113
- linear: (t: number) => number;
114
- inQuad: (t: number) => number;
115
- outQuad: (t: number) => number;
116
- inOutQuad: (t: number) => number;
117
- inCubic: (t: number) => number;
118
- outCubic: (t: number) => number;
119
- inOutCubic: (t: number) => number;
120
- inExpo: (t: number) => number;
121
- outExpo: (t: number) => number;
122
- inOutExpo: (t: number) => number;
123
- inSine: (t: number) => number;
124
- outSine: (t: number) => number;
125
- inOutSine: (t: number) => number;
126
- };
127
- /**
128
- * Helper function to create a gradient from preset
129
- */
130
- export declare function createGradient(preset: keyof typeof GRADIENTS, direction?: GradientDirection, easingFn?: (t: number) => number): Gradient;
131
- //# sourceMappingURL=gradient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/effects/gradient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE5D;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,gBAAgB,qBAAqB;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,MAAM,EAAE,cAAc;IAQlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,2BAA2B,CACzB,UAAU,EAAE,kBAAkB,EAC9B,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAuBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,GAAG,MAAM;IAIhF;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAepE;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM;gBACL,MAAM;gBAEN,MAAM;iBACL,MAAM;mBACJ,MAAM;iBAER,MAAM;kBACL,MAAM;oBACJ,MAAM;gBAGV,MAAM;iBACL,MAAM;mBACJ,MAAM;gBAOT,MAAM;iBACL,MAAM;mBACJ,MAAM;CACtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,OAAO,SAAS,EAC9B,SAAS,CAAC,EAAE,iBAAiB,EAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAC/B,QAAQ,CAOV"}
@@ -1,236 +0,0 @@
1
- /**
2
- * Gradient System for Terminal Effects
3
- * Provides comprehensive gradient color mapping capabilities
4
- */
5
- /**
6
- * Gradient direction options
7
- */
8
- export var GradientDirection;
9
- (function (GradientDirection) {
10
- GradientDirection["HORIZONTAL"] = "horizontal";
11
- GradientDirection["VERTICAL"] = "vertical";
12
- GradientDirection["DIAGONAL"] = "diagonal";
13
- GradientDirection["RADIAL"] = "radial";
14
- GradientDirection["DIAGONAL_REVERSE"] = "diagonal_reverse";
15
- })(GradientDirection || (GradientDirection = {}));
16
- /**
17
- * Gradient class for creating color transitions
18
- */
19
- export class Gradient {
20
- constructor(config) {
21
- this.spectrum = [];
22
- this.colorStops = config.stops;
23
- this.steps = config.steps || 10;
24
- this.direction = config.direction || GradientDirection.VERTICAL;
25
- this.easingFn = config.easingFn || ((t) => t); // Linear by default
26
- this.generateSpectrum();
27
- }
28
- /**
29
- * Generate the full color spectrum
30
- */
31
- generateSpectrum() {
32
- this.spectrum = [];
33
- if (this.colorStops.length === 1) {
34
- // Single color - no gradient
35
- this.spectrum = [this.colorStops[0]];
36
- return;
37
- }
38
- // Generate colors between each pair of stops
39
- for (let i = 0; i < this.colorStops.length - 1; i++) {
40
- const startColor = this.colorStops[i];
41
- const endColor = this.colorStops[i + 1];
42
- const segmentColors = this.interpolateColors(startColor, endColor, this.steps);
43
- // Add all colors except the last (to avoid duplicates)
44
- if (i < this.colorStops.length - 2) {
45
- this.spectrum.push(...segmentColors.slice(0, -1));
46
- }
47
- else {
48
- // For the last segment, include all colors
49
- this.spectrum.push(...segmentColors);
50
- }
51
- }
52
- }
53
- /**
54
- * Interpolate between two colors
55
- */
56
- interpolateColors(color1, color2, steps) {
57
- const colors = [];
58
- const r1 = parseInt(color1.substring(0, 2), 16);
59
- const g1 = parseInt(color1.substring(2, 4), 16);
60
- const b1 = parseInt(color1.substring(4, 6), 16);
61
- const r2 = parseInt(color2.substring(0, 2), 16);
62
- const g2 = parseInt(color2.substring(2, 4), 16);
63
- const b2 = parseInt(color2.substring(4, 6), 16);
64
- for (let i = 0; i < steps; i++) {
65
- const t = i / (steps - 1);
66
- const easedT = this.easingFn(t);
67
- const r = Math.round(r1 + (r2 - r1) * easedT);
68
- const g = Math.round(g1 + (g2 - g1) * easedT);
69
- const b = Math.round(b1 + (b2 - b1) * easedT);
70
- const hex = [r, g, b]
71
- .map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
72
- .join("");
73
- colors.push(hex);
74
- }
75
- return colors;
76
- }
77
- /**
78
- * Build coordinate-to-color mapping for a canvas area
79
- */
80
- buildCoordinateColorMapping(dimensions, bounds) {
81
- const mapping = new Map();
82
- // Use provided bounds or default to full canvas
83
- const top = bounds?.top ?? 0;
84
- const bottom = bounds?.bottom ?? dimensions.height - 1;
85
- const left = bounds?.left ?? 0;
86
- const right = bounds?.right ?? dimensions.width - 1;
87
- const width = right - left + 1;
88
- const height = bottom - top + 1;
89
- for (let y = top; y <= bottom; y++) {
90
- for (let x = left; x <= right; x++) {
91
- const key = `${x},${y}`;
92
- const color = this.getColorAtPosition(x - left, y - top, width, height);
93
- mapping.set(key, color);
94
- }
95
- }
96
- return mapping;
97
- }
98
- /**
99
- * Get color at a specific position based on gradient direction
100
- */
101
- getColorAtPosition(x, y, width, height) {
102
- let factor = 0;
103
- switch (this.direction) {
104
- case GradientDirection.HORIZONTAL:
105
- factor = x / (width - 1);
106
- break;
107
- case GradientDirection.VERTICAL:
108
- factor = y / (height - 1);
109
- break;
110
- case GradientDirection.DIAGONAL:
111
- factor = (x + y) / (width + height - 2);
112
- break;
113
- case GradientDirection.DIAGONAL_REVERSE:
114
- factor = (x + (height - 1 - y)) / (width + height - 2);
115
- break;
116
- case GradientDirection.RADIAL:
117
- const centerX = width / 2;
118
- const centerY = height / 2;
119
- const maxDist = Math.sqrt(centerX * centerX + centerY * centerY);
120
- const dist = Math.sqrt(Math.pow(x - centerX, 2) + Math.pow(y - centerY, 2));
121
- factor = dist / maxDist;
122
- break;
123
- }
124
- // Clamp factor to [0, 1]
125
- factor = Math.max(0, Math.min(1, factor));
126
- // Get color from spectrum
127
- const index = Math.floor(factor * (this.spectrum.length - 1));
128
- return this.spectrum[index];
129
- }
130
- /**
131
- * Get color for a specific coordinate
132
- */
133
- getColorForCoordinate(coord, dimensions) {
134
- return this.getColorAtPosition(coord.x, coord.y, dimensions.width, dimensions.height);
135
- }
136
- /**
137
- * Get the generated color spectrum
138
- */
139
- getSpectrum() {
140
- return [...this.spectrum];
141
- }
142
- /**
143
- * Apply gradient to a string (character by character)
144
- */
145
- applyToString(text) {
146
- const result = [];
147
- const chars = [...text]; // Handle Unicode properly
148
- for (let i = 0; i < chars.length; i++) {
149
- const factor = i / (chars.length - 1);
150
- const colorIndex = Math.floor(factor * (this.spectrum.length - 1));
151
- result.push({
152
- char: chars[i],
153
- color: this.spectrum[colorIndex],
154
- });
155
- }
156
- return result;
157
- }
158
- }
159
- /**
160
- * Predefined gradients
161
- */
162
- export const GRADIENTS = {
163
- // Fire gradient (red to yellow)
164
- FIRE: {
165
- stops: ["ff0000", "ff4500", "ff8c00", "ffa500", "ffff00"],
166
- steps: 10,
167
- },
168
- // Ocean gradient (dark blue to cyan)
169
- OCEAN: {
170
- stops: ["000080", "0000ff", "0080ff", "00ffff"],
171
- steps: 12,
172
- },
173
- // Matrix gradient (dark green to bright green)
174
- MATRIX: {
175
- stops: ["003300", "006600", "009900", "00cc00", "00ff00"],
176
- steps: 8,
177
- },
178
- // Sunset gradient
179
- SUNSET: {
180
- stops: ["ff1493", "ff69b4", "ffa500", "ffff00", "fffacd"],
181
- steps: 15,
182
- },
183
- // Cool gradient (purple to cyan)
184
- COOL: {
185
- stops: ["8b008b", "9932cc", "6a0dad", "0000ff", "00ffff"],
186
- steps: 12,
187
- },
188
- // Monochrome gradient (black to white)
189
- MONOCHROME: {
190
- stops: ["000000", "404040", "808080", "c0c0c0", "ffffff"],
191
- steps: 10,
192
- },
193
- // Rainbow gradient
194
- RAINBOW: {
195
- stops: ["ff0000", "ff7f00", "ffff00", "00ff00", "0000ff", "4b0082", "9400d3"],
196
- steps: 8,
197
- },
198
- };
199
- /**
200
- * Easing functions for gradient interpolation
201
- */
202
- export const EASING = {
203
- linear: (t) => t,
204
- inQuad: (t) => t * t,
205
- outQuad: (t) => t * (2 - t),
206
- inOutQuad: (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),
207
- inCubic: (t) => t * t * t,
208
- outCubic: (t) => (--t) * t * t + 1,
209
- inOutCubic: (t) => t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,
210
- inExpo: (t) => (t === 0 ? 0 : Math.pow(2, 10 * t - 10)),
211
- outExpo: (t) => (t === 1 ? 1 : 1 - Math.pow(2, -10 * t)),
212
- inOutExpo: (t) => {
213
- if (t === 0)
214
- return 0;
215
- if (t === 1)
216
- return 1;
217
- if (t < 0.5)
218
- return Math.pow(2, 20 * t - 10) / 2;
219
- return (2 - Math.pow(2, -20 * t + 10)) / 2;
220
- },
221
- inSine: (t) => 1 - Math.cos((t * Math.PI) / 2),
222
- outSine: (t) => Math.sin((t * Math.PI) / 2),
223
- inOutSine: (t) => -(Math.cos(Math.PI * t) - 1) / 2,
224
- };
225
- /**
226
- * Helper function to create a gradient from preset
227
- */
228
- export function createGradient(preset, direction, easingFn) {
229
- const config = GRADIENTS[preset];
230
- return new Gradient({
231
- ...config,
232
- direction,
233
- easingFn,
234
- });
235
- }
236
- //# sourceMappingURL=gradient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gradient.js","sourceRoot":"","sources":["../../src/effects/gradient.ts"],"names":[],"mappings":"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"}