@vibes.diy/prompts 12.2.2 → 12.2.4

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 (65) hide show
  1. package/generation-variety.d.ts +17 -0
  2. package/generation-variety.js +80 -0
  3. package/generation-variety.js.map +1 -0
  4. package/index.d.ts +2 -0
  5. package/index.js +2 -0
  6. package/index.js.map +1 -1
  7. package/llms/backend.md +64 -6
  8. package/llms/fireproof.md +4 -4
  9. package/package.json +4 -4
  10. package/prompts.js +26 -43
  11. package/prompts.js.map +1 -1
  12. package/restyle.d.ts +155 -0
  13. package/restyle.js +254 -0
  14. package/restyle.js.map +1 -0
  15. package/settings.d.ts +2 -0
  16. package/style-prompts.d.ts +1 -1
  17. package/style-prompts.js +13 -6
  18. package/style-prompts.js.map +1 -1
  19. package/system-prompt.md +2 -2
  20. package/themes/colors/aether.yaml +2 -2
  21. package/themes/colors/archive.yaml +1 -1
  22. package/themes/colors/atelier.yaml +1 -1
  23. package/themes/colors/atlas.yaml +1 -1
  24. package/themes/colors/broadsheet.yaml +1 -1
  25. package/themes/colors/brutalist.yaml +8 -5
  26. package/themes/colors/capsule.yaml +1 -1
  27. package/themes/colors/carbon.yaml +1 -1
  28. package/themes/colors/chrono.yaml +1 -1
  29. package/themes/colors/computer-angel-heaven.yaml +1 -1
  30. package/themes/colors/console.yaml +1 -1
  31. package/themes/colors/default.yaml +1 -1
  32. package/themes/colors/desktop.yaml +1 -1
  33. package/themes/colors/edge.yaml +1 -1
  34. package/themes/colors/hearth.yaml +1 -1
  35. package/themes/colors/industrial.yaml +1 -1
  36. package/themes/colors/mesh.yaml +1 -1
  37. package/themes/colors/neomario.yaml +1 -1
  38. package/themes/colors/neon.yaml +1 -1
  39. package/themes/colors/orbit.yaml +1 -1
  40. package/themes/colors/rune.yaml +1 -1
  41. package/themes/colors/scrapbook.yaml +1 -1
  42. package/themes/colors/slab.yaml +1 -1
  43. package/themes/colors/specimen.yaml +1 -1
  44. package/themes/colors/winter-sports.yaml +1 -1
  45. package/themes/colors/zine.yaml +1 -1
  46. package/themes/colorsets-bundle.js +34 -31
  47. package/themes/colorsets-bundle.js.map +1 -1
  48. package/themes/colorsets.d.ts +3 -4
  49. package/themes/colorsets.js +25 -22
  50. package/themes/colorsets.js.map +1 -1
  51. package/themes/fonts.d.ts +9 -0
  52. package/themes/fonts.js +80 -0
  53. package/themes/fonts.js.map +1 -0
  54. package/themes/index.d.ts +5 -1
  55. package/themes/index.js +5 -1
  56. package/themes/index.js.map +1 -1
  57. package/themes/ornament-pad.d.ts +27 -0
  58. package/themes/ornament-pad.js +145 -0
  59. package/themes/ornament-pad.js.map +1 -0
  60. package/themes/palette-gen.d.ts +125 -0
  61. package/themes/palette-gen.js +473 -0
  62. package/themes/palette-gen.js.map +1 -0
  63. package/themes/style-presets.d.ts +11 -0
  64. package/themes/style-presets.js +79 -0
  65. package/themes/style-presets.js.map +1 -0
@@ -0,0 +1,473 @@
1
+ import { CANONICAL_TOKENS, cssVarName } from "./colorsets.js";
2
+ const clamp01 = (x) => (x < 0 ? 0 : x > 1 ? 1 : x);
3
+ function srgbToLinear(v) {
4
+ return v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
5
+ }
6
+ function linearToSrgb(v) {
7
+ return v <= 0.0031308 ? v * 12.92 : 1.055 * Math.pow(v, 1 / 2.4) - 0.055;
8
+ }
9
+ export function oklchToRgbUnclamped(o) {
10
+ const hr = (o.h * Math.PI) / 180;
11
+ const a = o.c * Math.cos(hr);
12
+ const b = o.c * Math.sin(hr);
13
+ const l_ = o.l + 0.3963377774 * a + 0.2158037573 * b;
14
+ const m_ = o.l - 0.1055613458 * a - 0.0638541728 * b;
15
+ const s_ = o.l - 0.0894841775 * a - 1.291485548 * b;
16
+ const l3 = l_ * l_ * l_;
17
+ const m3 = m_ * m_ * m_;
18
+ const s3 = s_ * s_ * s_;
19
+ return {
20
+ r: linearToSrgb(4.0767416621 * l3 - 3.3077115913 * m3 + 0.2309699292 * s3),
21
+ g: linearToSrgb(-1.2684380046 * l3 + 2.6097574011 * m3 - 0.3413193965 * s3),
22
+ b: linearToSrgb(-0.0041960863 * l3 - 0.7034186147 * m3 + 1.707614701 * s3),
23
+ a: o.a ?? 1,
24
+ };
25
+ }
26
+ export function toOklch(rgb) {
27
+ if (rgb === undefined)
28
+ return undefined;
29
+ const r = srgbToLinear(rgb.r);
30
+ const g = srgbToLinear(rgb.g);
31
+ const b = srgbToLinear(rgb.b);
32
+ const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);
33
+ const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);
34
+ const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);
35
+ const L = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
36
+ const A = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;
37
+ const B = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
38
+ const c = Math.hypot(A, B);
39
+ let h = (Math.atan2(B, A) * 180) / Math.PI;
40
+ if (h < 0)
41
+ h += 360;
42
+ return { l: L, c, h, a: rgb.a };
43
+ }
44
+ const IN_GAMUT_EPS = 1e-4;
45
+ function inGamut(rgb) {
46
+ return (rgb.r >= -IN_GAMUT_EPS &&
47
+ rgb.r <= 1 + IN_GAMUT_EPS &&
48
+ rgb.g >= -IN_GAMUT_EPS &&
49
+ rgb.g <= 1 + IN_GAMUT_EPS &&
50
+ rgb.b >= -IN_GAMUT_EPS &&
51
+ rgb.b <= 1 + IN_GAMUT_EPS);
52
+ }
53
+ export function gamutMap(o) {
54
+ if (inGamut(oklchToRgbUnclamped(o)))
55
+ return { ...o };
56
+ let lo = 0;
57
+ let hi = o.c;
58
+ for (let i = 0; i < 24; i++) {
59
+ const mid = (lo + hi) / 2;
60
+ if (inGamut(oklchToRgbUnclamped({ ...o, c: mid })))
61
+ lo = mid;
62
+ else
63
+ hi = mid;
64
+ }
65
+ return { l: o.l, c: lo, h: o.h };
66
+ }
67
+ const round = (x, places) => {
68
+ const f = Math.pow(10, places);
69
+ return Math.round(x * f) / f;
70
+ };
71
+ export function oklchCss(l, c, h) {
72
+ const m = gamutMap({ l: clamp01(l), c: Math.max(0, c), h: ((h % 360) + 360) % 360 });
73
+ return `oklch(${round(m.l, 3)} ${round(m.c, 4)} ${round(m.h, 1)})`;
74
+ }
75
+ const HEX_RE = /^#([0-9a-f]{3,8})$/i;
76
+ const RGB_RE = /^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,/]+([\d.%]+))?\s*\)$/i;
77
+ const OKLCH_RE = /^oklch\(\s*([\d.]+%?)\s+([\d.]+%?)\s+([\d.]+)(?:deg)?(?:\s*\/\s*([\d.%]+))?\s*\)$/i;
78
+ function parseAlpha(raw) {
79
+ if (raw === undefined)
80
+ return 1;
81
+ return raw.endsWith("%") ? clamp01(parseFloat(raw) / 100) : clamp01(parseFloat(raw));
82
+ }
83
+ export function parseCssColor(css) {
84
+ if (css === undefined || css === "")
85
+ return undefined;
86
+ const s = css.trim();
87
+ const hex = HEX_RE.exec(s);
88
+ if (hex !== null) {
89
+ let h = hex[1];
90
+ if (h.length === 3 || h.length === 4) {
91
+ h = h
92
+ .split("")
93
+ .map((ch) => ch + ch)
94
+ .join("");
95
+ }
96
+ if (h.length !== 6 && h.length !== 8)
97
+ return undefined;
98
+ const n = (i) => parseInt(h.slice(i, i + 2), 16) / 255;
99
+ return { r: n(0), g: n(2), b: n(4), a: h.length === 8 ? n(6) : 1 };
100
+ }
101
+ const rgb = RGB_RE.exec(s);
102
+ if (rgb !== null) {
103
+ return {
104
+ r: clamp01(parseFloat(rgb[1]) / 255),
105
+ g: clamp01(parseFloat(rgb[2]) / 255),
106
+ b: clamp01(parseFloat(rgb[3]) / 255),
107
+ a: parseAlpha(rgb[4]),
108
+ };
109
+ }
110
+ const ok = OKLCH_RE.exec(s);
111
+ if (ok !== null) {
112
+ const l = ok[1].endsWith("%") ? parseFloat(ok[1]) / 100 : parseFloat(ok[1]);
113
+ const c = ok[2].endsWith("%") ? (parseFloat(ok[2]) / 100) * 0.4 : parseFloat(ok[2]);
114
+ const raw = oklchToRgbUnclamped({ l, c, h: parseFloat(ok[3]) });
115
+ return { r: clamp01(raw.r), g: clamp01(raw.g), b: clamp01(raw.b), a: parseAlpha(ok[4]) };
116
+ }
117
+ return undefined;
118
+ }
119
+ const VAR_RE = /^var\(\s*--([a-z0-9-]+)\s*\)$/i;
120
+ const MIX_RE = /^color-mix\(\s*in\s+srgb\s*,\s*(.+?)\s+([\d.]+)%\s*,\s*(.+?)\s*\)$/i;
121
+ const MAX_TOKEN_DEPTH = 6;
122
+ export function resolveTokenColor(args) {
123
+ const { css, tokens } = args;
124
+ const depth = args.depth ?? 0;
125
+ if (css === undefined || depth > MAX_TOKEN_DEPTH)
126
+ return undefined;
127
+ const s = css.trim();
128
+ const ref = VAR_RE.exec(s);
129
+ if (ref !== null)
130
+ return resolveTokenColor({ css: tokens[ref[1]], tokens, depth: depth + 1 });
131
+ const mix = MIX_RE.exec(s);
132
+ if (mix !== null) {
133
+ const first = resolveTokenColor({ css: mix[1], tokens, depth: depth + 1 });
134
+ const second = resolveTokenColor({ css: mix[3], tokens, depth: depth + 1 });
135
+ if (first === undefined || second === undefined)
136
+ return undefined;
137
+ const p = clamp01(parseFloat(mix[2]) / 100);
138
+ const wFirst = p * first.a;
139
+ const wSecond = (1 - p) * second.a;
140
+ const a = wFirst + wSecond;
141
+ if (a === 0)
142
+ return { r: 0, g: 0, b: 0, a: 0 };
143
+ return {
144
+ r: (first.r * wFirst + second.r * wSecond) / a,
145
+ g: (first.g * wFirst + second.g * wSecond) / a,
146
+ b: (first.b * wFirst + second.b * wSecond) / a,
147
+ a,
148
+ };
149
+ }
150
+ return parseCssColor(s);
151
+ }
152
+ export function composite(fg, bg) {
153
+ const a = fg.a;
154
+ return { r: fg.r * a + bg.r * (1 - a), g: fg.g * a + bg.g * (1 - a), b: fg.b * a + bg.b * (1 - a), a: 1 };
155
+ }
156
+ function relativeLuminance(rgb) {
157
+ return 0.2126 * srgbToLinear(clamp01(rgb.r)) + 0.7152 * srgbToLinear(clamp01(rgb.g)) + 0.0722 * srgbToLinear(clamp01(rgb.b));
158
+ }
159
+ export function contrastRatio(fgCss, bgCss) {
160
+ const fgRaw = parseCssColor(fgCss);
161
+ const bgRaw = parseCssColor(bgCss);
162
+ if (fgRaw === undefined || bgRaw === undefined)
163
+ return undefined;
164
+ const bg = bgRaw.a >= 1 ? bgRaw : composite(bgRaw, { r: bgRaw.r > 0.5 ? 0 : 1, g: bgRaw.r > 0.5 ? 0 : 1, b: bgRaw.r > 0.5 ? 0 : 1, a: 1 });
165
+ return contrastOf({ fg: fgRaw, bg });
166
+ }
167
+ export function contrastOf(args) {
168
+ const fg = composite(args.fg, args.bg);
169
+ const l1 = relativeLuminance(fg);
170
+ const l2 = relativeLuminance(args.bg);
171
+ const [hi, lo] = l1 >= l2 ? [l1, l2] : [l2, l1];
172
+ return (hi + 0.05) / (lo + 0.05);
173
+ }
174
+ export const DERIVED_HUE = { mode: "derived" };
175
+ export function pinnedHue(h) {
176
+ return { mode: "pinned", h };
177
+ }
178
+ const SCHEME_STEPS = {
179
+ analogous: { step12: 32, step23: 32 },
180
+ "split-complementary": { step12: 150, step23: 60 },
181
+ triadic: { step12: 120, step23: 120 },
182
+ complementary: { step12: 180, step23: 150 },
183
+ };
184
+ export const HUE_SCHEMES = Object.keys(SCHEME_STEPS);
185
+ const normHue = (h) => ((h % 360) + 360) % 360;
186
+ export function resolveHues(hues, scheme) {
187
+ const steps = SCHEME_STEPS[scheme];
188
+ const control2 = hues[1] ?? DERIVED_HUE;
189
+ const control3 = hues[2] ?? DERIVED_HUE;
190
+ const primary = normHue(hues[0]);
191
+ const secondary = control2.mode === "pinned" ? normHue(control2.h) : normHue(primary + steps.step12);
192
+ const tertiary = control3.mode === "pinned" ? normHue(control3.h) : normHue(secondary + steps.step23);
193
+ return {
194
+ primary,
195
+ secondary,
196
+ tertiary,
197
+ pinned: { secondary: control2.mode === "pinned", tertiary: control3.mode === "pinned" },
198
+ };
199
+ }
200
+ export const CHARACTER_PRESETS = {
201
+ paper: { chroma: 0.22, contrast: 0.35, neutralTint: 0.35, surfaceLift: 0.25, fillLevel: 0.5, scheme: "analogous" },
202
+ balanced: { chroma: 0.5, contrast: 0.5, neutralTint: 0.3, surfaceLift: 0.5, fillLevel: 0.6, scheme: "split-complementary" },
203
+ vivid: { chroma: 1.0, contrast: 0.7, neutralTint: 0.15, surfaceLift: 0.6, fillLevel: 0.75, scheme: "split-complementary" },
204
+ brutal: { chroma: 0.75, contrast: 1.0, neutralTint: 0.0, surfaceLift: 0.9, fillLevel: 0.95, scheme: "triadic" },
205
+ panel: { chroma: 0.65, contrast: 0.6, neutralTint: 0.1, surfaceLift: 0.35, fillLevel: 0.9, scheme: "analogous" },
206
+ press: { chroma: 0.0, contrast: 0.6, neutralTint: 0.0, surfaceLift: 0.2, fillLevel: 0.12, scheme: "analogous" },
207
+ };
208
+ const lerp = (a, b, t) => a + (b - a) * t;
209
+ const cuspCache = new Map();
210
+ export function cuspLightness(hue) {
211
+ const key = Math.round(((hue % 360) + 360) % 360);
212
+ const hit = cuspCache.get(key);
213
+ if (hit !== undefined)
214
+ return hit;
215
+ let bestL = 0.7;
216
+ let bestC = -1;
217
+ const scan = (from, to, step) => {
218
+ for (let l = from; l <= to; l += step) {
219
+ const c = gamutMap({ l, c: 0.4, h: key }).c;
220
+ if (c > bestC) {
221
+ bestC = c;
222
+ bestL = l;
223
+ }
224
+ }
225
+ };
226
+ scan(0.05, 0.98, 0.02);
227
+ scan(Math.max(0.02, bestL - 0.02), Math.min(0.99, bestL + 0.02), 0.002);
228
+ cuspCache.set(key, bestL);
229
+ return bestL;
230
+ }
231
+ const CUSP_CHROMA_FLOOR = 0.06;
232
+ const NEUTRAL_CUSP_L = 0.75;
233
+ export function cuspTarget(hue, chroma) {
234
+ return lerp(NEUTRAL_CUSP_L, cuspLightness(hue), clamp01(chroma / CUSP_CHROMA_FLOOR));
235
+ }
236
+ const TEXT_MIN = 4.5;
237
+ const FILL_MIN = 4.5;
238
+ const CLAMP_STEP = 0.004;
239
+ export function bestOnColor(fillCss) {
240
+ const black = "oklch(0.145 0 0)";
241
+ const white = "oklch(0.995 0 0)";
242
+ const cb = contrastRatio(black, fillCss) ?? 0;
243
+ const cw = contrastRatio(white, fillCss) ?? 0;
244
+ return cb >= cw ? black : white;
245
+ }
246
+ function clampForContrast(args) {
247
+ const worst = (css) => Math.min(...args.backdrops.map((b) => contrastRatio(css, b) ?? 0));
248
+ let l = args.l;
249
+ let css = oklchCss(l, args.c, args.h);
250
+ const before = worst(css);
251
+ if (before >= args.min)
252
+ return css;
253
+ for (let i = 0; i < 260; i++) {
254
+ l += args.dir * CLAMP_STEP;
255
+ if (l < 0 || l > 1)
256
+ break;
257
+ css = oklchCss(l, args.c, args.h);
258
+ if (worst(css) >= args.min)
259
+ break;
260
+ }
261
+ args.clamps.push({
262
+ mode: args.mode,
263
+ token: args.token,
264
+ fromL: round(args.l, 3),
265
+ toL: round(clamp01(l), 3),
266
+ ratioBefore: round(before, 2),
267
+ ratioAfter: round(worst(css), 2),
268
+ });
269
+ return css;
270
+ }
271
+ function clampFill(args) {
272
+ const { mode, token, l0, c, h, clamps } = args;
273
+ const rate = (l) => {
274
+ const fill = oklchCss(l, c, h);
275
+ const on = bestOnColor(fill);
276
+ return { fill, on, ratio: contrastRatio(on, fill) ?? 0 };
277
+ };
278
+ const start = rate(l0);
279
+ if (start.ratio >= FILL_MIN)
280
+ return { fill: start.fill, on: start.on };
281
+ for (let i = 1; i <= 250; i++) {
282
+ const d = i * CLAMP_STEP;
283
+ const order = mode === "light" ? [l0 - d, l0 + d] : [l0 + d, l0 - d];
284
+ for (const l of order) {
285
+ if (l < 0 || l > 1)
286
+ continue;
287
+ const r = rate(l);
288
+ if (r.ratio >= FILL_MIN) {
289
+ clamps.push({
290
+ mode,
291
+ token,
292
+ fromL: round(l0, 3),
293
+ toL: round(l, 3),
294
+ ratioBefore: round(start.ratio, 2),
295
+ ratioAfter: round(r.ratio, 2),
296
+ });
297
+ return { fill: r.fill, on: r.on };
298
+ }
299
+ }
300
+ }
301
+ return { fill: start.fill, on: start.on };
302
+ }
303
+ const SEMANTIC_HUES = { success: 148, warning: 82, error: 27 };
304
+ function buildMode(mode, seed, clamps) {
305
+ const ch = seed.character;
306
+ const resolved = resolveHues(seed.hues, ch.scheme);
307
+ const ph = resolved.primary;
308
+ const sh = resolved.secondary;
309
+ const light = mode === "light";
310
+ const tint = ch.neutralTint;
311
+ const bgL = light ? lerp(0.965, 0.995, ch.contrast) : lerp(0.215, 0.115, ch.contrast);
312
+ const bgC = lerp(0, 0.018, tint) * (light ? 1 : 0.8);
313
+ const background = oklchCss(bgL, bgC, ph);
314
+ const surfaceL = light ? bgL - lerp(0.004, 0.05, ch.surfaceLift) : bgL + lerp(0.008, 0.075, ch.surfaceLift);
315
+ const surface = oklchCss(surfaceL, bgC * 1.2, ph);
316
+ const inkL0 = light ? lerp(0.34, 0.14, ch.contrast) : lerp(0.9, 0.985, ch.contrast);
317
+ const inkC = lerp(0.0, 0.03, tint);
318
+ const textPrimary = clampForContrast({
319
+ mode,
320
+ token: "text-primary",
321
+ l: inkL0,
322
+ c: inkC,
323
+ h: ph,
324
+ backdrops: [background, surface],
325
+ min: TEXT_MIN,
326
+ dir: light ? -1 : 1,
327
+ clamps,
328
+ });
329
+ const inkL = toOklch(parseCssColor(textPrimary))?.l ?? inkL0;
330
+ const textSecondary = clampForContrast({
331
+ mode,
332
+ token: "text-secondary",
333
+ l: lerp(inkL, bgL, 0.34),
334
+ c: inkC * 0.9,
335
+ h: ph,
336
+ backdrops: [background, surface],
337
+ min: TEXT_MIN,
338
+ dir: light ? -1 : 1,
339
+ clamps,
340
+ });
341
+ const textDisabled = oklchCss(lerp(inkL, bgL, 0.62), inkC * 0.7, ph);
342
+ const border = oklchCss(lerp(bgL, inkL, lerp(0.16, 0.94, ch.contrast)), lerp(bgC, inkC, 0.5), ph);
343
+ const neutral = oklchCss(lerp(inkL, bgL, 0.45), lerp(0, 0.022, tint), ph);
344
+ const anchor = light ? 0.48 : 0.58;
345
+ const fillC = lerp(0, 0.245, ch.chroma);
346
+ const fillLFor = (hue, chroma, bias) => lerp(anchor, cuspTarget(hue, chroma), clamp01(ch.fillLevel + bias));
347
+ const primary = clampFill({ mode, token: "primary", l0: fillLFor(ph, fillC, 0), c: fillC, h: ph, clamps });
348
+ const secondary = clampFill({
349
+ mode,
350
+ token: "secondary",
351
+ l0: fillLFor(sh, fillC, light ? 0.05 : -0.04),
352
+ c: fillC * 0.92,
353
+ h: sh,
354
+ clamps,
355
+ });
356
+ const accentHue = resolved.tertiary;
357
+ const accent = clampFill({
358
+ mode,
359
+ token: "accent",
360
+ l0: fillLFor(accentHue, fillC, 0.12),
361
+ c: Math.min(0.33, fillC * 1.15),
362
+ h: accentHue,
363
+ clamps,
364
+ });
365
+ const semC = lerp(0.05, 0.19, ch.chroma);
366
+ const success = clampFill({
367
+ mode,
368
+ token: "success",
369
+ l0: fillLFor(SEMANTIC_HUES.success, semC, 0),
370
+ c: semC,
371
+ h: SEMANTIC_HUES.success,
372
+ clamps,
373
+ });
374
+ const warning = clampFill({
375
+ mode,
376
+ token: "warning",
377
+ l0: fillLFor(SEMANTIC_HUES.warning, semC, 0.08),
378
+ c: semC,
379
+ h: SEMANTIC_HUES.warning,
380
+ clamps,
381
+ });
382
+ const error = clampFill({
383
+ mode,
384
+ token: "error",
385
+ l0: fillLFor(SEMANTIC_HUES.error, semC, -0.05),
386
+ c: semC,
387
+ h: SEMANTIC_HUES.error,
388
+ clamps,
389
+ });
390
+ const colors = {
391
+ background,
392
+ surface,
393
+ primary: primary.fill,
394
+ secondary: secondary.fill,
395
+ accent: accent.fill,
396
+ "text-primary": textPrimary,
397
+ "text-secondary": textSecondary,
398
+ "text-disabled": textDisabled,
399
+ border,
400
+ success: success.fill,
401
+ warning: warning.fill,
402
+ error: error.fill,
403
+ neutral,
404
+ };
405
+ return {
406
+ colors,
407
+ on: {
408
+ primary: primary.on,
409
+ secondary: secondary.on,
410
+ accent: accent.on,
411
+ success: success.on,
412
+ warning: warning.on,
413
+ error: error.on,
414
+ },
415
+ };
416
+ }
417
+ export function generatePalette(seed) {
418
+ const clamps = [];
419
+ const l = buildMode("light", seed, clamps);
420
+ const d = buildMode("dark", seed, clamps);
421
+ return {
422
+ seed,
423
+ hues: resolveHues(seed.hues, seed.character.scheme),
424
+ light: l.colors,
425
+ dark: d.colors,
426
+ onLight: l.on,
427
+ onDark: d.on,
428
+ clamps,
429
+ };
430
+ }
431
+ function checksFor(mode, c, on) {
432
+ const mk = (args) => {
433
+ const { label, fg, bg, min, required } = args;
434
+ const ratio = contrastRatio(fg, bg);
435
+ return { mode, label, ratio: ratio === undefined ? undefined : round(ratio, 2), min, required, pass: (ratio ?? 0) >= min };
436
+ };
437
+ const onFor = (token) => on?.[token] ?? (c[token] === undefined || c[token] === "" ? undefined : bestOnColor(c[token]));
438
+ return [
439
+ mk({ label: "text-primary on background", fg: c["text-primary"], bg: c.background, min: TEXT_MIN, required: true }),
440
+ mk({ label: "text-primary on surface", fg: c["text-primary"], bg: c.surface, min: TEXT_MIN, required: true }),
441
+ mk({ label: "text-secondary on background", fg: c["text-secondary"], bg: c.background, min: TEXT_MIN, required: true }),
442
+ mk({ label: "on-primary on primary", fg: onFor("primary"), bg: c.primary, min: FILL_MIN, required: true }),
443
+ mk({ label: "on-secondary on secondary", fg: onFor("secondary"), bg: c.secondary, min: FILL_MIN, required: true }),
444
+ mk({ label: "on-accent on accent", fg: onFor("accent"), bg: c.accent, min: FILL_MIN, required: true }),
445
+ mk({ label: "on-error on error", fg: onFor("error"), bg: c.error, min: FILL_MIN, required: true }),
446
+ mk({ label: "border on background", fg: c.border, bg: c.background, min: 3, required: false }),
447
+ mk({ label: "text-disabled on background", fg: c["text-disabled"], bg: c.background, min: 3, required: false }),
448
+ mk({ label: "success on surface", fg: c.success, bg: c.surface, min: 3, required: false }),
449
+ ];
450
+ }
451
+ export function auditPalette(p) {
452
+ return [...checksFor("light", p.light, p.onLight), ...checksFor("dark", p.dark, p.onDark)];
453
+ }
454
+ function renderOverrideTokens(map) {
455
+ return Object.entries(map)
456
+ .map(([k, v]) => ` --${cssVarName(k)}: ${v} !important;`)
457
+ .join("\n");
458
+ }
459
+ export function renderStyleCss(seed, structural) {
460
+ const structuralTokens = structural ?? {};
461
+ if (seed === undefined)
462
+ return `:root {\n${renderOverrideTokens(structuralTokens)}\n}`;
463
+ const palette = generatePalette(seed);
464
+ const light = { ...palette.light, ...structuralTokens };
465
+ const dark = renderOverrideTokens(palette.dark).replace(/^/gm, " ");
466
+ return `:root {\n${renderOverrideTokens(light)}\n}\n@media (prefers-color-scheme: dark) {\n :root {\n${dark}\n }\n}`;
467
+ }
468
+ export const PALETTE_TOKEN_ORDER = CANONICAL_TOKENS;
469
+ export function hueOf(css) {
470
+ const o = toOklch(parseCssColor(css));
471
+ return o === undefined ? undefined : { h: round(o.h, 1), c: round(o.c, 4), l: round(o.l, 3) };
472
+ }
473
+ //# sourceMappingURL=palette-gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palette-gen.js","sourceRoot":"","sources":["../../jsr/themes/palette-gen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { PaletteSeed } from "./palette-gen.js";
2
+ import type { Ornament } from "./ornament-pad.js";
3
+ export interface StylePreset {
4
+ readonly slug: string;
5
+ readonly label: string;
6
+ readonly palette: PaletteSeed;
7
+ readonly font: string;
8
+ readonly ornament: Ornament;
9
+ }
10
+ export declare const STYLE_PRESETS: readonly StylePreset[];
11
+ export declare function getStylePreset(slug: string | undefined): StylePreset | undefined;
@@ -0,0 +1,79 @@
1
+ export const STYLE_PRESETS = [
2
+ {
3
+ slug: "scrapbook",
4
+ label: "Scrapbook",
5
+ palette: {
6
+ hues: [130],
7
+ character: { chroma: 0.07, contrast: 0.09, neutralTint: 0, surfaceLift: 0, fillLevel: 0.95, scheme: "analogous" },
8
+ },
9
+ font: "inter",
10
+ ornament: { pad: { x: 0, y: 0 } },
11
+ },
12
+ {
13
+ slug: "matrix",
14
+ label: "Matrix Status",
15
+ palette: {
16
+ hues: [152],
17
+ character: { chroma: 0.97, contrast: 0.19, neutralTint: 0, surfaceLift: 0, fillLevel: 0.71, scheme: "analogous" },
18
+ },
19
+ font: "vt323",
20
+ ornament: { pad: { x: 0, y: 0 } },
21
+ },
22
+ {
23
+ slug: "neon",
24
+ label: "Neon Arcade",
25
+ palette: {
26
+ hues: [358],
27
+ character: { chroma: 0.89, contrast: 0.09, neutralTint: 0, surfaceLift: 0, fillLevel: 0.49, scheme: "analogous" },
28
+ },
29
+ font: "rajdhani",
30
+ ornament: { pad: { x: 0, y: 0 } },
31
+ },
32
+ {
33
+ slug: "broadsheet",
34
+ label: "Broadsheet",
35
+ palette: {
36
+ hues: [0],
37
+ character: { chroma: 0, contrast: 0.09, neutralTint: 0, surfaceLift: 0, fillLevel: 0.12, scheme: "analogous" },
38
+ },
39
+ font: "helvetica",
40
+ ornament: { pad: { x: 0, y: 0 } },
41
+ },
42
+ {
43
+ slug: "carbon",
44
+ label: "Carbon Panel",
45
+ palette: {
46
+ hues: [72],
47
+ character: { chroma: 0.56, contrast: 0.11, neutralTint: 0, surfaceLift: 0.15, fillLevel: 0.73, scheme: "analogous" },
48
+ },
49
+ font: "system",
50
+ ornament: { pad: { x: 0, y: 0 } },
51
+ },
52
+ {
53
+ slug: "atelier",
54
+ label: "Atelier Studio",
55
+ palette: {
56
+ hues: [50, { mode: "pinned", h: 40 }],
57
+ character: { chroma: 0.65, contrast: 0.11, neutralTint: 0.42, surfaceLift: 0, fillLevel: 0.44, scheme: "analogous" },
58
+ },
59
+ font: "playfair-display",
60
+ ornament: { pad: { x: 0, y: 0 } },
61
+ },
62
+ {
63
+ slug: "brutalist",
64
+ label: "Neobrutalist",
65
+ palette: {
66
+ hues: [30, { mode: "pinned", h: 98 }, { mode: "pinned", h: 260 }],
67
+ character: { chroma: 0.8, contrast: 0.94, neutralTint: 0, surfaceLift: 0.84, fillLevel: 1, scheme: "triadic" },
68
+ },
69
+ font: "space-grotesk",
70
+ ornament: {
71
+ pad: { x: 0, y: 0.905 },
72
+ pins: { "radius-sm": "4px", "radius-lg": "4px", "font-weight": "700" },
73
+ },
74
+ },
75
+ ];
76
+ export function getStylePreset(slug) {
77
+ return slug === undefined ? undefined : STYLE_PRESETS.find((p) => p.slug === slug);
78
+ }
79
+ //# sourceMappingURL=style-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-presets.js","sourceRoot":"","sources":["../../jsr/themes/style-presets.ts"],"names":[],"mappings":"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"}