@puzzle-ui/theme 0.4.0 → 0.5.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/README.md +58 -4
- package/dist/cli.cjs +96 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +97 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants.cjs +21 -21
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +8 -8
- package/dist/constants.d.ts +8 -8
- package/dist/constants.js +21 -21
- package/dist/constants.js.map +1 -1
- package/dist/fonts/constants.cjs +3 -3
- package/dist/fonts/constants.cjs.map +1 -1
- package/dist/fonts/constants.js +3 -3
- package/dist/fonts/constants.js.map +1 -1
- package/dist/fonts/create-font-preload-filename.cjs +9 -0
- package/dist/fonts/create-font-preload-filename.cjs.map +1 -0
- package/dist/fonts/create-font-preload-filename.js +9 -0
- package/dist/fonts/create-font-preload-filename.js.map +1 -0
- package/dist/fonts/create-google-font-url.cjs +3 -2
- package/dist/fonts/create-google-font-url.cjs.map +1 -1
- package/dist/fonts/create-google-font-url.js +3 -2
- package/dist/fonts/create-google-font-url.js.map +1 -1
- package/dist/fonts/create-local-font-stylesheet-url.cjs +10 -0
- package/dist/fonts/create-local-font-stylesheet-url.cjs.map +1 -0
- package/dist/fonts/create-local-font-stylesheet-url.js +10 -0
- package/dist/fonts/create-local-font-stylesheet-url.js.map +1 -0
- package/dist/fonts/download-google-fonts.cjs +138 -0
- package/dist/fonts/download-google-fonts.cjs.map +1 -0
- package/dist/fonts/download-google-fonts.js +138 -0
- package/dist/fonts/download-google-fonts.js.map +1 -0
- package/dist/fonts/google-font.cjs +18 -8
- package/dist/fonts/google-font.cjs.map +1 -1
- package/dist/fonts/google-font.d.cts +11 -3
- package/dist/fonts/google-font.d.ts +11 -3
- package/dist/fonts/google-font.js +18 -8
- package/dist/fonts/google-font.js.map +1 -1
- package/dist/fonts/index.d.cts +2 -2
- package/dist/fonts/resolve-font-config.cjs +4 -1
- package/dist/fonts/resolve-font-config.cjs.map +1 -1
- package/dist/fonts/resolve-font-config.js +4 -1
- package/dist/fonts/resolve-font-config.js.map +1 -1
- package/dist/fonts/resolve-font-stylesheets.cjs +7 -1
- package/dist/fonts/resolve-font-stylesheets.cjs.map +1 -1
- package/dist/fonts/resolve-font-stylesheets.js +7 -1
- package/dist/fonts/resolve-font-stylesheets.js.map +1 -1
- package/dist/fonts/types.d.cts +12 -1
- package/dist/fonts/types.d.ts +12 -1
- package/dist/global.css +24 -24
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/theme-scopes.css +3 -3
- package/dist/theme.cjs +26 -4
- package/dist/theme.cjs.map +1 -1
- package/dist/theme.css +16 -16
- package/dist/theme.d.cts +27 -3
- package/dist/theme.d.ts +27 -3
- package/dist/theme.js +26 -4
- package/dist/theme.js.map +1 -1
- package/package.json +10 -4
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
---
|
|
1
|
+
# Getting Started
|
|
2
|
+
|
|
3
|
+
Install Puzzle in your React app, build your first interface, and customize the theme.
|
|
5
4
|
|
|
6
5
|
> \[!WARNING\] **Puzzle is not ready for production use.**
|
|
7
6
|
>
|
|
@@ -77,6 +76,61 @@ yarn add @puzzle-ui/ui
|
|
|
77
76
|
|
|
78
77
|
These commands install published packages; they do not clone the repository or build its workspaces. Puzzle does not require Bun in your application. React and React DOM are peer dependencies and should already be installed in your app.
|
|
79
78
|
|
|
79
|
+
## Download fonts with the theme CLI
|
|
80
|
+
|
|
81
|
+
The `@puzzle-ui/theme` package includes the `puzzle-theme` executable.
|
|
82
|
+
It requires Node.js 20.19 or later.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npm install @puzzle-ui/theme
|
|
86
|
+
npm exec -- puzzle-theme --help
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Create `puzzle-fonts.json` in your application's working directory:
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"body": {
|
|
94
|
+
"family": "Inter",
|
|
95
|
+
"weights": [400, 700]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Download the fonts with either package manager:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npm exec -- puzzle-theme fonts download
|
|
104
|
+
# Or, with the package installed using Bun:
|
|
105
|
+
bun run puzzle-theme fonts download
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
The command writes WOFF2 files and `puzzle-fonts.css` to `public/fonts`.
|
|
109
|
+
Use `--config <path>` or `--out-dir <path>` to change these locations.
|
|
110
|
+
Unchanged downloads are skipped; `--force` downloads them again.
|
|
111
|
+
|
|
112
|
+
For variable fonts, use `"weightRange": [300, 700]` instead of `weights`
|
|
113
|
+
to request a continuous range. Only use ranges supported by the font family.
|
|
114
|
+
Discrete `weights` remain supported; when both are provided, the range is used.
|
|
115
|
+
|
|
116
|
+
The downloader keeps all language subsets by default. Pass
|
|
117
|
+
`--subsets latin,latin-ext` to retain only Latin and Latin Extended;
|
|
118
|
+
missing requested subsets produce an error. Other scripts will use fallback
|
|
119
|
+
fonts. Subset choices are included in the download cache key.
|
|
120
|
+
|
|
121
|
+
To load the generated stylesheet, set `fontSource="local"` on `Theme`
|
|
122
|
+
and pass the same configuration to its `fonts` prop. The default local
|
|
123
|
+
stylesheet URL is `/fonts/puzzle-fonts.css`.
|
|
124
|
+
|
|
125
|
+
When using local fonts, Puzzle automatically preloads the normal Latin
|
|
126
|
+
variant of the body font. Use `fontPreload="heading"` or
|
|
127
|
+
`fontPreload="accent"` to preload another configured role, or
|
|
128
|
+
`fontPreload={false}` to disable preloading.
|
|
129
|
+
|
|
130
|
+
The generated stylesheet and preload link use the same font URL, avoiding
|
|
131
|
+
duplicate downloads. Preloading only applies to local fonts and only one
|
|
132
|
+
font is preloaded per Theme instance.
|
|
133
|
+
|
|
80
134
|
## Your first interface
|
|
81
135
|
|
|
82
136
|
Import components from `"@puzzle-ui/ui` and wrap your application in `Theme` from `"@puzzle-ui/theme`:
|
package/dist/cli.cjs
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const require_download_google_fonts = require("./fonts/download-google-fonts.cjs");
|
|
3
|
+
let node_fs_promises = require("node:fs/promises");
|
|
4
|
+
let node_path = require("node:path");
|
|
5
|
+
// src/cli.ts
|
|
6
|
+
const FONT_ROLES = [
|
|
7
|
+
"heading",
|
|
8
|
+
"body",
|
|
9
|
+
"accent"
|
|
10
|
+
];
|
|
11
|
+
const printHelp = () => {
|
|
12
|
+
console.log(`
|
|
13
|
+
Puzzle Theme CLI
|
|
14
|
+
|
|
15
|
+
Usage:
|
|
16
|
+
puzzle-theme fonts download [options]
|
|
17
|
+
|
|
18
|
+
Commands:
|
|
19
|
+
fonts download Download configured Google Fonts.
|
|
20
|
+
|
|
21
|
+
Options:
|
|
22
|
+
--config <path> Configuration file (default: puzzle-fonts.json).
|
|
23
|
+
--out-dir <path> Output directory (default: public/fonts).
|
|
24
|
+
--force Force a new download.
|
|
25
|
+
--subsets <names> Comma-separated subsets (default: all).
|
|
26
|
+
--help Display this help.
|
|
27
|
+
|
|
28
|
+
Examples:
|
|
29
|
+
puzzle-theme fonts download
|
|
30
|
+
puzzle-theme fonts download --force
|
|
31
|
+
puzzle-theme fonts download --config ./config/fonts.json
|
|
32
|
+
puzzle-theme fonts download --out-dir public/assets/fonts
|
|
33
|
+
`);
|
|
34
|
+
};
|
|
35
|
+
const getOption = (args, name, fallback) => {
|
|
36
|
+
const inlineOption = args.find((arg) => arg.startsWith(`${name}=`));
|
|
37
|
+
if (inlineOption) {
|
|
38
|
+
const value = inlineOption.slice(name.length + 1);
|
|
39
|
+
if (!value) throw new Error(`Missing value for ${name}.`);
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
const index = args.indexOf(name);
|
|
43
|
+
if (index === -1) return fallback;
|
|
44
|
+
const value = args[index + 1];
|
|
45
|
+
if (!value || value.startsWith("--")) throw new Error(`Missing value for ${name}.`);
|
|
46
|
+
return value;
|
|
47
|
+
};
|
|
48
|
+
const isRecord = (value) => {
|
|
49
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
50
|
+
};
|
|
51
|
+
const parseFontConfig = (value) => {
|
|
52
|
+
if (!isRecord(value)) throw new TypeError("The font configuration must be a JSON object.");
|
|
53
|
+
const fonts = {};
|
|
54
|
+
for (const [role, config] of Object.entries(value)) {
|
|
55
|
+
if (!FONT_ROLES.includes(role)) throw new TypeError(`Unknown font role "${role}". Expected heading, body, or accent.`);
|
|
56
|
+
if (!isRecord(config)) throw new TypeError(`Font configuration for "${role}" must be an object.`);
|
|
57
|
+
if (typeof config.family !== "string" || !config.family.trim()) throw new TypeError(`Font configuration for "${role}" requires a family.`);
|
|
58
|
+
fonts[role] = config;
|
|
59
|
+
}
|
|
60
|
+
if (Object.keys(fonts).length === 0) throw new TypeError("No fonts configured. Add at least one font role.");
|
|
61
|
+
return fonts;
|
|
62
|
+
};
|
|
63
|
+
const main = async () => {
|
|
64
|
+
const args = process.argv.slice(2);
|
|
65
|
+
if (args.includes("--help") || args.includes("-h") || args.length === 0) {
|
|
66
|
+
printHelp();
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (args[0] !== "fonts" || args[1] !== "download") {
|
|
70
|
+
printHelp();
|
|
71
|
+
throw new Error("Unknown command.");
|
|
72
|
+
}
|
|
73
|
+
const configPath = (0, node_path.resolve)(process.cwd(), getOption(args, "--config", "puzzle-fonts.json"));
|
|
74
|
+
const outputDir = (0, node_path.resolve)(process.cwd(), getOption(args, "--out-dir", "public/fonts"));
|
|
75
|
+
const rawConfig = JSON.parse(await (0, node_fs_promises.readFile)(configPath, "utf8"));
|
|
76
|
+
const fonts = parseFontConfig(rawConfig);
|
|
77
|
+
const result = await require_download_google_fonts.downloadGoogleFonts({
|
|
78
|
+
fonts,
|
|
79
|
+
outputDir,
|
|
80
|
+
force: args.includes("--force"),
|
|
81
|
+
subsets: getOption(args, "--subsets", "all") === "all" ? void 0 : getOption(args, "--subsets", "all").split(",").map((subset) => subset.trim())
|
|
82
|
+
});
|
|
83
|
+
if (result.skipped) {
|
|
84
|
+
console.log("Google Fonts are already up to date.");
|
|
85
|
+
console.log(`Location: ${result.cssPath}`);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
console.log(`Downloaded ${result.fontFiles} WOFF2 font files.`);
|
|
89
|
+
console.log(`Generated: ${result.cssPath}`);
|
|
90
|
+
};
|
|
91
|
+
main().catch((error) => {
|
|
92
|
+
console.error(error instanceof Error ? error.message : error);
|
|
93
|
+
process.exitCode = 1;
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=cli.cjs.map
|
package/dist/cli.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.cjs","names":["resolve","readFile","downloadGoogleFonts"],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { readFile } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\n\nimport { downloadGoogleFonts } from \"./fonts/download-google-fonts\";\nimport type { FontConfig, FontRole, ThemeFonts } from \"./fonts/types\";\n\nconst FONT_ROLES: readonly FontRole[] = [\"heading\", \"body\", \"accent\"];\n\nconst printHelp = () => {\n console.log(`\nPuzzle Theme CLI\n\nUsage:\n puzzle-theme fonts download [options]\n\nCommands:\n fonts download Download configured Google Fonts.\n\nOptions:\n --config <path> Configuration file (default: puzzle-fonts.json).\n --out-dir <path> Output directory (default: public/fonts).\n --force Force a new download.\n --subsets <names> Comma-separated subsets (default: all).\n --help Display this help.\n\nExamples:\n puzzle-theme fonts download\n puzzle-theme fonts download --force\n puzzle-theme fonts download --config ./config/fonts.json\n puzzle-theme fonts download --out-dir public/assets/fonts\n`);\n};\n\nconst getOption = (args: string[], name: string, fallback: string): string => {\n const inlineOption = args.find((arg) => arg.startsWith(`${name}=`));\n\n if (inlineOption) {\n const value = inlineOption.slice(name.length + 1);\n\n if (!value) {\n throw new Error(`Missing value for ${name}.`);\n }\n\n return value;\n }\n\n const index = args.indexOf(name);\n\n if (index === -1) {\n return fallback;\n }\n\n const value = args[index + 1];\n\n if (!value || value.startsWith(\"--\")) {\n throw new Error(`Missing value for ${name}.`);\n }\n\n return value;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\nconst parseFontConfig = (value: unknown): ThemeFonts => {\n if (!isRecord(value)) {\n throw new TypeError(\"The font configuration must be a JSON object.\");\n }\n\n const fonts: Partial<Record<FontRole, FontConfig>> = {};\n\n for (const [role, config] of Object.entries(value)) {\n if (!FONT_ROLES.includes(role as FontRole)) {\n throw new TypeError(\n `Unknown font role \"${role}\". Expected heading, body, or accent.`,\n );\n }\n\n if (!isRecord(config)) {\n throw new TypeError(\n `Font configuration for \"${role}\" must be an object.`,\n );\n }\n\n if (typeof config.family !== \"string\" || !config.family.trim()) {\n throw new TypeError(\n `Font configuration for \"${role}\" requires a family.`,\n );\n }\n\n fonts[role as FontRole] = config as unknown as FontConfig;\n }\n\n if (Object.keys(fonts).length === 0) {\n throw new TypeError(\"No fonts configured. Add at least one font role.\");\n }\n\n return fonts;\n};\n\nconst main = async () => {\n const args = process.argv.slice(2);\n\n if (args.includes(\"--help\") || args.includes(\"-h\") || args.length === 0) {\n printHelp();\n return;\n }\n\n if (args[0] !== \"fonts\" || args[1] !== \"download\") {\n printHelp();\n throw new Error(\"Unknown command.\");\n }\n\n const configPath = resolve(\n process.cwd(),\n getOption(args, \"--config\", \"puzzle-fonts.json\"),\n );\n\n const outputDir = resolve(\n process.cwd(),\n getOption(args, \"--out-dir\", \"public/fonts\"),\n );\n\n const rawConfig = JSON.parse(await readFile(configPath, \"utf8\")) as unknown;\n\n const fonts = parseFontConfig(rawConfig);\n\n const result = await downloadGoogleFonts({\n fonts,\n outputDir,\n force: args.includes(\"--force\"),\n subsets: getOption(args, \"--subsets\", \"all\") === \"all\"\n ? undefined\n : getOption(args, \"--subsets\", \"all\").split(\",\").map((subset) => subset.trim()),\n });\n\n if (result.skipped) {\n console.log(\"Google Fonts are already up to date.\");\n console.log(`Location: ${result.cssPath}`);\n return;\n }\n\n console.log(`Downloaded ${result.fontFiles} WOFF2 font files.`);\n\n console.log(`Generated: ${result.cssPath}`);\n};\n\nvoid main().catch((error: unknown) => {\n console.error(error instanceof Error ? error.message : error);\n\n process.exitCode = 1;\n});\n"],"mappings":"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"}
|
package/dist/cli.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { downloadGoogleFonts } from "./fonts/download-google-fonts.js";
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
import { resolve } from "node:path";
|
|
5
|
+
// src/cli.ts
|
|
6
|
+
const FONT_ROLES = [
|
|
7
|
+
"heading",
|
|
8
|
+
"body",
|
|
9
|
+
"accent"
|
|
10
|
+
];
|
|
11
|
+
const printHelp = () => {
|
|
12
|
+
console.log(`
|
|
13
|
+
Puzzle Theme CLI
|
|
14
|
+
|
|
15
|
+
Usage:
|
|
16
|
+
puzzle-theme fonts download [options]
|
|
17
|
+
|
|
18
|
+
Commands:
|
|
19
|
+
fonts download Download configured Google Fonts.
|
|
20
|
+
|
|
21
|
+
Options:
|
|
22
|
+
--config <path> Configuration file (default: puzzle-fonts.json).
|
|
23
|
+
--out-dir <path> Output directory (default: public/fonts).
|
|
24
|
+
--force Force a new download.
|
|
25
|
+
--subsets <names> Comma-separated subsets (default: all).
|
|
26
|
+
--help Display this help.
|
|
27
|
+
|
|
28
|
+
Examples:
|
|
29
|
+
puzzle-theme fonts download
|
|
30
|
+
puzzle-theme fonts download --force
|
|
31
|
+
puzzle-theme fonts download --config ./config/fonts.json
|
|
32
|
+
puzzle-theme fonts download --out-dir public/assets/fonts
|
|
33
|
+
`);
|
|
34
|
+
};
|
|
35
|
+
const getOption = (args, name, fallback) => {
|
|
36
|
+
const inlineOption = args.find((arg) => arg.startsWith(`${name}=`));
|
|
37
|
+
if (inlineOption) {
|
|
38
|
+
const value = inlineOption.slice(name.length + 1);
|
|
39
|
+
if (!value) throw new Error(`Missing value for ${name}.`);
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
const index = args.indexOf(name);
|
|
43
|
+
if (index === -1) return fallback;
|
|
44
|
+
const value = args[index + 1];
|
|
45
|
+
if (!value || value.startsWith("--")) throw new Error(`Missing value for ${name}.`);
|
|
46
|
+
return value;
|
|
47
|
+
};
|
|
48
|
+
const isRecord = (value) => {
|
|
49
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
50
|
+
};
|
|
51
|
+
const parseFontConfig = (value) => {
|
|
52
|
+
if (!isRecord(value)) throw new TypeError("The font configuration must be a JSON object.");
|
|
53
|
+
const fonts = {};
|
|
54
|
+
for (const [role, config] of Object.entries(value)) {
|
|
55
|
+
if (!FONT_ROLES.includes(role)) throw new TypeError(`Unknown font role "${role}". Expected heading, body, or accent.`);
|
|
56
|
+
if (!isRecord(config)) throw new TypeError(`Font configuration for "${role}" must be an object.`);
|
|
57
|
+
if (typeof config.family !== "string" || !config.family.trim()) throw new TypeError(`Font configuration for "${role}" requires a family.`);
|
|
58
|
+
fonts[role] = config;
|
|
59
|
+
}
|
|
60
|
+
if (Object.keys(fonts).length === 0) throw new TypeError("No fonts configured. Add at least one font role.");
|
|
61
|
+
return fonts;
|
|
62
|
+
};
|
|
63
|
+
const main = async () => {
|
|
64
|
+
const args = process.argv.slice(2);
|
|
65
|
+
if (args.includes("--help") || args.includes("-h") || args.length === 0) {
|
|
66
|
+
printHelp();
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (args[0] !== "fonts" || args[1] !== "download") {
|
|
70
|
+
printHelp();
|
|
71
|
+
throw new Error("Unknown command.");
|
|
72
|
+
}
|
|
73
|
+
const configPath = resolve(process.cwd(), getOption(args, "--config", "puzzle-fonts.json"));
|
|
74
|
+
const outputDir = resolve(process.cwd(), getOption(args, "--out-dir", "public/fonts"));
|
|
75
|
+
const rawConfig = JSON.parse(await readFile(configPath, "utf8"));
|
|
76
|
+
const fonts = parseFontConfig(rawConfig);
|
|
77
|
+
const result = await downloadGoogleFonts({
|
|
78
|
+
fonts,
|
|
79
|
+
outputDir,
|
|
80
|
+
force: args.includes("--force"),
|
|
81
|
+
subsets: getOption(args, "--subsets", "all") === "all" ? void 0 : getOption(args, "--subsets", "all").split(",").map((subset) => subset.trim())
|
|
82
|
+
});
|
|
83
|
+
if (result.skipped) {
|
|
84
|
+
console.log("Google Fonts are already up to date.");
|
|
85
|
+
console.log(`Location: ${result.cssPath}`);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
console.log(`Downloaded ${result.fontFiles} WOFF2 font files.`);
|
|
89
|
+
console.log(`Generated: ${result.cssPath}`);
|
|
90
|
+
};
|
|
91
|
+
main().catch((error) => {
|
|
92
|
+
console.error(error instanceof Error ? error.message : error);
|
|
93
|
+
process.exitCode = 1;
|
|
94
|
+
});
|
|
95
|
+
export {};
|
|
96
|
+
|
|
97
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","names":[],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { readFile } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\n\nimport { downloadGoogleFonts } from \"./fonts/download-google-fonts\";\nimport type { FontConfig, FontRole, ThemeFonts } from \"./fonts/types\";\n\nconst FONT_ROLES: readonly FontRole[] = [\"heading\", \"body\", \"accent\"];\n\nconst printHelp = () => {\n console.log(`\nPuzzle Theme CLI\n\nUsage:\n puzzle-theme fonts download [options]\n\nCommands:\n fonts download Download configured Google Fonts.\n\nOptions:\n --config <path> Configuration file (default: puzzle-fonts.json).\n --out-dir <path> Output directory (default: public/fonts).\n --force Force a new download.\n --subsets <names> Comma-separated subsets (default: all).\n --help Display this help.\n\nExamples:\n puzzle-theme fonts download\n puzzle-theme fonts download --force\n puzzle-theme fonts download --config ./config/fonts.json\n puzzle-theme fonts download --out-dir public/assets/fonts\n`);\n};\n\nconst getOption = (args: string[], name: string, fallback: string): string => {\n const inlineOption = args.find((arg) => arg.startsWith(`${name}=`));\n\n if (inlineOption) {\n const value = inlineOption.slice(name.length + 1);\n\n if (!value) {\n throw new Error(`Missing value for ${name}.`);\n }\n\n return value;\n }\n\n const index = args.indexOf(name);\n\n if (index === -1) {\n return fallback;\n }\n\n const value = args[index + 1];\n\n if (!value || value.startsWith(\"--\")) {\n throw new Error(`Missing value for ${name}.`);\n }\n\n return value;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\nconst parseFontConfig = (value: unknown): ThemeFonts => {\n if (!isRecord(value)) {\n throw new TypeError(\"The font configuration must be a JSON object.\");\n }\n\n const fonts: Partial<Record<FontRole, FontConfig>> = {};\n\n for (const [role, config] of Object.entries(value)) {\n if (!FONT_ROLES.includes(role as FontRole)) {\n throw new TypeError(\n `Unknown font role \"${role}\". Expected heading, body, or accent.`,\n );\n }\n\n if (!isRecord(config)) {\n throw new TypeError(\n `Font configuration for \"${role}\" must be an object.`,\n );\n }\n\n if (typeof config.family !== \"string\" || !config.family.trim()) {\n throw new TypeError(\n `Font configuration for \"${role}\" requires a family.`,\n );\n }\n\n fonts[role as FontRole] = config as unknown as FontConfig;\n }\n\n if (Object.keys(fonts).length === 0) {\n throw new TypeError(\"No fonts configured. Add at least one font role.\");\n }\n\n return fonts;\n};\n\nconst main = async () => {\n const args = process.argv.slice(2);\n\n if (args.includes(\"--help\") || args.includes(\"-h\") || args.length === 0) {\n printHelp();\n return;\n }\n\n if (args[0] !== \"fonts\" || args[1] !== \"download\") {\n printHelp();\n throw new Error(\"Unknown command.\");\n }\n\n const configPath = resolve(\n process.cwd(),\n getOption(args, \"--config\", \"puzzle-fonts.json\"),\n );\n\n const outputDir = resolve(\n process.cwd(),\n getOption(args, \"--out-dir\", \"public/fonts\"),\n );\n\n const rawConfig = JSON.parse(await readFile(configPath, \"utf8\")) as unknown;\n\n const fonts = parseFontConfig(rawConfig);\n\n const result = await downloadGoogleFonts({\n fonts,\n outputDir,\n force: args.includes(\"--force\"),\n subsets: getOption(args, \"--subsets\", \"all\") === \"all\"\n ? undefined\n : getOption(args, \"--subsets\", \"all\").split(\",\").map((subset) => subset.trim()),\n });\n\n if (result.skipped) {\n console.log(\"Google Fonts are already up to date.\");\n console.log(`Location: ${result.cssPath}`);\n return;\n }\n\n console.log(`Downloaded ${result.fontFiles} WOFF2 font files.`);\n\n console.log(`Generated: ${result.cssPath}`);\n};\n\nvoid main().catch((error: unknown) => {\n console.error(error instanceof Error ? error.message : error);\n\n process.exitCode = 1;\n});\n"],"mappings":";;;;;AAQA,MAAM,aAAkC;CAAC;CAAW;CAAQ;AAAQ;AAEpE,MAAM,kBAAkB;CACtB,QAAQ,IAAI;;;;;;;;;;;;;;;;;;;;;CAqBb;AACD;AAEA,MAAM,aAAa,MAAgB,MAAc,aAA6B;CAC5E,MAAM,eAAe,KAAK,MAAM,QAAQ,IAAI,WAAW,GAAG,KAAK,EAAE,CAAC;CAElE,IAAI,cAAc;EAChB,MAAM,QAAQ,aAAa,MAAM,KAAK,SAAS,CAAC;EAEhD,IAAI,CAAC,OACH,MAAM,IAAI,MAAM,qBAAqB,KAAK,EAAE;EAG9C,OAAO;CACT;CAEA,MAAM,QAAQ,KAAK,QAAQ,IAAI;CAE/B,IAAI,UAAU,IACZ,OAAO;CAGT,MAAM,QAAQ,KAAK,QAAQ;CAE3B,IAAI,CAAC,SAAS,MAAM,WAAW,IAAI,GACjC,MAAM,IAAI,MAAM,qBAAqB,KAAK,EAAE;CAG9C,OAAO;AACT;AAEA,MAAM,YAAY,UAAqD;CACrE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,MAAM,mBAAmB,UAA+B;CACtD,IAAI,CAAC,SAAS,KAAK,GACjB,MAAM,IAAI,UAAU,+CAA+C;CAGrE,MAAM,QAA+C,CAAC;CAEtD,KAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,KAAK,GAAG;EAClD,IAAI,CAAC,WAAW,SAAS,IAAgB,GACvC,MAAM,IAAI,UACR,sBAAsB,KAAK,sCAC7B;EAGF,IAAI,CAAC,SAAS,MAAM,GAClB,MAAM,IAAI,UACR,2BAA2B,KAAK,qBAClC;EAGF,IAAI,OAAO,OAAO,WAAW,YAAY,CAAC,OAAO,OAAO,KAAK,GAC3D,MAAM,IAAI,UACR,2BAA2B,KAAK,qBAClC;EAGF,MAAM,QAAoB;CAC5B;CAEA,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,WAAW,GAChC,MAAM,IAAI,UAAU,kDAAkD;CAGxE,OAAO;AACT;AAEA,MAAM,OAAO,YAAY;CACvB,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CAEjC,IAAI,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW,GAAG;EACvE,UAAU;EACV;CACF;CAEA,IAAI,KAAK,OAAO,WAAW,KAAK,OAAO,YAAY;EACjD,UAAU;EACV,MAAM,IAAI,MAAM,kBAAkB;CACpC;CAEA,MAAM,aAAa,QACjB,QAAQ,IAAI,GACZ,UAAU,MAAM,YAAY,mBAAmB,CACjD;CAEA,MAAM,YAAY,QAChB,QAAQ,IAAI,GACZ,UAAU,MAAM,aAAa,cAAc,CAC7C;CAEA,MAAM,YAAY,KAAK,MAAM,MAAM,SAAS,YAAY,MAAM,CAAC;CAE/D,MAAM,QAAQ,gBAAgB,SAAS;CAEvC,MAAM,SAAS,MAAM,oBAAoB;EACvC;EACA;EACA,OAAO,KAAK,SAAS,SAAS;EAC9B,SAAS,UAAU,MAAM,aAAa,KAAK,MAAM,QAC7C,KAAA,IACA,UAAU,MAAM,aAAa,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,WAAW,OAAO,KAAK,CAAC;CAClF,CAAC;CAED,IAAI,OAAO,SAAS;EAClB,QAAQ,IAAI,sCAAsC;EAClD,QAAQ,IAAI,aAAa,OAAO,SAAS;EACzC;CACF;CAEA,QAAQ,IAAI,cAAc,OAAO,UAAU,mBAAmB;CAE9D,QAAQ,IAAI,cAAc,OAAO,SAAS;AAC5C;AAEK,KAAK,CAAC,CAAC,OAAO,UAAmB;CACpC,QAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,KAAK;CAE5D,QAAQ,WAAW;AACrB,CAAC"}
|
package/dist/constants.cjs
CHANGED
|
@@ -20,26 +20,26 @@ const DEFAULT_TOKENS = {
|
|
|
20
20
|
background: "#FCFCFC",
|
|
21
21
|
surface: "#FFFFFF",
|
|
22
22
|
surfaceElevated: "#FFFFFF",
|
|
23
|
-
surfaceSunken: "#
|
|
23
|
+
surfaceSunken: "#F0F0F0",
|
|
24
24
|
text: "#171A35",
|
|
25
25
|
textMuted: "#5F6485",
|
|
26
26
|
textSubtle: "#8B91B3",
|
|
27
27
|
border: "#E0E5F5",
|
|
28
28
|
borderStrong: "#C4CBE6",
|
|
29
|
-
primary: "#
|
|
29
|
+
primary: "#0277B5",
|
|
30
30
|
primaryForeground: "#FFFFFF",
|
|
31
|
-
secondary: "#
|
|
31
|
+
secondary: "#475569",
|
|
32
32
|
secondaryForeground: "#FFFFFF",
|
|
33
|
-
accent: "#
|
|
33
|
+
accent: "#6D28D9",
|
|
34
34
|
accentForeground: "#FFFFFF",
|
|
35
35
|
ring: "#A5B4FC",
|
|
36
36
|
success: "#15803D",
|
|
37
37
|
successForeground: "#FFFFFF",
|
|
38
|
-
warning: "#
|
|
38
|
+
warning: "#FABC0A",
|
|
39
39
|
warningForeground: "#FFFFFF",
|
|
40
40
|
danger: "#B91C1C",
|
|
41
41
|
dangerForeground: "#FFFFFF",
|
|
42
|
-
info: "#
|
|
42
|
+
info: "#1D4ED8",
|
|
43
43
|
infoForeground: "#FFFFFF"
|
|
44
44
|
},
|
|
45
45
|
dark: {
|
|
@@ -54,10 +54,10 @@ const DEFAULT_TOKENS = {
|
|
|
54
54
|
borderStrong: "#4a555d",
|
|
55
55
|
primary: "#38BDF8",
|
|
56
56
|
primaryForeground: "#082F49",
|
|
57
|
-
secondary: "#
|
|
58
|
-
secondaryForeground: "#
|
|
59
|
-
accent: "#
|
|
60
|
-
accentForeground: "#
|
|
57
|
+
secondary: "#94A3B8",
|
|
58
|
+
secondaryForeground: "#0F172A",
|
|
59
|
+
accent: "#C4B5FD",
|
|
60
|
+
accentForeground: "#1E1B4B",
|
|
61
61
|
ring: "#93c5fd",
|
|
62
62
|
success: "#4ade80",
|
|
63
63
|
successForeground: "#052e16",
|
|
@@ -65,8 +65,8 @@ const DEFAULT_TOKENS = {
|
|
|
65
65
|
warningForeground: "#422006",
|
|
66
66
|
danger: "#f87171",
|
|
67
67
|
dangerForeground: "#450a0a",
|
|
68
|
-
info: "#
|
|
69
|
-
infoForeground: "#
|
|
68
|
+
info: "#818CF8",
|
|
69
|
+
infoForeground: "#1E1B4B"
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
typography: {
|
|
@@ -176,7 +176,7 @@ const DEFAULT_TOKENS = {
|
|
|
176
176
|
8: "0 25px 50px -12px rgb(0 0 0 / 0.20)",
|
|
177
177
|
12: "0 35px 60px -15px rgb(0 0 0 / 0.22)",
|
|
178
178
|
16: "0 45px 80px -20px rgb(0 0 0 / 0.25)",
|
|
179
|
-
24: "0 60px 100px -
|
|
179
|
+
24: "0 60px 100px -20px rgb(0 0 0 / 0.40), 0 24px 40px -12px rgb(0 0 0 / 0.25)"
|
|
180
180
|
},
|
|
181
181
|
motion: {
|
|
182
182
|
fast: "120ms",
|
|
@@ -255,7 +255,7 @@ const COLOR_THEMES = {
|
|
|
255
255
|
ring: "#C4B5FD",
|
|
256
256
|
success: "#15803D",
|
|
257
257
|
successForeground: "#FFFFFF",
|
|
258
|
-
warning: "#
|
|
258
|
+
warning: "#FABC0A",
|
|
259
259
|
warningForeground: "#FFFFFF",
|
|
260
260
|
danger: "#BE123C",
|
|
261
261
|
dangerForeground: "#FFFFFF",
|
|
@@ -291,7 +291,7 @@ const COLOR_THEMES = {
|
|
|
291
291
|
ring: "#6EE7B7",
|
|
292
292
|
success: "#15803D",
|
|
293
293
|
successForeground: "#FFFFFF",
|
|
294
|
-
warning: "#
|
|
294
|
+
warning: "#FABC0A",
|
|
295
295
|
warningForeground: "#FFFFFF",
|
|
296
296
|
danger: "#B91C1C",
|
|
297
297
|
dangerForeground: "#FFFFFF",
|
|
@@ -327,7 +327,7 @@ const COLOR_THEMES = {
|
|
|
327
327
|
ring: "#FDBA74",
|
|
328
328
|
success: "#15803D",
|
|
329
329
|
successForeground: "#FFFFFF",
|
|
330
|
-
warning: "#
|
|
330
|
+
warning: "#FABC0A",
|
|
331
331
|
warningForeground: "#FFFFFF",
|
|
332
332
|
danger: "#B91C1C",
|
|
333
333
|
dangerForeground: "#FFFFFF",
|
|
@@ -399,7 +399,7 @@ const COLOR_THEMES = {
|
|
|
399
399
|
ring: "#5EEAD4",
|
|
400
400
|
success: "#15803D",
|
|
401
401
|
successForeground: "#FFFFFF",
|
|
402
|
-
warning: "#
|
|
402
|
+
warning: "#FABC0A",
|
|
403
403
|
warningForeground: "#FFFFFF",
|
|
404
404
|
danger: "#B91C1C",
|
|
405
405
|
dangerForeground: "#FFFFFF",
|
|
@@ -435,7 +435,7 @@ const COLOR_THEMES = {
|
|
|
435
435
|
ring: "#D8B4FE",
|
|
436
436
|
success: "#15803D",
|
|
437
437
|
successForeground: "#FFFFFF",
|
|
438
|
-
warning: "#
|
|
438
|
+
warning: "#FABC0A",
|
|
439
439
|
warningForeground: "#FFFFFF",
|
|
440
440
|
danger: "#B91C1C",
|
|
441
441
|
dangerForeground: "#FFFFFF",
|
|
@@ -471,7 +471,7 @@ const COLOR_THEMES = {
|
|
|
471
471
|
ring: "#67E8F9",
|
|
472
472
|
success: "#15803D",
|
|
473
473
|
successForeground: "#FFFFFF",
|
|
474
|
-
warning: "#
|
|
474
|
+
warning: "#FABC0A",
|
|
475
475
|
warningForeground: "#FFFFFF",
|
|
476
476
|
danger: "#B91C1C",
|
|
477
477
|
dangerForeground: "#FFFFFF",
|
|
@@ -507,7 +507,7 @@ const COLOR_THEMES = {
|
|
|
507
507
|
ring: "#FDBA74",
|
|
508
508
|
success: "#15803D",
|
|
509
509
|
successForeground: "#FFFFFF",
|
|
510
|
-
warning: "#
|
|
510
|
+
warning: "#FABC0A",
|
|
511
511
|
warningForeground: "#FFFFFF",
|
|
512
512
|
danger: "#B91C1C",
|
|
513
513
|
dangerForeground: "#FFFFFF",
|
|
@@ -543,7 +543,7 @@ const COLOR_THEMES = {
|
|
|
543
543
|
ring: "#A5B4FC",
|
|
544
544
|
success: "#15803D",
|
|
545
545
|
successForeground: "#FFFFFF",
|
|
546
|
-
warning: "#
|
|
546
|
+
warning: "#FABC0A",
|
|
547
547
|
warningForeground: "#FFFFFF",
|
|
548
548
|
danger: "#B91C1C",
|
|
549
549
|
dangerForeground: "#FFFFFF",
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type { ColorTheme, ThemeTokens } from \"./types\";\n\nexport const GENERIC_FAMILIES = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"fangsong\",\n \"emoji\",\n]);\n\nexport const DEFAULT_TOKENS: ThemeTokens = {\n colorSchemes: {\n light: {\n background: \"#FCFCFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F7F7F7\",\n text: \"#171A35\",\n textMuted: \"#5F6485\",\n textSubtle: \"#8B91B3\",\n border: \"#E0E5F5\",\n borderStrong: \"#C4CBE6\",\n primary: \"#0284C7\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#075985\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#06B6D4\",\n accentForeground: \"#FFFFFF\",\n ring: \"#A5B4FC\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n\n dark: {\n background: \"#111518\",\n surface: \"#1c2226\",\n surfaceElevated: \"#242c31\",\n surfaceSunken: \"#0d1113\",\n text: \"#f5f5f5\",\n textMuted: \"#a4adb3\",\n textSubtle: \"#8c969d\",\n border: \"#343c42\",\n borderStrong: \"#4a555d\",\n primary: \"#38BDF8\",\n primaryForeground: \"#082F49\",\n secondary: \"#7DD3FC\",\n secondaryForeground: \"#082F49\",\n accent: \"#22D3EE\",\n accentForeground: \"#083344\",\n ring: \"#93c5fd\",\n success: \"#4ade80\",\n successForeground: \"#052e16\",\n warning: \"#fbbf24\",\n warningForeground: \"#422006\",\n danger: \"#f87171\",\n dangerForeground: \"#450a0a\",\n info: \"#38bdf8\",\n infoForeground: \"#082f49\",\n },\n },\n typography: {\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n base: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n },\n fontWeight: {\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n },\n lineHeight: {\n none: \"1\",\n tight: \"1.15\",\n snug: \"1.3\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n },\n letterSpacing: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n },\n fontGap: {\n headingStackGap: \"0.3em\",\n headingParagraphGap: \"0.65em\",\n paragraphGap: \"1em\",\n sectionGap: \"1.5em\",\n },\n },\n spacing: {\n 0: \"0\",\n px: \"1px\",\n \"0.5\": \"0.125rem\",\n 1: \"0.25rem\",\n \"1.5\": \"0.375rem\",\n 2: \"0.5rem\",\n 3: \"0.75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 8: \"2rem\",\n 10: \"2.5rem\",\n 12: \"3rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n },\n radius: {\n none: \"0\",\n sm: \"0.125rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\",\n },\n shadows: {\n none: \"none\",\n xs: \"0 1px 2px 0 rgb(15 23 42 / 0.05)\",\n sm: \"0 1px 3px 0 rgb(15 23 42 / 0.1), 0 1px 2px -1px rgb(15 23 42 / 0.1)\",\n md: \"0 4px 6px -1px rgb(15 23 42 / 0.1), 0 2px 4px -2px rgb(15 23 42 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(15 23 42 / 0.1), 0 4px 6px -4px rgb(15 23 42 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(15 23 42 / 0.1), 0 8px 10px -6px rgb(15 23 42 / 0.1)\",\n },\n borders: {\n width: \"1px\",\n widthStrong: \"2px\",\n style: \"solid\",\n },\n breakpoints: {\n tablet: \"768px\",\n desktop: \"1024px\",\n hd: \"1440px\",\n },\n layout: {\n container: \"80rem\",\n content: \"64rem\",\n prose: \"65ch\",\n },\n overlays: {\n backdrop: \"rgb(0 0 0 / 0.35)\",\n backdropBlur: \"2px\",\n },\n elevation: {\n 1: \"0 1px 2px rgb(0 0 0 / 0.05)\",\n 2: \"0 1px 3px rgb(0 0 0 / 0.10), 0 1px 2px rgb(0 0 0 / 0.06)\",\n 3: \"0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10)\",\n 4: \"0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10)\",\n 6: \"0 20px 25px -5px rgb(0 0 0 / 0.12), 0 8px 10px -6px rgb(0 0 0 / 0.10)\",\n 8: \"0 25px 50px -12px rgb(0 0 0 / 0.20)\",\n 12: \"0 35px 60px -15px rgb(0 0 0 / 0.22)\",\n 16: \"0 45px 80px -20px rgb(0 0 0 / 0.25)\",\n 24: \"0 60px 100px -25px rgb(0 0 0 / 0.30)\",\n },\n motion: {\n fast: \"120ms\",\n normal: \"200ms\",\n slow: \"320ms\",\n easingStandard: \"cubic-bezier(0.2, 0, 0, 1)\",\n easingIn: \"cubic-bezier(0.4, 0, 1, 1)\",\n easingOut: \"cubic-bezier(0, 0, 0.2, 1)\",\n },\n zIndex: {\n base: \"0\",\n dropdown: \"100\",\n sticky: \"200\",\n navigation: \"250\",\n overlay: \"300\",\n modal: \"400\",\n popover: \"500\",\n toast: \"600\",\n tooltip: \"700\",\n },\n};\n\nexport const COLOR_THEMES = {\n \"cobalt-sky\": {\n light: {\n background: \"#F8FAFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F1F5F9\",\n text: \"#0F172A\",\n textMuted: \"#64748B\",\n textSubtle: \"#94A3B8\",\n border: \"#E2E8F0\",\n borderStrong: \"#CBD5E1\",\n primary: \"#2563EB\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#1E3A8A\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#0EA5E9\",\n accentForeground: \"#FFFFFF\",\n ring: \"#93C5FD\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#B45309\",\n warningForeground: \"#FFFFFF\",\n danger: \"#DC2626\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#60A5FA\",\n primaryForeground: \"#0F172A\",\n secondary: \"#93C5FD\",\n secondaryForeground: \"#0F172A\",\n accent: \"#38BDF8\",\n accentForeground: \"#082F49\",\n },\n },\n \"violet-dream\": {\n light: {\n background: \"#FAF9FF\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F3EEFF\",\n text: \"#1E1B4B\",\n textMuted: \"#6D688A\",\n textSubtle: \"#9691B5\",\n border: \"#E7E2F5\",\n borderStrong: \"#C9C0E8\",\n primary: \"#6D28D9\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#5B21B6\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#A855F7\",\n accentForeground: \"#FFFFFF\",\n ring: \"#C4B5FD\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#BE123C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#2563EB\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#A78BFA\",\n primaryForeground: \"#1E1B4B\",\n secondary: \"#C4B5FD\",\n secondaryForeground: \"#1E1B4B\",\n accent: \"#D8B4FE\",\n accentForeground: \"#2E1065\",\n },\n },\n \"emerald-forest\": {\n light: {\n background: \"#F7FCF9\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EAF7F0\",\n text: \"#102A22\",\n textMuted: \"#527568\",\n textSubtle: \"#829F93\",\n border: \"#D7EDE2\",\n borderStrong: \"#A8D8C1\",\n primary: \"#047857\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#065F46\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#10B981\",\n accentForeground: \"#FFFFFF\",\n ring: \"#6EE7B7\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#34D399\",\n primaryForeground: \"#052E22\",\n secondary: \"#6EE7B7\",\n secondaryForeground: \"#064E3B\",\n accent: \"#6EE7B7\",\n accentForeground: \"#064E3B\",\n },\n },\n \"coral-navy\": {\n light: {\n background: \"#FAFAFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F3F1F5\",\n text: \"#1C2333\",\n textMuted: \"#667085\",\n textSubtle: \"#9299A8\",\n border: \"#E5E7EB\",\n borderStrong: \"#C7CDD6\",\n primary: \"#F97316\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#334155\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#E11D48\",\n accentForeground: \"#FFFFFF\",\n ring: \"#FDBA74\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#FB923C\",\n primaryForeground: \"#431407\",\n secondary: \"#94A3B8\",\n secondaryForeground: \"#0F172A\",\n accent: \"#FB7185\",\n accentForeground: \"#4C0519\",\n },\n },\n \"ocean-blue\": {\n light: {\n background: \"#F6FAFF\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EAF3FC\",\n text: \"#102A43\",\n textMuted: \"#526D82\",\n textSubtle: \"#8299AC\",\n border: \"#D8E7F4\",\n borderStrong: \"#B7D1E7\",\n primary: \"#0284C7\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#075985\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#06B6D4\",\n accentForeground: \"#FFFFFF\",\n ring: \"#7DD3FC\",\n success: \"#0F9D75\",\n successForeground: \"#FFFFFF\",\n warning: \"#B45309\",\n warningForeground: \"#FFFFFF\",\n danger: \"#DC2626\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#38BDF8\",\n primaryForeground: \"#082F49\",\n secondary: \"#7DD3FC\",\n secondaryForeground: \"#082F49\",\n accent: \"#22D3EE\",\n accentForeground: \"#083344\",\n },\n },\n \"mint-graphite\": {\n light: {\n background: \"#F8FBFA\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EEF5F3\",\n text: \"#172321\",\n textMuted: \"#5D716D\",\n textSubtle: \"#8A9D99\",\n border: \"#DCE8E5\",\n borderStrong: \"#B9D0CA\",\n primary: \"#0D9488\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#334155\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#84CC16\",\n accentForeground: \"#1A2E05\",\n ring: \"#5EEAD4\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#2DD4BF\",\n primaryForeground: \"#042F2E\",\n secondary: \"#94A3B8\",\n secondaryForeground: \"#0F172A\",\n accent: \"#A3E635\",\n accentForeground: \"#1A2E05\",\n },\n },\n \"plum-rose\": {\n light: {\n background: \"#FFFAFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F9EEF4\",\n text: \"#2B1D2A\",\n textMuted: \"#795F73\",\n textSubtle: \"#A18A9B\",\n border: \"#EEDDE7\",\n borderStrong: \"#D8BCCD\",\n primary: \"#9333EA\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#6B214F\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#E11D48\",\n accentForeground: \"#FFFFFF\",\n ring: \"#D8B4FE\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#C084FC\",\n primaryForeground: \"#3B0764\",\n secondary: \"#E9A8D4\",\n secondaryForeground: \"#500724\",\n accent: \"#FB7185\",\n accentForeground: \"#4C0519\",\n },\n },\n \"graphite-cyan\": {\n light: {\n background: \"#F7FAFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EDF2F7\",\n text: \"#1A202C\",\n textMuted: \"#4A5568\",\n textSubtle: \"#718096\",\n border: \"#E2E8F0\",\n borderStrong: \"#CBD5E0\",\n primary: \"#0F766E\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#334155\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#0891B2\",\n accentForeground: \"#FFFFFF\",\n ring: \"#67E8F9\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#2DD4BF\",\n primaryForeground: \"#042F2E\",\n secondary: \"#94A3B8\",\n secondaryForeground: \"#0F172A\",\n accent: \"#22D3EE\",\n accentForeground: \"#083344\",\n },\n },\n \"soft-white-terracotta\": {\n light: {\n background: \"#FCFCFB\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F4F3F1\",\n text: \"#242321\",\n textMuted: \"#686662\",\n textSubtle: \"#92908A\",\n border: \"#E7E5E1\",\n borderStrong: \"#D0CCC5\",\n primary: \"#C2410C\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#44403C\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#0F766E\",\n accentForeground: \"#FFFFFF\",\n ring: \"#FDBA74\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#FB923C\",\n primaryForeground: \"#431407\",\n secondary: \"#A8A29E\",\n secondaryForeground: \"#1C1917\",\n accent: \"#2DD4BF\",\n accentForeground: \"#042F2E\",\n },\n },\n \"electric-indigo\": {\n light: {\n background: \"#F8FAFF\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EEF2FF\",\n text: \"#171A35\",\n textMuted: \"#5F6485\",\n textSubtle: \"#8B91B3\",\n border: \"#E0E5F5\",\n borderStrong: \"#C4CBE6\",\n primary: \"#4F46E5\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#3730A3\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#DB2777\",\n accentForeground: \"#FFFFFF\",\n ring: \"#A5B4FC\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#A16207\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#818CF8\",\n primaryForeground: \"#1E1B4B\",\n secondary: \"#A5B4FC\",\n secondaryForeground: \"#1E1B4B\",\n accent: \"#F472B6\",\n accentForeground: \"#500724\",\n },\n },\n} as const satisfies Record<string, ColorTheme>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.cjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type { ColorTheme, ThemeTokens } from \"./types\";\n\nexport const GENERIC_FAMILIES = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"fangsong\",\n \"emoji\",\n]);\n\nexport const DEFAULT_TOKENS: ThemeTokens = {\n colorSchemes: {\n light: {\n background: \"#FCFCFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F0F0F0\",\n text: \"#171A35\",\n textMuted: \"#5F6485\",\n textSubtle: \"#8B91B3\",\n border: \"#E0E5F5\",\n borderStrong: \"#C4CBE6\",\n primary: \"#0277B5\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#475569\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#6D28D9\",\n accentForeground: \"#FFFFFF\",\n ring: \"#A5B4FC\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#1D4ED8\",\n infoForeground: \"#FFFFFF\",\n },\n\n dark: {\n background: \"#111518\",\n surface: \"#1c2226\",\n surfaceElevated: \"#242c31\",\n surfaceSunken: \"#0d1113\",\n text: \"#f5f5f5\",\n textMuted: \"#a4adb3\",\n textSubtle: \"#8c969d\",\n border: \"#343c42\",\n borderStrong: \"#4a555d\",\n primary: \"#38BDF8\",\n primaryForeground: \"#082F49\",\n secondary: \"#94A3B8\",\n secondaryForeground: \"#0F172A\",\n accent: \"#C4B5FD\",\n accentForeground: \"#1E1B4B\",\n ring: \"#93c5fd\",\n success: \"#4ade80\",\n successForeground: \"#052e16\",\n warning: \"#fbbf24\",\n warningForeground: \"#422006\",\n danger: \"#f87171\",\n dangerForeground: \"#450a0a\",\n info: \"#818CF8\",\n infoForeground: \"#1E1B4B\",\n },\n },\n typography: {\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n base: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n },\n fontWeight: {\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n },\n lineHeight: {\n none: \"1\",\n tight: \"1.15\",\n snug: \"1.3\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n },\n letterSpacing: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n },\n fontGap: {\n headingStackGap: \"0.3em\",\n headingParagraphGap: \"0.65em\",\n paragraphGap: \"1em\",\n sectionGap: \"1.5em\",\n },\n },\n spacing: {\n 0: \"0\",\n px: \"1px\",\n \"0.5\": \"0.125rem\",\n 1: \"0.25rem\",\n \"1.5\": \"0.375rem\",\n 2: \"0.5rem\",\n 3: \"0.75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 8: \"2rem\",\n 10: \"2.5rem\",\n 12: \"3rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n },\n radius: {\n none: \"0\",\n sm: \"0.125rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\",\n },\n shadows: {\n none: \"none\",\n xs: \"0 1px 2px 0 rgb(15 23 42 / 0.05)\",\n sm: \"0 1px 3px 0 rgb(15 23 42 / 0.1), 0 1px 2px -1px rgb(15 23 42 / 0.1)\",\n md: \"0 4px 6px -1px rgb(15 23 42 / 0.1), 0 2px 4px -2px rgb(15 23 42 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(15 23 42 / 0.1), 0 4px 6px -4px rgb(15 23 42 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(15 23 42 / 0.1), 0 8px 10px -6px rgb(15 23 42 / 0.1)\",\n },\n borders: {\n width: \"1px\",\n widthStrong: \"2px\",\n style: \"solid\",\n },\n breakpoints: {\n tablet: \"768px\",\n desktop: \"1024px\",\n hd: \"1440px\",\n },\n layout: {\n container: \"80rem\",\n content: \"64rem\",\n prose: \"65ch\",\n },\n overlays: {\n backdrop: \"rgb(0 0 0 / 0.35)\",\n backdropBlur: \"2px\",\n },\n elevation: {\n 1: \"0 1px 2px rgb(0 0 0 / 0.05)\",\n 2: \"0 1px 3px rgb(0 0 0 / 0.10), 0 1px 2px rgb(0 0 0 / 0.06)\",\n 3: \"0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10)\",\n 4: \"0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10)\",\n 6: \"0 20px 25px -5px rgb(0 0 0 / 0.12), 0 8px 10px -6px rgb(0 0 0 / 0.10)\",\n 8: \"0 25px 50px -12px rgb(0 0 0 / 0.20)\",\n 12: \"0 35px 60px -15px rgb(0 0 0 / 0.22)\",\n 16: \"0 45px 80px -20px rgb(0 0 0 / 0.25)\",\n 24: \"0 60px 100px -20px rgb(0 0 0 / 0.40), 0 24px 40px -12px rgb(0 0 0 / 0.25)\",\n },\n motion: {\n fast: \"120ms\",\n normal: \"200ms\",\n slow: \"320ms\",\n easingStandard: \"cubic-bezier(0.2, 0, 0, 1)\",\n easingIn: \"cubic-bezier(0.4, 0, 1, 1)\",\n easingOut: \"cubic-bezier(0, 0, 0.2, 1)\",\n },\n zIndex: {\n base: \"0\",\n dropdown: \"100\",\n sticky: \"200\",\n navigation: \"250\",\n overlay: \"300\",\n modal: \"400\",\n popover: \"500\",\n toast: \"600\",\n tooltip: \"700\",\n },\n};\n\nexport const COLOR_THEMES = {\n \"cobalt-sky\": {\n light: {\n background: \"#F8FAFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F1F5F9\",\n text: \"#0F172A\",\n textMuted: \"#64748B\",\n textSubtle: \"#94A3B8\",\n border: \"#E2E8F0\",\n borderStrong: \"#CBD5E1\",\n primary: \"#2563EB\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#1E3A8A\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#0EA5E9\",\n accentForeground: \"#FFFFFF\",\n ring: \"#93C5FD\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#B45309\",\n warningForeground: \"#FFFFFF\",\n danger: \"#DC2626\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#60A5FA\",\n primaryForeground: \"#0F172A\",\n secondary: \"#93C5FD\",\n secondaryForeground: \"#0F172A\",\n accent: \"#38BDF8\",\n accentForeground: \"#082F49\",\n },\n },\n \"violet-dream\": {\n light: {\n background: \"#FAF9FF\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F3EEFF\",\n text: \"#1E1B4B\",\n textMuted: \"#6D688A\",\n textSubtle: \"#9691B5\",\n border: \"#E7E2F5\",\n borderStrong: \"#C9C0E8\",\n primary: \"#6D28D9\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#5B21B6\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#A855F7\",\n accentForeground: \"#FFFFFF\",\n ring: \"#C4B5FD\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#BE123C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#2563EB\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#A78BFA\",\n primaryForeground: \"#1E1B4B\",\n secondary: \"#C4B5FD\",\n secondaryForeground: \"#1E1B4B\",\n accent: \"#D8B4FE\",\n accentForeground: \"#2E1065\",\n },\n },\n \"emerald-forest\": {\n light: {\n background: \"#F7FCF9\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EAF7F0\",\n text: \"#102A22\",\n textMuted: \"#527568\",\n textSubtle: \"#829F93\",\n border: \"#D7EDE2\",\n borderStrong: \"#A8D8C1\",\n primary: \"#047857\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#065F46\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#10B981\",\n accentForeground: \"#FFFFFF\",\n ring: \"#6EE7B7\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#34D399\",\n primaryForeground: \"#052E22\",\n secondary: \"#6EE7B7\",\n secondaryForeground: \"#064E3B\",\n accent: \"#6EE7B7\",\n accentForeground: \"#064E3B\",\n },\n },\n \"coral-navy\": {\n light: {\n background: \"#FAFAFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F3F1F5\",\n text: \"#1C2333\",\n textMuted: \"#667085\",\n textSubtle: \"#9299A8\",\n border: \"#E5E7EB\",\n borderStrong: \"#C7CDD6\",\n primary: \"#F97316\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#334155\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#E11D48\",\n accentForeground: \"#FFFFFF\",\n ring: \"#FDBA74\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#FB923C\",\n primaryForeground: \"#431407\",\n secondary: \"#94A3B8\",\n secondaryForeground: \"#0F172A\",\n accent: \"#FB7185\",\n accentForeground: \"#4C0519\",\n },\n },\n \"ocean-blue\": {\n light: {\n background: \"#F6FAFF\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EAF3FC\",\n text: \"#102A43\",\n textMuted: \"#526D82\",\n textSubtle: \"#8299AC\",\n border: \"#D8E7F4\",\n borderStrong: \"#B7D1E7\",\n primary: \"#0284C7\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#075985\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#06B6D4\",\n accentForeground: \"#FFFFFF\",\n ring: \"#7DD3FC\",\n success: \"#0F9D75\",\n successForeground: \"#FFFFFF\",\n warning: \"#B45309\",\n warningForeground: \"#FFFFFF\",\n danger: \"#DC2626\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#38BDF8\",\n primaryForeground: \"#082F49\",\n secondary: \"#7DD3FC\",\n secondaryForeground: \"#082F49\",\n accent: \"#22D3EE\",\n accentForeground: \"#083344\",\n },\n },\n \"mint-graphite\": {\n light: {\n background: \"#F8FBFA\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EEF5F3\",\n text: \"#172321\",\n textMuted: \"#5D716D\",\n textSubtle: \"#8A9D99\",\n border: \"#DCE8E5\",\n borderStrong: \"#B9D0CA\",\n primary: \"#0D9488\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#334155\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#84CC16\",\n accentForeground: \"#1A2E05\",\n ring: \"#5EEAD4\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#2DD4BF\",\n primaryForeground: \"#042F2E\",\n secondary: \"#94A3B8\",\n secondaryForeground: \"#0F172A\",\n accent: \"#A3E635\",\n accentForeground: \"#1A2E05\",\n },\n },\n \"plum-rose\": {\n light: {\n background: \"#FFFAFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F9EEF4\",\n text: \"#2B1D2A\",\n textMuted: \"#795F73\",\n textSubtle: \"#A18A9B\",\n border: \"#EEDDE7\",\n borderStrong: \"#D8BCCD\",\n primary: \"#9333EA\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#6B214F\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#E11D48\",\n accentForeground: \"#FFFFFF\",\n ring: \"#D8B4FE\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#C084FC\",\n primaryForeground: \"#3B0764\",\n secondary: \"#E9A8D4\",\n secondaryForeground: \"#500724\",\n accent: \"#FB7185\",\n accentForeground: \"#4C0519\",\n },\n },\n \"graphite-cyan\": {\n light: {\n background: \"#F7FAFC\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EDF2F7\",\n text: \"#1A202C\",\n textMuted: \"#4A5568\",\n textSubtle: \"#718096\",\n border: \"#E2E8F0\",\n borderStrong: \"#CBD5E0\",\n primary: \"#0F766E\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#334155\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#0891B2\",\n accentForeground: \"#FFFFFF\",\n ring: \"#67E8F9\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#2DD4BF\",\n primaryForeground: \"#042F2E\",\n secondary: \"#94A3B8\",\n secondaryForeground: \"#0F172A\",\n accent: \"#22D3EE\",\n accentForeground: \"#083344\",\n },\n },\n \"soft-white-terracotta\": {\n light: {\n background: \"#FCFCFB\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#F4F3F1\",\n text: \"#242321\",\n textMuted: \"#686662\",\n textSubtle: \"#92908A\",\n border: \"#E7E5E1\",\n borderStrong: \"#D0CCC5\",\n primary: \"#C2410C\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#44403C\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#0F766E\",\n accentForeground: \"#FFFFFF\",\n ring: \"#FDBA74\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#FB923C\",\n primaryForeground: \"#431407\",\n secondary: \"#A8A29E\",\n secondaryForeground: \"#1C1917\",\n accent: \"#2DD4BF\",\n accentForeground: \"#042F2E\",\n },\n },\n \"electric-indigo\": {\n light: {\n background: \"#F8FAFF\",\n surface: \"#FFFFFF\",\n surfaceElevated: \"#FFFFFF\",\n surfaceSunken: \"#EEF2FF\",\n text: \"#171A35\",\n textMuted: \"#5F6485\",\n textSubtle: \"#8B91B3\",\n border: \"#E0E5F5\",\n borderStrong: \"#C4CBE6\",\n primary: \"#4F46E5\",\n primaryForeground: \"#FFFFFF\",\n secondary: \"#3730A3\",\n secondaryForeground: \"#FFFFFF\",\n accent: \"#DB2777\",\n accentForeground: \"#FFFFFF\",\n ring: \"#A5B4FC\",\n success: \"#15803D\",\n successForeground: \"#FFFFFF\",\n warning: \"#FABC0A\",\n warningForeground: \"#FFFFFF\",\n danger: \"#B91C1C\",\n dangerForeground: \"#FFFFFF\",\n info: \"#0369A1\",\n infoForeground: \"#FFFFFF\",\n },\n dark: {\n primary: \"#818CF8\",\n primaryForeground: \"#1E1B4B\",\n secondary: \"#A5B4FC\",\n secondaryForeground: \"#1E1B4B\",\n accent: \"#F472B6\",\n accentForeground: \"#500724\",\n },\n },\n} as const satisfies Record<string, ColorTheme>;\n"],"mappings":"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"}
|
package/dist/constants.d.cts
CHANGED
|
@@ -56,7 +56,7 @@ export declare const COLOR_THEMES: {
|
|
|
56
56
|
readonly ring: "#C4B5FD";
|
|
57
57
|
readonly success: "#15803D";
|
|
58
58
|
readonly successForeground: "#FFFFFF";
|
|
59
|
-
readonly warning: "#
|
|
59
|
+
readonly warning: "#FABC0A";
|
|
60
60
|
readonly warningForeground: "#FFFFFF";
|
|
61
61
|
readonly danger: "#BE123C";
|
|
62
62
|
readonly dangerForeground: "#FFFFFF";
|
|
@@ -92,7 +92,7 @@ export declare const COLOR_THEMES: {
|
|
|
92
92
|
readonly ring: "#6EE7B7";
|
|
93
93
|
readonly success: "#15803D";
|
|
94
94
|
readonly successForeground: "#FFFFFF";
|
|
95
|
-
readonly warning: "#
|
|
95
|
+
readonly warning: "#FABC0A";
|
|
96
96
|
readonly warningForeground: "#FFFFFF";
|
|
97
97
|
readonly danger: "#B91C1C";
|
|
98
98
|
readonly dangerForeground: "#FFFFFF";
|
|
@@ -128,7 +128,7 @@ export declare const COLOR_THEMES: {
|
|
|
128
128
|
readonly ring: "#FDBA74";
|
|
129
129
|
readonly success: "#15803D";
|
|
130
130
|
readonly successForeground: "#FFFFFF";
|
|
131
|
-
readonly warning: "#
|
|
131
|
+
readonly warning: "#FABC0A";
|
|
132
132
|
readonly warningForeground: "#FFFFFF";
|
|
133
133
|
readonly danger: "#B91C1C";
|
|
134
134
|
readonly dangerForeground: "#FFFFFF";
|
|
@@ -200,7 +200,7 @@ export declare const COLOR_THEMES: {
|
|
|
200
200
|
readonly ring: "#5EEAD4";
|
|
201
201
|
readonly success: "#15803D";
|
|
202
202
|
readonly successForeground: "#FFFFFF";
|
|
203
|
-
readonly warning: "#
|
|
203
|
+
readonly warning: "#FABC0A";
|
|
204
204
|
readonly warningForeground: "#FFFFFF";
|
|
205
205
|
readonly danger: "#B91C1C";
|
|
206
206
|
readonly dangerForeground: "#FFFFFF";
|
|
@@ -236,7 +236,7 @@ export declare const COLOR_THEMES: {
|
|
|
236
236
|
readonly ring: "#D8B4FE";
|
|
237
237
|
readonly success: "#15803D";
|
|
238
238
|
readonly successForeground: "#FFFFFF";
|
|
239
|
-
readonly warning: "#
|
|
239
|
+
readonly warning: "#FABC0A";
|
|
240
240
|
readonly warningForeground: "#FFFFFF";
|
|
241
241
|
readonly danger: "#B91C1C";
|
|
242
242
|
readonly dangerForeground: "#FFFFFF";
|
|
@@ -272,7 +272,7 @@ export declare const COLOR_THEMES: {
|
|
|
272
272
|
readonly ring: "#67E8F9";
|
|
273
273
|
readonly success: "#15803D";
|
|
274
274
|
readonly successForeground: "#FFFFFF";
|
|
275
|
-
readonly warning: "#
|
|
275
|
+
readonly warning: "#FABC0A";
|
|
276
276
|
readonly warningForeground: "#FFFFFF";
|
|
277
277
|
readonly danger: "#B91C1C";
|
|
278
278
|
readonly dangerForeground: "#FFFFFF";
|
|
@@ -308,7 +308,7 @@ export declare const COLOR_THEMES: {
|
|
|
308
308
|
readonly ring: "#FDBA74";
|
|
309
309
|
readonly success: "#15803D";
|
|
310
310
|
readonly successForeground: "#FFFFFF";
|
|
311
|
-
readonly warning: "#
|
|
311
|
+
readonly warning: "#FABC0A";
|
|
312
312
|
readonly warningForeground: "#FFFFFF";
|
|
313
313
|
readonly danger: "#B91C1C";
|
|
314
314
|
readonly dangerForeground: "#FFFFFF";
|
|
@@ -344,7 +344,7 @@ export declare const COLOR_THEMES: {
|
|
|
344
344
|
readonly ring: "#A5B4FC";
|
|
345
345
|
readonly success: "#15803D";
|
|
346
346
|
readonly successForeground: "#FFFFFF";
|
|
347
|
-
readonly warning: "#
|
|
347
|
+
readonly warning: "#FABC0A";
|
|
348
348
|
readonly warningForeground: "#FFFFFF";
|
|
349
349
|
readonly danger: "#B91C1C";
|
|
350
350
|
readonly dangerForeground: "#FFFFFF";
|