@autumnsgrove/gossamer 0.0.1 → 0.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.
- package/dist/animation.d.ts +80 -0
- package/dist/animation.d.ts.map +1 -0
- package/dist/characters.d.ts +49 -0
- package/dist/characters.d.ts.map +1 -0
- package/dist/index.d.ts +37 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1284 -2
- package/dist/index.js.map +1 -1
- package/dist/patterns.d.ts +100 -0
- package/dist/patterns.d.ts.map +1 -0
- package/dist/renderer.d.ts +113 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/style.css +124 -0
- package/dist/svelte/GossamerBorder.svelte.d.ts +1 -0
- package/dist/svelte/GossamerClouds.svelte.d.ts +1 -0
- package/dist/svelte/GossamerImage.svelte.d.ts +1 -0
- package/dist/svelte/GossamerOverlay.svelte.d.ts +1 -0
- package/dist/svelte/GossamerText.svelte.d.ts +1 -0
- package/dist/svelte/index.d.ts +20 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +3651 -0
- package/dist/svelte/index.js.map +1 -0
- package/dist/svelte/presets.d.ts +38 -0
- package/dist/svelte/presets.d.ts.map +1 -0
- package/dist/utils/canvas.d.ts +73 -0
- package/dist/utils/canvas.d.ts.map +1 -0
- package/dist/utils/image.d.ts +74 -0
- package/dist/utils/image.d.ts.map +1 -0
- package/dist/utils/performance.d.ts +86 -0
- package/dist/utils/performance.d.ts.map +1 -0
- package/package.json +23 -5
- package/src/animation.test.ts +254 -0
- package/src/animation.ts +243 -0
- package/src/characters.test.ts +148 -0
- package/src/characters.ts +164 -0
- package/src/index.test.ts +115 -0
- package/src/index.ts +133 -11
- package/src/patterns.test.ts +273 -0
- package/src/patterns.ts +316 -0
- package/src/renderer.ts +309 -0
- package/src/svelte/GossamerBorder.svelte +326 -0
- package/src/svelte/GossamerClouds.svelte +269 -0
- package/src/svelte/GossamerImage.svelte +266 -0
- package/src/svelte/GossamerOverlay.svelte +232 -0
- package/src/svelte/GossamerText.svelte +239 -0
- package/src/svelte/index.ts +75 -0
- package/src/svelte/presets.ts +174 -0
- package/src/utils/canvas.ts +210 -0
- package/src/utils/image.ts +275 -0
- package/src/utils/performance.ts +282 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gossamer Animation Utilities
|
|
3
|
+
*
|
|
4
|
+
* FPS limiting, animation loop management, and timing utilities.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Animation state for tracking loop execution
|
|
8
|
+
*/
|
|
9
|
+
export interface AnimationState {
|
|
10
|
+
/** Whether animation is currently running */
|
|
11
|
+
isRunning: boolean;
|
|
12
|
+
/** Current animation frame ID */
|
|
13
|
+
frameId: number | null;
|
|
14
|
+
/** Timestamp of last frame */
|
|
15
|
+
lastFrameTime: number;
|
|
16
|
+
/** Frame interval in ms (derived from FPS) */
|
|
17
|
+
frameInterval: number;
|
|
18
|
+
/** Total elapsed time in ms */
|
|
19
|
+
elapsedTime: number;
|
|
20
|
+
/** Current frame count */
|
|
21
|
+
frameCount: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Options for creating an animation loop
|
|
25
|
+
*/
|
|
26
|
+
export interface AnimationOptions {
|
|
27
|
+
/** Target frames per second (default: 30) */
|
|
28
|
+
fps?: number;
|
|
29
|
+
/** Callback when animation starts */
|
|
30
|
+
onStart?: () => void;
|
|
31
|
+
/** Callback when animation stops */
|
|
32
|
+
onStop?: () => void;
|
|
33
|
+
/** Callback for each frame - return false to stop */
|
|
34
|
+
onFrame: (time: number, deltaTime: number, frameCount: number) => boolean | void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a managed animation loop with FPS limiting
|
|
38
|
+
*/
|
|
39
|
+
export declare function createAnimationLoop(options: AnimationOptions): {
|
|
40
|
+
start: () => void;
|
|
41
|
+
stop: () => void;
|
|
42
|
+
pause: () => void;
|
|
43
|
+
resume: () => void;
|
|
44
|
+
getState: () => AnimationState;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Simple throttle function for limiting function execution
|
|
48
|
+
*/
|
|
49
|
+
export declare function throttle<T extends (...args: unknown[]) => unknown>(fn: T, limit: number): (...args: Parameters<T>) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Debounce function for delaying execution until activity stops
|
|
52
|
+
*/
|
|
53
|
+
export declare function debounce<T extends (...args: unknown[]) => unknown>(fn: T, delay: number): (...args: Parameters<T>) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Calculate actual FPS from frame times
|
|
56
|
+
*/
|
|
57
|
+
export declare function calculateFPS(frameTimes: number[], sampleSize?: number): number;
|
|
58
|
+
/**
|
|
59
|
+
* Easing functions for smooth animations
|
|
60
|
+
*/
|
|
61
|
+
export declare const easings: {
|
|
62
|
+
/** Linear - no easing */
|
|
63
|
+
linear: (t: number) => number;
|
|
64
|
+
/** Ease in - slow start */
|
|
65
|
+
easeIn: (t: number) => number;
|
|
66
|
+
/** Ease out - slow end */
|
|
67
|
+
easeOut: (t: number) => number;
|
|
68
|
+
/** Ease in/out - slow start and end */
|
|
69
|
+
easeInOut: (t: number) => number;
|
|
70
|
+
/** Sine ease in */
|
|
71
|
+
sineIn: (t: number) => number;
|
|
72
|
+
/** Sine ease out */
|
|
73
|
+
sineOut: (t: number) => number;
|
|
74
|
+
/** Sine ease in/out */
|
|
75
|
+
sineInOut: (t: number) => number;
|
|
76
|
+
/** Bounce at end */
|
|
77
|
+
bounceOut: (t: number) => number;
|
|
78
|
+
};
|
|
79
|
+
export type EasingFunction = (t: number) => number;
|
|
80
|
+
//# sourceMappingURL=animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../src/animation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,qDAAqD;IACrD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;CAClF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG;IAC9D,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,cAAc,CAAC;CAChC,CAyFA;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAChE,EAAE,EAAE,CAAC,EACL,KAAK,EAAE,MAAM,GACZ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAkBlC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAChE,EAAE,EAAE,CAAC,EACL,KAAK,EAAE,MAAM,GACZ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAalC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,GAAE,MAAW,GAAG,MAAM,CAUlF;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB,yBAAyB;gBACb,MAAM,KAAG,MAAM;IAE3B,2BAA2B;gBACf,MAAM,KAAG,MAAM;IAE3B,0BAA0B;iBACb,MAAM,KAAG,MAAM;IAE5B,uCAAuC;mBACxB,MAAM,KAAG,MAAM;IAE9B,mBAAmB;gBACP,MAAM,KAAG,MAAM;IAE3B,oBAAoB;iBACP,MAAM,KAAG,MAAM;IAE5B,uBAAuB;mBACR,MAAM,KAAG,MAAM;IAE9B,oBAAoB;mBACL,MAAM,KAAG,MAAM;CAc/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gossamer Character Sets
|
|
3
|
+
*
|
|
4
|
+
* Predefined character sets for ASCII rendering, ordered from light to dark.
|
|
5
|
+
* Character density determines which character represents each brightness level.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Character set configuration
|
|
9
|
+
*/
|
|
10
|
+
export interface CharacterSet {
|
|
11
|
+
/** Unique identifier for the character set */
|
|
12
|
+
name: string;
|
|
13
|
+
/** Description of the set's aesthetic */
|
|
14
|
+
description: string;
|
|
15
|
+
/** Characters ordered from lightest (space) to darkest */
|
|
16
|
+
characters: string;
|
|
17
|
+
/** Recommended use cases */
|
|
18
|
+
bestFor: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Standard character sets for ASCII rendering
|
|
22
|
+
*/
|
|
23
|
+
export declare const CHARACTER_SETS: Record<string, CharacterSet>;
|
|
24
|
+
/**
|
|
25
|
+
* Get a character set by name
|
|
26
|
+
*/
|
|
27
|
+
export declare function getCharacterSet(name: string): CharacterSet | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Get just the characters string from a named set
|
|
30
|
+
*/
|
|
31
|
+
export declare function getCharacters(name: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* List all available character set names
|
|
34
|
+
*/
|
|
35
|
+
export declare function getCharacterSetNames(): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Create a custom character set
|
|
38
|
+
*/
|
|
39
|
+
export declare function createCharacterSet(name: string, characters: string, description?: string, bestFor?: string[]): CharacterSet;
|
|
40
|
+
/**
|
|
41
|
+
* Validate that a character string is suitable for ASCII rendering
|
|
42
|
+
* (should start with space and have at least 2 characters)
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateCharacterSet(characters: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Reverse a character set (for inverted brightness mapping)
|
|
47
|
+
*/
|
|
48
|
+
export declare function invertCharacters(characters: string): string;
|
|
49
|
+
//# sourceMappingURL=characters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"characters.d.ts","sourceRoot":"","sources":["../src/characters.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAoFvD,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,MAAW,EACxB,OAAO,GAAE,MAAM,EAAO,GACrB,YAAY,CAOd;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAIhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,27 @@ export interface GossamerConfig {
|
|
|
26
26
|
/** Target FPS for animation */
|
|
27
27
|
fps?: number;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Preset configuration for effects
|
|
31
|
+
*/
|
|
32
|
+
export interface PresetConfig {
|
|
33
|
+
/** Preset display name */
|
|
34
|
+
name: string;
|
|
35
|
+
/** Preset description */
|
|
36
|
+
description: string;
|
|
37
|
+
/** Character set */
|
|
38
|
+
characters: string;
|
|
39
|
+
/** Pattern type */
|
|
40
|
+
pattern: 'perlin' | 'waves' | 'static' | 'ripple' | 'fbm';
|
|
41
|
+
/** Pattern frequency */
|
|
42
|
+
frequency: number;
|
|
43
|
+
/** Pattern amplitude */
|
|
44
|
+
amplitude: number;
|
|
45
|
+
/** Animation speed */
|
|
46
|
+
speed: number;
|
|
47
|
+
/** Default opacity */
|
|
48
|
+
opacity: number;
|
|
49
|
+
}
|
|
29
50
|
/**
|
|
30
51
|
* Default character set ordered from light to dark
|
|
31
52
|
*/
|
|
@@ -43,17 +64,22 @@ export declare function calculateBrightness(r: number, g: number, b: number): nu
|
|
|
43
64
|
* Map a brightness value (0-255) to an ASCII character
|
|
44
65
|
*/
|
|
45
66
|
export declare function brightnessToChar(brightness: number, characters?: string): string;
|
|
67
|
+
export { GossamerRenderer } from './renderer';
|
|
68
|
+
export type { RenderConfig } from './renderer';
|
|
69
|
+
export { perlinNoise2D, fbmNoise, wavePattern, ripplePattern, staticNoise, seededNoise2D, generateBrightnessGrid, gridToImageData, DEFAULT_PATTERN_CONFIG, } from './patterns';
|
|
70
|
+
export type { PatternConfig, PatternType } from './patterns';
|
|
71
|
+
export { CHARACTER_SETS, getCharacterSet, getCharacters, getCharacterSetNames, createCharacterSet, validateCharacterSet, invertCharacters, } from './characters';
|
|
72
|
+
export type { CharacterSet } from './characters';
|
|
73
|
+
export { createAnimationLoop, throttle, debounce, calculateFPS, easings, } from './animation';
|
|
74
|
+
export type { AnimationState, AnimationOptions, EasingFunction } from './animation';
|
|
75
|
+
export { createCanvas, getDevicePixelRatio, resizeCanvasToContainer, createOffscreenCanvas, clearCanvas, getImageData, optimizeContext, setupTextRendering, measureTextWidth, calculateCellSize, setBlendMode, } from './utils/canvas';
|
|
76
|
+
export type { CanvasOptions } from './utils/canvas';
|
|
77
|
+
export { loadImage, loadAndScaleImage, imageToPixelData, extractBrightness, sampleImageCells, rgbToHex, hexToRgb, adjustBrightness, adjustContrast, invertColors, toGrayscale, } from './utils/image';
|
|
78
|
+
export type { ImageLoadOptions } from './utils/image';
|
|
79
|
+
export { createVisibilityObserver, createResizeObserver, prefersReducedMotion, onReducedMotionChange, isLowPowerMode, getRecommendedFPS, createFPSCounter, requestIdleCallback, cancelIdleCallback, isBrowser, isCanvasSupported, isOffscreenCanvasSupported, } from './utils/performance';
|
|
80
|
+
export type { VisibilityCallback, PerformanceMetrics } from './utils/performance';
|
|
46
81
|
/**
|
|
47
|
-
* Gossamer
|
|
48
|
-
*
|
|
49
|
-
* Full implementation coming soon. This package will provide:
|
|
50
|
-
* - 2D Canvas ASCII rendering
|
|
51
|
-
* - Ambient pattern generation
|
|
52
|
-
* - Image-to-ASCII conversion
|
|
53
|
-
* - Animation loops
|
|
54
|
-
* - Framework adapters (Svelte, React, Vue)
|
|
55
|
-
*
|
|
56
|
-
* @see https://github.com/AutumnsGrove/Gossamer
|
|
82
|
+
* Gossamer version
|
|
57
83
|
*/
|
|
58
|
-
export declare const VERSION = "0.0
|
|
84
|
+
export declare const VERSION = "0.1.0";
|
|
59
85
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|