@autumnsgrove/gossamer 0.1.1 → 0.2.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 (51) hide show
  1. package/LICENSE +21 -0
  2. package/dist/animation.js +165 -0
  3. package/dist/animation.test.js +204 -0
  4. package/dist/characters.js +176 -0
  5. package/dist/characters.test.js +115 -0
  6. package/dist/colors.js +199 -0
  7. package/dist/index.js +79 -1850
  8. package/dist/index.test.js +92 -0
  9. package/dist/patterns.js +539 -0
  10. package/dist/patterns.test.js +223 -0
  11. package/dist/renderer.js +362 -0
  12. package/dist/svelte/GossamerBorder.svelte.d.ts +56 -1
  13. package/dist/svelte/GossamerBorder.svelte.d.ts.map +1 -0
  14. package/dist/svelte/GossamerClouds.svelte.d.ts +31 -1
  15. package/dist/svelte/GossamerClouds.svelte.d.ts.map +1 -0
  16. package/dist/svelte/GossamerImage.svelte.d.ts +28 -1
  17. package/dist/svelte/GossamerImage.svelte.d.ts.map +1 -0
  18. package/dist/svelte/GossamerOverlay.svelte.d.ts +32 -1
  19. package/dist/svelte/GossamerOverlay.svelte.d.ts.map +1 -0
  20. package/dist/svelte/GossamerText.svelte.d.ts +29 -1
  21. package/dist/svelte/GossamerText.svelte.d.ts.map +1 -0
  22. package/dist/svelte/index.js +31 -3646
  23. package/dist/svelte/presets.d.ts +4 -2
  24. package/dist/svelte/presets.js +161 -0
  25. package/dist/utils/canvas.js +139 -0
  26. package/dist/utils/image.js +195 -0
  27. package/dist/utils/performance.js +205 -0
  28. package/package.json +18 -22
  29. package/dist/index.js.map +0 -1
  30. package/dist/style.css +0 -124
  31. package/dist/svelte/index.js.map +0 -1
  32. package/src/animation.test.ts +0 -254
  33. package/src/animation.ts +0 -243
  34. package/src/characters.test.ts +0 -148
  35. package/src/characters.ts +0 -219
  36. package/src/colors.ts +0 -234
  37. package/src/index.test.ts +0 -115
  38. package/src/index.ts +0 -234
  39. package/src/patterns.test.ts +0 -273
  40. package/src/patterns.ts +0 -760
  41. package/src/renderer.ts +0 -470
  42. package/src/svelte/index.ts +0 -75
  43. package/src/svelte/presets.ts +0 -174
  44. package/src/utils/canvas.ts +0 -210
  45. package/src/utils/image.ts +0 -275
  46. package/src/utils/performance.ts +0 -282
  47. /package/{src → dist}/svelte/GossamerBorder.svelte +0 -0
  48. /package/{src → dist}/svelte/GossamerClouds.svelte +0 -0
  49. /package/{src → dist}/svelte/GossamerImage.svelte +0 -0
  50. /package/{src → dist}/svelte/GossamerOverlay.svelte +0 -0
  51. /package/{src → dist}/svelte/GossamerText.svelte +0 -0
package/dist/colors.js ADDED
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Gossamer Color Palettes
3
+ *
4
+ * Grove-themed color palettes for ASCII effects.
5
+ * Designed to complement Glass UI components.
6
+ */
7
+ /**
8
+ * Grove Green palette - Primary brand colors
9
+ */
10
+ export const GROVE_GREEN = {
11
+ 50: { hex: '#f0fdf4', name: 'Grove Green 50', glassOpacity: 0.3 },
12
+ 100: { hex: '#dcfce7', name: 'Grove Green 100', glassOpacity: 0.25 },
13
+ 200: { hex: '#bbf7d0', name: 'Grove Green 200', glassOpacity: 0.2 },
14
+ 300: { hex: '#86efac', name: 'Grove Green 300', glassOpacity: 0.18 },
15
+ 400: { hex: '#4ade80', name: 'Grove Green 400', glassOpacity: 0.15 },
16
+ 500: { hex: '#22c55e', name: 'Grove Green 500', glassOpacity: 0.12 },
17
+ 600: { hex: '#16a34a', name: 'Grove Green 600', glassOpacity: 0.1 },
18
+ 700: { hex: '#15803d', name: 'Grove Green 700', glassOpacity: 0.1 },
19
+ 800: { hex: '#166534', name: 'Grove Green 800', glassOpacity: 0.08 },
20
+ 900: { hex: '#14532d', name: 'Grove Green 900', glassOpacity: 0.08 },
21
+ };
22
+ /**
23
+ * Cream palette - Light/warm backgrounds
24
+ */
25
+ export const CREAM = {
26
+ 50: { hex: '#fefdfb', name: 'Cream 50', glassOpacity: 0.4 },
27
+ 100: { hex: '#fdfcf8', name: 'Cream 100', glassOpacity: 0.35 },
28
+ 200: { hex: '#faf8f3', name: 'Cream 200', glassOpacity: 0.3 },
29
+ 300: { hex: '#f5f2ea', name: 'Cream 300', glassOpacity: 0.25 },
30
+ 400: { hex: '#ede9de', name: 'Cream 400', glassOpacity: 0.2 },
31
+ 500: { hex: '#e2ddd0', name: 'Cream 500', glassOpacity: 0.18 },
32
+ 600: { hex: '#d4cec0', name: 'Cream 600', glassOpacity: 0.15 },
33
+ 700: { hex: '#c4bdb0', name: 'Cream 700', glassOpacity: 0.12 },
34
+ 800: { hex: '#b0a99c', name: 'Cream 800', glassOpacity: 0.1 },
35
+ 900: { hex: '#9a9387', name: 'Cream 900', glassOpacity: 0.08 },
36
+ };
37
+ /**
38
+ * Bark palette - Dark/earth tones
39
+ */
40
+ export const BARK = {
41
+ 50: { hex: '#faf7f5', name: 'Bark 50', glassOpacity: 0.3 },
42
+ 100: { hex: '#f0ebe6', name: 'Bark 100', glassOpacity: 0.25 },
43
+ 200: { hex: '#e0d5cc', name: 'Bark 200', glassOpacity: 0.2 },
44
+ 300: { hex: '#ccb59c', name: 'Bark 300', glassOpacity: 0.18 },
45
+ 400: { hex: '#b89a7a', name: 'Bark 400', glassOpacity: 0.15 },
46
+ 500: { hex: '#a57c5a', name: 'Bark 500', glassOpacity: 0.12 },
47
+ 600: { hex: '#8a6344', name: 'Bark 600', glassOpacity: 0.1 },
48
+ 700: { hex: '#6f4d39', name: 'Bark 700', glassOpacity: 0.1 },
49
+ 800: { hex: '#553a2a', name: 'Bark 800', glassOpacity: 0.08 },
50
+ 900: { hex: '#3d2914', name: 'Bark 900', glassOpacity: 0.06 },
51
+ };
52
+ /**
53
+ * Status colors
54
+ */
55
+ export const STATUS = {
56
+ success: { hex: '#22c55e', name: 'Success', glassOpacity: 0.12 },
57
+ warning: { hex: '#f59e0b', name: 'Warning', glassOpacity: 0.12 },
58
+ error: { hex: '#dc2626', name: 'Error', glassOpacity: 0.1 },
59
+ info: { hex: '#0ea5e9', name: 'Info', glassOpacity: 0.12 },
60
+ };
61
+ /**
62
+ * Combined Grove color schemes for easy access
63
+ */
64
+ export const GROVE_COLORS = {
65
+ // Greens
66
+ grove: GROVE_GREEN[500].hex,
67
+ 'grove-light': GROVE_GREEN[300].hex,
68
+ 'grove-dark': GROVE_GREEN[700].hex,
69
+ 'grove-muted': GROVE_GREEN[400].hex,
70
+ // Creams
71
+ cream: CREAM[50].hex,
72
+ 'cream-warm': CREAM[200].hex,
73
+ 'cream-deep': CREAM[500].hex,
74
+ // Barks
75
+ bark: BARK[900].hex,
76
+ 'bark-light': BARK[500].hex,
77
+ 'bark-medium': BARK[700].hex,
78
+ // Utility
79
+ white: '#ffffff',
80
+ black: '#000000',
81
+ transparent: 'transparent',
82
+ };
83
+ /**
84
+ * Glass-optimized color schemes
85
+ * Pre-configured for use with Glass components
86
+ */
87
+ export const GLASS_SCHEMES = {
88
+ // Light mode schemes (on light backgrounds)
89
+ 'grove-mist': {
90
+ color: GROVE_GREEN[500].hex,
91
+ background: 'transparent',
92
+ opacity: 0.12,
93
+ description: 'Subtle green mist for light glass',
94
+ },
95
+ 'cream-haze': {
96
+ color: CREAM[600].hex,
97
+ background: 'transparent',
98
+ opacity: 0.15,
99
+ description: 'Warm cream haze for cozy glass',
100
+ },
101
+ 'bark-shadow': {
102
+ color: BARK[700].hex,
103
+ background: 'transparent',
104
+ opacity: 0.08,
105
+ description: 'Soft earth shadow for depth',
106
+ },
107
+ // Dark mode schemes (on dark backgrounds)
108
+ 'grove-glow': {
109
+ color: GROVE_GREEN[400].hex,
110
+ background: '#1a1915',
111
+ opacity: 0.15,
112
+ description: 'Glowing green for dark glass',
113
+ },
114
+ 'cream-dust': {
115
+ color: CREAM[300].hex,
116
+ background: '#1a1915',
117
+ opacity: 0.1,
118
+ description: 'Dusty cream particles in dark',
119
+ },
120
+ 'moonlight': {
121
+ color: '#e2e8f0',
122
+ background: '#1a1915',
123
+ opacity: 0.08,
124
+ description: 'Cool moonlight glow',
125
+ },
126
+ // Accent schemes
127
+ 'spring-fresh': {
128
+ color: GROVE_GREEN[300].hex,
129
+ background: 'transparent',
130
+ opacity: 0.18,
131
+ description: 'Fresh spring green overlay',
132
+ },
133
+ 'autumn-warm': {
134
+ color: '#d97706',
135
+ background: 'transparent',
136
+ opacity: 0.1,
137
+ description: 'Warm autumn amber tones',
138
+ },
139
+ 'winter-frost': {
140
+ color: '#93c5fd',
141
+ background: 'transparent',
142
+ opacity: 0.12,
143
+ description: 'Cool frost blue overlay',
144
+ },
145
+ };
146
+ /**
147
+ * Get a Grove color by name
148
+ */
149
+ export function getGroveColor(name) {
150
+ if (name in GROVE_COLORS) {
151
+ return GROVE_COLORS[name];
152
+ }
153
+ // If it's already a hex color, return it
154
+ if (name.startsWith('#')) {
155
+ return name;
156
+ }
157
+ // Default to grove green
158
+ return GROVE_COLORS.grove;
159
+ }
160
+ /**
161
+ * Get a glass scheme by name
162
+ */
163
+ export function getGlassScheme(name) {
164
+ if (name in GLASS_SCHEMES) {
165
+ const scheme = GLASS_SCHEMES[name];
166
+ return {
167
+ color: scheme.color,
168
+ background: scheme.background,
169
+ opacity: scheme.opacity,
170
+ };
171
+ }
172
+ // Default to grove-mist
173
+ return {
174
+ color: GLASS_SCHEMES['grove-mist'].color,
175
+ background: GLASS_SCHEMES['grove-mist'].background,
176
+ opacity: GLASS_SCHEMES['grove-mist'].opacity,
177
+ };
178
+ }
179
+ /**
180
+ * List all Grove color names
181
+ */
182
+ export function getGroveColorNames() {
183
+ return Object.keys(GROVE_COLORS);
184
+ }
185
+ /**
186
+ * List all glass scheme names
187
+ */
188
+ export function getGlassSchemeNames() {
189
+ return Object.keys(GLASS_SCHEMES);
190
+ }
191
+ /**
192
+ * Apply opacity to a hex color, returning rgba string
193
+ */
194
+ export function hexToRgba(hex, opacity) {
195
+ const r = parseInt(hex.slice(1, 3), 16);
196
+ const g = parseInt(hex.slice(3, 5), 16);
197
+ const b = parseInt(hex.slice(5, 7), 16);
198
+ return `rgba(${r}, ${g}, ${b}, ${opacity})`;
199
+ }