@digdir/designsystemet 0.0.0-chore-remove-cli-tsx-20260701060359
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/LICENSE +7 -0
- package/README.md +104 -0
- package/dist/bin/config.d.ts +14 -0
- package/dist/bin/config.d.ts.map +1 -0
- package/dist/bin/config.js +58 -0
- package/dist/bin/config.js.map +1 -0
- package/dist/bin/designsystemet.d.ts +1 -0
- package/dist/bin/designsystemet.js +174 -0
- package/dist/bin/designsystemet.js.map +1 -0
- package/dist/bin/options.d.ts +24 -0
- package/dist/bin/options.d.ts.map +1 -0
- package/dist/bin/options.js +25 -0
- package/dist/bin/options.js.map +1 -0
- package/dist/config.schema.json +181 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BorderValues.js +11 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BorderValues.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BoxShadowTypes.js +10 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BoxShadowTypes.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BoxShadowValues.js +15 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BoxShadowValues.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/ColorModifierTypes.js +12 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/ColorModifierTypes.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/ColorSpaceTypes.js +12 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/ColorSpaceTypes.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/Properties.js +55 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/Properties.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/StrokeStyleValues.js +16 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/StrokeStyleValues.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenSetStatus.d.ts +11 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenSetStatus.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenSetStatus.js +11 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenSetStatus.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenTypes.js +34 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenTypes.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TypographyValues.js +17 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TypographyValues.js.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/types/ThemeObject.d.ts +16 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/types/ThemeObject.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/types/index.js +11 -0
- package/dist/package.js +7 -0
- package/dist/package.js.map +1 -0
- package/dist/src/automigrate.d.ts +5 -0
- package/dist/src/automigrate.d.ts.map +1 -0
- package/dist/src/automigrate.js +35 -0
- package/dist/src/automigrate.js.map +1 -0
- package/dist/src/colors/colorMetadata.d.ts +60 -0
- package/dist/src/colors/colorMetadata.d.ts.map +1 -0
- package/dist/src/colors/colorMetadata.js +261 -0
- package/dist/src/colors/colorMetadata.js.map +1 -0
- package/dist/src/colors/index.d.ts +5 -0
- package/dist/src/colors/index.js +5 -0
- package/dist/src/colors/theme.d.ts +34 -0
- package/dist/src/colors/theme.d.ts.map +1 -0
- package/dist/src/colors/theme.js +113 -0
- package/dist/src/colors/theme.js.map +1 -0
- package/dist/src/colors/types.d.ts +67 -0
- package/dist/src/colors/types.d.ts.map +1 -0
- package/dist/src/colors/types.js +26 -0
- package/dist/src/colors/types.js.map +1 -0
- package/dist/src/colors/utils.d.ts +132 -0
- package/dist/src/colors/utils.d.ts.map +1 -0
- package/dist/src/colors/utils.js +246 -0
- package/dist/src/colors/utils.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.js +11 -0
- package/dist/src/migrations/beta-to-v1.d.ts +5 -0
- package/dist/src/migrations/beta-to-v1.d.ts.map +1 -0
- package/dist/src/migrations/beta-to-v1.js +342 -0
- package/dist/src/migrations/beta-to-v1.js.map +1 -0
- package/dist/src/migrations/codemods/css/plugins.d.ts +9 -0
- package/dist/src/migrations/codemods/css/plugins.d.ts.map +1 -0
- package/dist/src/migrations/codemods/css/plugins.js +37 -0
- package/dist/src/migrations/codemods/css/plugins.js.map +1 -0
- package/dist/src/migrations/codemods/css/run.d.ts +14 -0
- package/dist/src/migrations/codemods/css/run.d.ts.map +1 -0
- package/dist/src/migrations/codemods/css/run.js +25 -0
- package/dist/src/migrations/codemods/css/run.js.map +1 -0
- package/dist/src/migrations/color-rename-next49.d.ts +5 -0
- package/dist/src/migrations/color-rename-next49.d.ts.map +1 -0
- package/dist/src/migrations/color-rename-next49.js +48 -0
- package/dist/src/migrations/color-rename-next49.js.map +1 -0
- package/dist/src/migrations/flatten-color-categories.d.ts +12 -0
- package/dist/src/migrations/flatten-color-categories.d.ts.map +1 -0
- package/dist/src/migrations/flatten-color-categories.js +58 -0
- package/dist/src/migrations/flatten-color-categories.js.map +1 -0
- package/dist/src/migrations/index.d.ts +17 -0
- package/dist/src/migrations/index.d.ts.map +1 -0
- package/dist/src/migrations/index.js +13 -0
- package/dist/src/migrations/index.js.map +1 -0
- package/dist/src/schemas/helpers.d.ts +42 -0
- package/dist/src/schemas/helpers.d.ts.map +1 -0
- package/dist/src/schemas/helpers.js +96 -0
- package/dist/src/schemas/helpers.js.map +1 -0
- package/dist/src/schemas/v1/schema.d.ts +173 -0
- package/dist/src/schemas/v1/schema.d.ts.map +1 -0
- package/dist/src/schemas/v1/schema.js +65 -0
- package/dist/src/schemas/v1/schema.js.map +1 -0
- package/dist/src/schemas/v1.1/schema.d.ts +165 -0
- package/dist/src/schemas/v1.1/schema.d.ts.map +1 -0
- package/dist/src/schemas/v1.1/schema.js +56 -0
- package/dist/src/schemas/v1.1/schema.js.map +1 -0
- package/dist/src/tokens/build.d.ts +8 -0
- package/dist/src/tokens/build.d.ts.map +1 -0
- package/dist/src/tokens/build.js +43 -0
- package/dist/src/tokens/build.js.map +1 -0
- package/dist/src/tokens/create/files.d.ts +19 -0
- package/dist/src/tokens/create/files.d.ts.map +1 -0
- package/dist/src/tokens/create/files.js +48 -0
- package/dist/src/tokens/create/files.js.map +1 -0
- package/dist/src/tokens/create/generators/$designsystemet.d.ts +8 -0
- package/dist/src/tokens/create/generators/$designsystemet.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/$designsystemet.js +12 -0
- package/dist/src/tokens/create/generators/$designsystemet.js.map +1 -0
- package/dist/src/tokens/create/generators/$metadata.d.ts +15 -0
- package/dist/src/tokens/create/generators/$metadata.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/$metadata.js +25 -0
- package/dist/src/tokens/create/generators/$metadata.js.map +1 -0
- package/dist/src/tokens/create/generators/$themes.d.ts +28 -0
- package/dist/src/tokens/create/generators/$themes.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/$themes.js +158 -0
- package/dist/src/tokens/create/generators/$themes.js.map +1 -0
- package/dist/src/tokens/create/generators/primitives/color-scheme.d.ts +9 -0
- package/dist/src/tokens/create/generators/primitives/color-scheme.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/primitives/color-scheme.js +71 -0
- package/dist/src/tokens/create/generators/primitives/color-scheme.js.map +1 -0
- package/dist/src/tokens/create/generators/primitives/globals.d.ts +7 -0
- package/dist/src/tokens/create/generators/primitives/globals.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/primitives/globals.js +144 -0
- package/dist/src/tokens/create/generators/primitives/globals.js.map +1 -0
- package/dist/src/tokens/create/generators/primitives/size.d.ts +8 -0
- package/dist/src/tokens/create/generators/primitives/size.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/primitives/size.js +149 -0
- package/dist/src/tokens/create/generators/primitives/size.js.map +1 -0
- package/dist/src/tokens/create/generators/primitives/typography.d.ts +10 -0
- package/dist/src/tokens/create/generators/primitives/typography.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/primitives/typography.js +218 -0
- package/dist/src/tokens/create/generators/primitives/typography.js.map +1 -0
- package/dist/src/tokens/create/generators/semantic/color.d.ts +7 -0
- package/dist/src/tokens/create/generators/semantic/color.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/semantic/color.js +19 -0
- package/dist/src/tokens/create/generators/semantic/color.js.map +1 -0
- package/dist/src/tokens/create/generators/semantic/style.d.ts +7 -0
- package/dist/src/tokens/create/generators/semantic/style.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/semantic/style.js +420 -0
- package/dist/src/tokens/create/generators/semantic/style.js.map +1 -0
- package/dist/src/tokens/create/generators/themes/theme.d.ts +7 -0
- package/dist/src/tokens/create/generators/themes/theme.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/themes/theme.js +105 -0
- package/dist/src/tokens/create/generators/themes/theme.js.map +1 -0
- package/dist/src/tokens/create.d.ts +10 -0
- package/dist/src/tokens/create.d.ts.map +1 -0
- package/dist/src/tokens/create.js +40 -0
- package/dist/src/tokens/create.js.map +1 -0
- package/dist/src/tokens/format.d.ts +19 -0
- package/dist/src/tokens/format.d.ts.map +1 -0
- package/dist/src/tokens/format.js +42 -0
- package/dist/src/tokens/format.js.map +1 -0
- package/dist/src/tokens/generate-config.d.ts +14 -0
- package/dist/src/tokens/generate-config.d.ts.map +1 -0
- package/dist/src/tokens/generate-config.js +154 -0
- package/dist/src/tokens/generate-config.js.map +1 -0
- package/dist/src/tokens/index.d.ts +5 -0
- package/dist/src/tokens/index.js +4 -0
- package/dist/src/tokens/process/configs/color.d.ts +8 -0
- package/dist/src/tokens/process/configs/color.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/color.js +50 -0
- package/dist/src/tokens/process/configs/color.js.map +1 -0
- package/dist/src/tokens/process/configs/semantic.d.ts +7 -0
- package/dist/src/tokens/process/configs/semantic.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/semantic.js +49 -0
- package/dist/src/tokens/process/configs/semantic.js.map +1 -0
- package/dist/src/tokens/process/configs/shared.d.ts +14 -0
- package/dist/src/tokens/process/configs/shared.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/shared.js +21 -0
- package/dist/src/tokens/process/configs/shared.js.map +1 -0
- package/dist/src/tokens/process/configs/size-mode.d.ts +7 -0
- package/dist/src/tokens/process/configs/size-mode.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/size-mode.js +30 -0
- package/dist/src/tokens/process/configs/size-mode.js.map +1 -0
- package/dist/src/tokens/process/configs/size.d.ts +7 -0
- package/dist/src/tokens/process/configs/size.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/size.js +36 -0
- package/dist/src/tokens/process/configs/size.js.map +1 -0
- package/dist/src/tokens/process/configs/type-scale.d.ts +7 -0
- package/dist/src/tokens/process/configs/type-scale.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/type-scale.js +51 -0
- package/dist/src/tokens/process/configs/type-scale.js.map +1 -0
- package/dist/src/tokens/process/configs/typography.d.ts +7 -0
- package/dist/src/tokens/process/configs/typography.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/typography.js +66 -0
- package/dist/src/tokens/process/configs/typography.js.map +1 -0
- package/dist/src/tokens/process/configs.d.ts +18 -0
- package/dist/src/tokens/process/configs.d.ts.map +1 -0
- package/dist/src/tokens/process/configs.js +74 -0
- package/dist/src/tokens/process/configs.js.map +1 -0
- package/dist/src/tokens/process/formats/css/color.d.ts +8 -0
- package/dist/src/tokens/process/formats/css/color.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/color.js +64 -0
- package/dist/src/tokens/process/formats/css/color.js.map +1 -0
- package/dist/src/tokens/process/formats/css/semantic.d.ts +7 -0
- package/dist/src/tokens/process/formats/css/semantic.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/semantic.js +31 -0
- package/dist/src/tokens/process/formats/css/semantic.js.map +1 -0
- package/dist/src/tokens/process/formats/css/size-mode.d.ts +7 -0
- package/dist/src/tokens/process/formats/css/size-mode.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/size-mode.js +52 -0
- package/dist/src/tokens/process/formats/css/size-mode.js.map +1 -0
- package/dist/src/tokens/process/formats/css/size.d.ts +16 -0
- package/dist/src/tokens/process/formats/css/size.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/size.js +95 -0
- package/dist/src/tokens/process/formats/css/size.js.map +1 -0
- package/dist/src/tokens/process/formats/css/type-scale.d.ts +7 -0
- package/dist/src/tokens/process/formats/css/type-scale.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/type-scale.js +57 -0
- package/dist/src/tokens/process/formats/css/type-scale.js.map +1 -0
- package/dist/src/tokens/process/formats/css/typography.d.ts +7 -0
- package/dist/src/tokens/process/formats/css/typography.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/typography.js +31 -0
- package/dist/src/tokens/process/formats/css/typography.js.map +1 -0
- package/dist/src/tokens/process/formats/css.d.ts +15 -0
- package/dist/src/tokens/process/formats/css.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css.js +20 -0
- package/dist/src/tokens/process/formats/css.js.map +1 -0
- package/dist/src/tokens/process/output/declarations.d.ts +9 -0
- package/dist/src/tokens/process/output/declarations.d.ts.map +1 -0
- package/dist/src/tokens/process/output/declarations.js +38 -0
- package/dist/src/tokens/process/output/declarations.js.map +1 -0
- package/dist/src/tokens/process/output/tailwind.d.ts +7 -0
- package/dist/src/tokens/process/output/tailwind.d.ts.map +1 -0
- package/dist/src/tokens/process/output/tailwind.js +47 -0
- package/dist/src/tokens/process/output/tailwind.js.map +1 -0
- package/dist/src/tokens/process/output/theme.d.ts +31 -0
- package/dist/src/tokens/process/output/theme.d.ts.map +1 -0
- package/dist/src/tokens/process/output/theme.js +85 -0
- package/dist/src/tokens/process/output/theme.js.map +1 -0
- package/dist/src/tokens/process/platform.d.ts +69 -0
- package/dist/src/tokens/process/platform.d.ts.map +1 -0
- package/dist/src/tokens/process/platform.js +128 -0
- package/dist/src/tokens/process/platform.js.map +1 -0
- package/dist/src/tokens/process/transformers.d.ts +10 -0
- package/dist/src/tokens/process/transformers.d.ts.map +1 -0
- package/dist/src/tokens/process/transformers.js +56 -0
- package/dist/src/tokens/process/transformers.js.map +1 -0
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts +38 -0
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts.map +1 -0
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.js +112 -0
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.js.map +1 -0
- package/dist/src/tokens/process/utils/kebab-case.d.ts +8 -0
- package/dist/src/tokens/process/utils/kebab-case.d.ts.map +1 -0
- package/dist/src/tokens/process/utils/kebab-case.js +11 -0
- package/dist/src/tokens/process/utils/kebab-case.js.map +1 -0
- package/dist/src/tokens/types.d.ts +71 -0
- package/dist/src/tokens/types.d.ts.map +1 -0
- package/dist/src/tokens/types.js +1 -0
- package/dist/src/tokens/utils.d.ts +62 -0
- package/dist/src/tokens/utils.d.ts.map +1 -0
- package/dist/src/tokens/utils.js +123 -0
- package/dist/src/tokens/utils.js.map +1 -0
- package/dist/src/types.d.ts +1 -0
- package/dist/src/types.js +10 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/filesystem.d.ts +47 -0
- package/dist/src/utils/filesystem.d.ts.map +1 -0
- package/dist/src/utils/filesystem.js +117 -0
- package/dist/src/utils/filesystem.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { parseJsonc } from "../schemas/helpers.js";
|
|
2
|
+
import pc from "picocolors";
|
|
3
|
+
import { applyEdits, modify } from "jsonc-parser";
|
|
4
|
+
//#region src/migrations/flatten-color-categories.ts
|
|
5
|
+
const formattingOptions = {
|
|
6
|
+
insertSpaces: true,
|
|
7
|
+
tabSize: 2
|
|
8
|
+
};
|
|
9
|
+
const flattenColors = (colors) => {
|
|
10
|
+
const { main, support, neutral, ...restColors } = colors;
|
|
11
|
+
return {
|
|
12
|
+
...restColors,
|
|
13
|
+
...main,
|
|
14
|
+
...support,
|
|
15
|
+
neutral
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
const isOldColorSchema = (theme) => {
|
|
19
|
+
return theme.colors && Object.keys(theme.colors).length === 3 && theme.colors.main && theme.colors.support && theme.colors.neutral;
|
|
20
|
+
};
|
|
21
|
+
const isConfigWithOldColorSchema = (config) => {
|
|
22
|
+
const currentConfig = parseJsonc(config);
|
|
23
|
+
if (!currentConfig.themes) return false;
|
|
24
|
+
return Object.values(currentConfig.themes).some(isOldColorSchema);
|
|
25
|
+
};
|
|
26
|
+
const yes = (config) => {
|
|
27
|
+
const currentConfig = parseJsonc(config);
|
|
28
|
+
if (!currentConfig.themes) return config;
|
|
29
|
+
let text = config;
|
|
30
|
+
for (const [themeName, theme] of Object.entries(currentConfig.themes)) if (isOldColorSchema(theme)) {
|
|
31
|
+
const edits = modify(text, [
|
|
32
|
+
"themes",
|
|
33
|
+
themeName,
|
|
34
|
+
"colors"
|
|
35
|
+
], flattenColors(theme.colors), { formattingOptions });
|
|
36
|
+
text = applyEdits(text, edits);
|
|
37
|
+
}
|
|
38
|
+
return text;
|
|
39
|
+
};
|
|
40
|
+
const migration = {
|
|
41
|
+
name: "Flatten color categories",
|
|
42
|
+
check: isConfigWithOldColorSchema,
|
|
43
|
+
message: `Your config file uses the old color schema with ${pc.yellow("main")} and ${pc.yellow("support")} categories.\nThis required migration will move all colors under a single ${pc.yellow("colors")} per theme.\n`,
|
|
44
|
+
yes: (config) => {
|
|
45
|
+
const migratedConfig = yes(config);
|
|
46
|
+
console.log(pc.green(`\nConfig file successfully migrated.`));
|
|
47
|
+
return migratedConfig;
|
|
48
|
+
},
|
|
49
|
+
no: (config) => {
|
|
50
|
+
const migratedConfig = yes(config);
|
|
51
|
+
console.log(pc.yellow("\nUsing existing config file but migration was skipped.\n"));
|
|
52
|
+
return migratedConfig;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export { migration as default };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=flatten-color-categories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten-color-categories.js","names":[],"sources":["../../../src/migrations/flatten-color-categories.ts"],"sourcesContent":["// biome-ignore-all lint/suspicious/noExplicitAny: we have not kept old schema for types, so we need to use any here\nimport { applyEdits, modify } from 'jsonc-parser';\nimport pc from 'picocolors';\nimport { parseJsonc } from '../schemas/helpers.ts';\n\nconst formattingOptions = { insertSpaces: true, tabSize: 2 } as const;\n\nconst flattenColors = (colors: any) => {\n const { main, support, neutral, ...restColors } = colors;\n return {\n ...restColors,\n ...main,\n ...support,\n neutral,\n };\n};\n\ntype Automigrate = {\n name: string;\n check: (config: any) => boolean;\n message: string;\n yes: (config: string) => string;\n no: (config: string) => string;\n};\n\nconst isOldColorSchema = (theme: any): boolean => {\n return (\n theme.colors &&\n Object.keys(theme.colors).length === 3 &&\n theme.colors.main &&\n theme.colors.support &&\n theme.colors.neutral\n );\n};\n\nconst isConfigWithOldColorSchema = (config: any): boolean => {\n const currentConfig = parseJsonc<any>(config);\n\n if (!currentConfig.themes) {\n return false;\n }\n\n return Object.values(currentConfig.themes).some(isOldColorSchema);\n};\n\nconst yes = (config: string): string => {\n const currentConfig = parseJsonc<any>(config);\n\n if (!currentConfig.themes) {\n return config;\n }\n\n // Apply targeted edits to the original text instead of re-serializing the whole\n // config, so comments, formatting and trailing commas outside the color blocks\n // are preserved. Each edit replaces only an affected theme's `colors` subtree.\n let text = config;\n for (const [themeName, theme] of Object.entries<any>(currentConfig.themes)) {\n if (isOldColorSchema(theme)) {\n const edits = modify(text, ['themes', themeName, 'colors'], flattenColors(theme.colors), { formattingOptions });\n text = applyEdits(text, edits);\n }\n }\n\n return text;\n};\n\nconst migration: Automigrate = {\n name: 'Flatten color categories',\n check: isConfigWithOldColorSchema,\n message: `Your config file uses the old color schema with ${pc.yellow('main')} and ${pc.yellow('support')} categories.\\nThis required migration will move all colors under a single ${pc.yellow('colors')} per theme.\\n`,\n yes: (config: string): string => {\n const migratedConfig = yes(config);\n console.log(pc.green(`\\nConfig file successfully migrated.`));\n\n return migratedConfig;\n },\n no: (config: string): string => {\n // We still want to flatten the config file even if the user chooses not to migrate, as we need to maintain compatibility with the new schema. However, we won't write the migrated config back to the file system.\n const migratedConfig = yes(config);\n console.log(pc.yellow('\\nUsing existing config file but migration was skipped.\\n'));\n return migratedConfig;\n },\n};\n\nexport default migration;\n"],"mappings":";;;;AAKA,MAAM,oBAAoB;CAAE,cAAc;CAAM,SAAS;AAAE;AAE3D,MAAM,iBAAiB,WAAgB;CACrC,MAAM,EAAE,MAAM,SAAS,SAAS,GAAG,eAAe;CAClD,OAAO;EACL,GAAG;EACH,GAAG;EACH,GAAG;EACH;CACF;AACF;AAUA,MAAM,oBAAoB,UAAwB;CAChD,OACE,MAAM,UACN,OAAO,KAAK,MAAM,MAAM,CAAC,CAAC,WAAW,KACrC,MAAM,OAAO,QACb,MAAM,OAAO,WACb,MAAM,OAAO;AAEjB;AAEA,MAAM,8BAA8B,WAAyB;CAC3D,MAAM,gBAAgB,WAAgB,MAAM;CAE5C,IAAI,CAAC,cAAc,QACjB,OAAO;CAGT,OAAO,OAAO,OAAO,cAAc,MAAM,CAAC,CAAC,KAAK,gBAAgB;AAClE;AAEA,MAAM,OAAO,WAA2B;CACtC,MAAM,gBAAgB,WAAgB,MAAM;CAE5C,IAAI,CAAC,cAAc,QACjB,OAAO;CAMT,IAAI,OAAO;CACX,KAAK,MAAM,CAAC,WAAW,UAAU,OAAO,QAAa,cAAc,MAAM,GACvE,IAAI,iBAAiB,KAAK,GAAG;EAC3B,MAAM,QAAQ,OAAO,MAAM;GAAC;GAAU;GAAW;EAAQ,GAAG,cAAc,MAAM,MAAM,GAAG,EAAE,kBAAkB,CAAC;EAC9G,OAAO,WAAW,MAAM,KAAK;CAC/B;CAGF,OAAO;AACT;AAEA,MAAM,YAAyB;CAC7B,MAAM;CACN,OAAO;CACP,SAAS,mDAAmD,GAAG,OAAO,MAAM,EAAE,OAAO,GAAG,OAAO,SAAS,EAAE,4EAA4E,GAAG,OAAO,QAAQ,EAAE;CAC1M,MAAM,WAA2B;EAC/B,MAAM,iBAAiB,IAAI,MAAM;EACjC,QAAQ,IAAI,GAAG,MAAM,sCAAsC,CAAC;EAE5D,OAAO;CACT;CACA,KAAK,WAA2B;EAE9B,MAAM,iBAAiB,IAAI,MAAM;EACjC,QAAQ,IAAI,GAAG,OAAO,2DAA2D,CAAC;EAClF,OAAO;CACT;AACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/migrations/index.d.ts
|
|
2
|
+
declare const automigrations: {
|
|
3
|
+
colorCategoryFlattening: {
|
|
4
|
+
name: string;
|
|
5
|
+
check: (config: any) => boolean;
|
|
6
|
+
message: string;
|
|
7
|
+
yes: (config: string) => string;
|
|
8
|
+
no: (config: string) => string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
declare const _default: {
|
|
12
|
+
'css-beta-to-v1': (glob?: string) => Promise<void>;
|
|
13
|
+
'css-renames-next48-to-next49': (glob?: string) => Promise<void>;
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { automigrations, _default as default };
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/migrations/index.ts"],"mappings":";cAIa,cAAA;;;;;;;;;cAEX,QAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import beta_to_v1_default from "./beta-to-v1.js";
|
|
2
|
+
import color_rename_next49_default from "./color-rename-next49.js";
|
|
3
|
+
import migration from "./flatten-color-categories.js";
|
|
4
|
+
//#region src/migrations/index.ts
|
|
5
|
+
const automigrations = { colorCategoryFlattening: migration };
|
|
6
|
+
var migrations_default = {
|
|
7
|
+
"css-beta-to-v1": beta_to_v1_default,
|
|
8
|
+
"css-renames-next48-to-next49": color_rename_next49_default
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { automigrations, migrations_default as default };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["flattenColorCategories","betaToV1","colorRenameNext49"],"sources":["../../../src/migrations/index.ts"],"sourcesContent":["import betaToV1 from './beta-to-v1.ts';\nimport colorRenameNext49 from './color-rename-next49.ts';\nimport flattenColorCategories from './flatten-color-categories.ts';\n\nexport const automigrations = {\n colorCategoryFlattening: flattenColorCategories,\n};\n\nexport default {\n 'css-beta-to-v1': betaToV1,\n 'css-renames-next48-to-next49': colorRenameNext49,\n};\n"],"mappings":";;;;AAIA,MAAa,iBAAiB,EAC5B,yBAAyBA,UAC3B;AAEA,IAAA,qBAAe;CACb,kBAAkBC;CAClB,gCAAgCC;AAClC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/schemas/helpers.d.ts
|
|
4
|
+
declare const deprecatedCLIOptions: {
|
|
5
|
+
readonly outDir: "out-dir";
|
|
6
|
+
readonly clean: "clean";
|
|
7
|
+
readonly tailwind: "tailwind";
|
|
8
|
+
readonly theme: {
|
|
9
|
+
readonly colors: {
|
|
10
|
+
readonly main: "main-colors";
|
|
11
|
+
readonly support: "support-colors";
|
|
12
|
+
readonly neutral: "neutral-color";
|
|
13
|
+
};
|
|
14
|
+
readonly typography: {
|
|
15
|
+
readonly fontFamily: "font-family";
|
|
16
|
+
};
|
|
17
|
+
readonly borderRadius: "border-radius";
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Validates a configuration object against a provided Zod schema.
|
|
22
|
+
*
|
|
23
|
+
* @template T - The expected type of the validated configuration.
|
|
24
|
+
* @param schema - A Zod schema used to validate the configuration object.
|
|
25
|
+
* @param unvalidatedConfig - The configuration object to validate.
|
|
26
|
+
* @returns The validated configuration object, typed as T.
|
|
27
|
+
* @throws Exits the process with code 1 if validation fails, after logging a friendly error message.
|
|
28
|
+
*/
|
|
29
|
+
declare function validateConfig<T>(schema: z.ZodType<T>, unvalidatedConfig: Record<string, unknown>, configFilePath: string): T;
|
|
30
|
+
/**
|
|
31
|
+
* Parses a JSONC string (JSON with comments and trailing commas).
|
|
32
|
+
*
|
|
33
|
+
* @template T - The expected type of the parsed value.
|
|
34
|
+
* @param content - The JSONC string to parse.
|
|
35
|
+
* @returns The parsed value, typed as T.
|
|
36
|
+
* @throws SyntaxError if the content contains syntax errors.
|
|
37
|
+
*/
|
|
38
|
+
declare function parseJsonc<T>(content: string): T;
|
|
39
|
+
declare function parseConfig<T>(configFile: string, configFilePath: string): T;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { deprecatedCLIOptions, parseConfig, parseJsonc, validateConfig };
|
|
42
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","names":[],"sources":["../../../src/schemas/helpers.ts"],"mappings":";;;cAMa,oBAAA;EAAA;;;;;;;;;;;;;;;;;;AA0Db;;;;;;iBAAgB,cAAA,IACd,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,CAAA,GAClB,iBAAA,EAAmB,MAAA,mBACnB,cAAA,WACC,CAAA;;;;;;;;;iBAoBa,UAAA,IAAc,OAAA,WAAkB,CAAC;AAAA,iBAmBjC,WAAA,IAAe,UAAA,UAAoB,cAAA,WAAyB,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import pc from "picocolors";
|
|
2
|
+
import * as R from "ramda";
|
|
3
|
+
import { parse, printParseErrorCode } from "jsonc-parser";
|
|
4
|
+
import { fromError } from "zod-validation-error";
|
|
5
|
+
//#region src/schemas/helpers.ts
|
|
6
|
+
const deprecatedCLIOptions = {
|
|
7
|
+
outDir: "out-dir",
|
|
8
|
+
clean: "clean",
|
|
9
|
+
tailwind: "tailwind",
|
|
10
|
+
theme: {
|
|
11
|
+
colors: {
|
|
12
|
+
main: "main-colors",
|
|
13
|
+
support: "support-colors",
|
|
14
|
+
neutral: "neutral-color"
|
|
15
|
+
},
|
|
16
|
+
typography: { fontFamily: "font-family" },
|
|
17
|
+
borderRadius: "border-radius"
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
function mapPathToOptionName(path) {
|
|
21
|
+
const normalisedPath = path[0] === "themes" ? ["theme", ...R.drop(2, path)] : path;
|
|
22
|
+
const option = R.path(normalisedPath, deprecatedCLIOptions);
|
|
23
|
+
if (typeof option !== "string") return;
|
|
24
|
+
return option;
|
|
25
|
+
}
|
|
26
|
+
function makeFriendlyError(err) {
|
|
27
|
+
try {
|
|
28
|
+
return fromError(err, { messageBuilder: (issues) => issues.map((issue) => {
|
|
29
|
+
const issuePath = issue.path.join(".");
|
|
30
|
+
const optionName = mapPathToOptionName(issue.path);
|
|
31
|
+
const errorCode = `(error code: ${issue.code})`;
|
|
32
|
+
const optionMessage = optionName ? ` or CLI option --${optionName}` : "";
|
|
33
|
+
return ` - Error in JSON value ${pc.red(issuePath)}${optionMessage}:
|
|
34
|
+
${issue.message} ${pc.dim(errorCode)}`;
|
|
35
|
+
}).join("\n") });
|
|
36
|
+
} catch (_err2) {
|
|
37
|
+
console.error(pc.red(err instanceof Error ? err.message : "Unknown error occurred while parsing config file"));
|
|
38
|
+
console.error(err instanceof Error ? err.stack : "No stack trace available");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validates a configuration object against a provided Zod schema.
|
|
43
|
+
*
|
|
44
|
+
* @template T - The expected type of the validated configuration.
|
|
45
|
+
* @param schema - A Zod schema used to validate the configuration object.
|
|
46
|
+
* @param unvalidatedConfig - The configuration object to validate.
|
|
47
|
+
* @returns The validated configuration object, typed as T.
|
|
48
|
+
* @throws Exits the process with code 1 if validation fails, after logging a friendly error message.
|
|
49
|
+
*/
|
|
50
|
+
function validateConfig(schema, unvalidatedConfig, configFilePath) {
|
|
51
|
+
try {
|
|
52
|
+
return schema.parse(unvalidatedConfig);
|
|
53
|
+
} catch (err) {
|
|
54
|
+
console.error(pc.redBright(`Invalid config file at ${pc.red(configFilePath)}`));
|
|
55
|
+
const validationError = makeFriendlyError(err);
|
|
56
|
+
console.error(validationError?.toString());
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Parses a JSONC string (JSON with comments and trailing commas).
|
|
62
|
+
*
|
|
63
|
+
* @template T - The expected type of the parsed value.
|
|
64
|
+
* @param content - The JSONC string to parse.
|
|
65
|
+
* @returns The parsed value, typed as T.
|
|
66
|
+
* @throws SyntaxError if the content contains syntax errors.
|
|
67
|
+
*/
|
|
68
|
+
function parseJsonc(content) {
|
|
69
|
+
const errors = [];
|
|
70
|
+
const result = parse(content, errors, { allowTrailingComma: true });
|
|
71
|
+
if (errors.length > 0) {
|
|
72
|
+
const message = errors.map((error) => {
|
|
73
|
+
const before = content.slice(0, error.offset);
|
|
74
|
+
const line = before.split(/\r?\n/).length;
|
|
75
|
+
const col = before.length - before.lastIndexOf("\n");
|
|
76
|
+
return `${printParseErrorCode(error.error)} at ${line}:${col} (offset ${error.offset})`;
|
|
77
|
+
}).join(", ");
|
|
78
|
+
throw new SyntaxError(message);
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
function parseConfig(configFile, configFilePath) {
|
|
83
|
+
if (!configFile) return {};
|
|
84
|
+
try {
|
|
85
|
+
return parseJsonc(configFile);
|
|
86
|
+
} catch (err) {
|
|
87
|
+
console.error(pc.redBright(`Failed parsing config file at ${pc.red(configFilePath)}`));
|
|
88
|
+
const validationError = makeFriendlyError(err);
|
|
89
|
+
console.error(validationError?.toString());
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//#endregion
|
|
94
|
+
export { deprecatedCLIOptions, parseConfig, parseJsonc, validateConfig };
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["parseJsoncRaw"],"sources":["../../../src/schemas/helpers.ts"],"sourcesContent":["import { type ParseError, parse as parseJsoncRaw, printParseErrorCode } from 'jsonc-parser';\nimport pc from 'picocolors';\nimport * as R from 'ramda';\nimport type { z } from 'zod';\nimport { fromError } from 'zod-validation-error';\n\nexport const deprecatedCLIOptions = {\n outDir: 'out-dir',\n clean: 'clean',\n tailwind: 'tailwind',\n theme: {\n colors: {\n main: 'main-colors',\n support: 'support-colors',\n neutral: 'neutral-color',\n },\n typography: {\n fontFamily: 'font-family',\n },\n borderRadius: 'border-radius',\n },\n} as const;\n\nfunction mapPathToOptionName(path: PropertyKey[]) {\n // replace \"themes.some-theme-name\" with \"theme\" to match cliOptions object\n const normalisedPath = path[0] === 'themes' ? ['theme', ...R.drop(2, path)] : path;\n const option = R.path(normalisedPath as Array<string | number>, deprecatedCLIOptions);\n if (typeof option !== 'string') {\n return;\n }\n return option;\n}\n\nfunction makeFriendlyError(err: unknown) {\n try {\n return fromError(err, {\n messageBuilder: (issues) =>\n issues\n .map((issue) => {\n const issuePath = issue.path.join('.');\n const optionName = mapPathToOptionName(issue.path);\n\n const errorCode = `(error code: ${issue.code})`;\n const optionMessage = optionName ? ` or CLI option --${optionName}` : '';\n return ` - Error in JSON value ${pc.red(issuePath)}${optionMessage}:\n ${issue.message} ${pc.dim(errorCode)}`;\n })\n .join('\\n'),\n });\n } catch (_err2) {\n console.error(pc.red(err instanceof Error ? err.message : 'Unknown error occurred while parsing config file'));\n console.error(err instanceof Error ? err.stack : 'No stack trace available');\n }\n}\n\n/**\n * Validates a configuration object against a provided Zod schema.\n *\n * @template T - The expected type of the validated configuration.\n * @param schema - A Zod schema used to validate the configuration object.\n * @param unvalidatedConfig - The configuration object to validate.\n * @returns The validated configuration object, typed as T.\n * @throws Exits the process with code 1 if validation fails, after logging a friendly error message.\n */\nexport function validateConfig<T>(\n schema: z.ZodType<T>,\n unvalidatedConfig: Record<string, unknown>,\n configFilePath: string,\n): T {\n try {\n return schema.parse(unvalidatedConfig) as T;\n } catch (err) {\n console.error(pc.redBright(`Invalid config file at ${pc.red(configFilePath)}`));\n\n const validationError = makeFriendlyError(err);\n console.error(validationError?.toString());\n process.exit(1);\n }\n}\n\n/**\n * Parses a JSONC string (JSON with comments and trailing commas).\n *\n * @template T - The expected type of the parsed value.\n * @param content - The JSONC string to parse.\n * @returns The parsed value, typed as T.\n * @throws SyntaxError if the content contains syntax errors.\n */\nexport function parseJsonc<T>(content: string): T {\n const errors: ParseError[] = [];\n const result = parseJsoncRaw(content, errors, { allowTrailingComma: true }) as T;\n\n if (errors.length > 0) {\n const message = errors\n .map((error) => {\n const before = content.slice(0, error.offset);\n const line = before.split(/\\r?\\n/).length;\n const col = before.length - before.lastIndexOf('\\n');\n return `${printParseErrorCode(error.error)} at ${line}:${col} (offset ${error.offset})`;\n })\n .join(', ');\n throw new SyntaxError(message);\n }\n\n return result;\n}\n\nexport function parseConfig<T>(configFile: string, configFilePath: string): T {\n if (!configFile) {\n return {} as T;\n }\n\n try {\n return parseJsonc<T>(configFile);\n } catch (err) {\n console.error(pc.redBright(`Failed parsing config file at ${pc.red(configFilePath)}`));\n\n const validationError = makeFriendlyError(err);\n console.error(validationError?.toString());\n\n process.exit(1);\n }\n}\n"],"mappings":";;;;;AAMA,MAAa,uBAAuB;CAClC,QAAQ;CACR,OAAO;CACP,UAAU;CACV,OAAO;EACL,QAAQ;GACN,MAAM;GACN,SAAS;GACT,SAAS;EACX;EACA,YAAY,EACV,YAAY,cACd;EACA,cAAc;CAChB;AACF;AAEA,SAAS,oBAAoB,MAAqB;CAEhD,MAAM,iBAAiB,KAAK,OAAO,WAAW,CAAC,SAAS,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI;CAC9E,MAAM,SAAS,EAAE,KAAK,gBAA0C,oBAAoB;CACpF,IAAI,OAAO,WAAW,UACpB;CAEF,OAAO;AACT;AAEA,SAAS,kBAAkB,KAAc;CACvC,IAAI;EACF,OAAO,UAAU,KAAK,EACpB,iBAAiB,WACf,OACG,KAAK,UAAU;GACd,MAAM,YAAY,MAAM,KAAK,KAAK,GAAG;GACrC,MAAM,aAAa,oBAAoB,MAAM,IAAI;GAEjD,MAAM,YAAY,gBAAgB,MAAM,KAAK;GAC7C,MAAM,gBAAgB,aAAa,oBAAoB,eAAe;GACtE,OAAO,2BAA2B,GAAG,IAAI,SAAS,IAAI,cAAc;QACxE,MAAM,QAAQ,GAAG,GAAG,IAAI,SAAS;EAC/B,CAAC,CAAC,CACD,KAAK,IAAI,EAChB,CAAC;CACH,SAAS,OAAO;EACd,QAAQ,MAAM,GAAG,IAAI,eAAe,QAAQ,IAAI,UAAU,kDAAkD,CAAC;EAC7G,QAAQ,MAAM,eAAe,QAAQ,IAAI,QAAQ,0BAA0B;CAC7E;AACF;;;;;;;;;;AAWA,SAAgB,eACd,QACA,mBACA,gBACG;CACH,IAAI;EACF,OAAO,OAAO,MAAM,iBAAiB;CACvC,SAAS,KAAK;EACZ,QAAQ,MAAM,GAAG,UAAU,0BAA0B,GAAG,IAAI,cAAc,GAAG,CAAC;EAE9E,MAAM,kBAAkB,kBAAkB,GAAG;EAC7C,QAAQ,MAAM,iBAAiB,SAAS,CAAC;EACzC,QAAQ,KAAK,CAAC;CAChB;AACF;;;;;;;;;AAUA,SAAgB,WAAc,SAAoB;CAChD,MAAM,SAAuB,CAAC;CAC9B,MAAM,SAASA,MAAc,SAAS,QAAQ,EAAE,oBAAoB,KAAK,CAAC;CAE1E,IAAI,OAAO,SAAS,GAAG;EACrB,MAAM,UAAU,OACb,KAAK,UAAU;GACd,MAAM,SAAS,QAAQ,MAAM,GAAG,MAAM,MAAM;GAC5C,MAAM,OAAO,OAAO,MAAM,OAAO,CAAC,CAAC;GACnC,MAAM,MAAM,OAAO,SAAS,OAAO,YAAY,IAAI;GACnD,OAAO,GAAG,oBAAoB,MAAM,KAAK,EAAE,MAAM,KAAK,GAAG,IAAI,WAAW,MAAM,OAAO;EACvF,CAAC,CAAC,CACD,KAAK,IAAI;EACZ,MAAM,IAAI,YAAY,OAAO;CAC/B;CAEA,OAAO;AACT;AAEA,SAAgB,YAAe,YAAoB,gBAA2B;CAC5E,IAAI,CAAC,YACH,OAAO,CAAC;CAGV,IAAI;EACF,OAAO,WAAc,UAAU;CACjC,SAAS,KAAK;EACZ,QAAQ,MAAM,GAAG,UAAU,iCAAiC,GAAG,IAAI,cAAc,GAAG,CAAC;EAErF,MAAM,kBAAkB,kBAAkB,GAAG;EAC7C,QAAQ,MAAM,iBAAiB,SAAS,CAAC;EAEzC,QAAQ,KAAK,CAAC;CAChB;AACF"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/schemas/v1/schema.d.ts
|
|
4
|
+
declare const colorRegex: RegExp;
|
|
5
|
+
declare const overridesSchema: z.ZodOptional<z.ZodObject<{
|
|
6
|
+
colors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEnum<{
|
|
7
|
+
"background-default": "background-default";
|
|
8
|
+
"background-tinted": "background-tinted";
|
|
9
|
+
"surface-default": "surface-default";
|
|
10
|
+
"surface-tinted": "surface-tinted";
|
|
11
|
+
"surface-hover": "surface-hover";
|
|
12
|
+
"surface-active": "surface-active";
|
|
13
|
+
"border-subtle": "border-subtle";
|
|
14
|
+
"border-default": "border-default";
|
|
15
|
+
"border-strong": "border-strong";
|
|
16
|
+
"text-subtle": "text-subtle";
|
|
17
|
+
"text-default": "text-default";
|
|
18
|
+
"base-default": "base-default";
|
|
19
|
+
"base-hover": "base-hover";
|
|
20
|
+
"base-active": "base-active";
|
|
21
|
+
"base-contrast-subtle": "base-contrast-subtle";
|
|
22
|
+
"base-contrast-default": "base-contrast-default";
|
|
23
|
+
}> & z.core.$partial, z.ZodObject<{
|
|
24
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
25
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
26
|
+
}, z.core.$strip>>>>;
|
|
27
|
+
severity: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
28
|
+
danger: "danger";
|
|
29
|
+
warning: "warning";
|
|
30
|
+
success: "success";
|
|
31
|
+
info: "info";
|
|
32
|
+
}> & z.core.$partial, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>>>;
|
|
33
|
+
linkVisited: z.ZodOptional<z.ZodObject<{
|
|
34
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
35
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
36
|
+
}, z.core.$strip>>;
|
|
37
|
+
focus: z.ZodOptional<z.ZodObject<{
|
|
38
|
+
inner: z.ZodOptional<z.ZodObject<{
|
|
39
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
40
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
outer: z.ZodOptional<z.ZodObject<{
|
|
43
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
44
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
45
|
+
}, z.core.$strip>>;
|
|
46
|
+
}, z.core.$strip>>;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
declare const themeSchema: z.ZodObject<{
|
|
49
|
+
colors: z.ZodObject<{
|
|
50
|
+
main: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
51
|
+
support: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>>>;
|
|
52
|
+
neutral: z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
typography: z.ZodOptional<z.ZodObject<{
|
|
55
|
+
fontFamily: z.ZodString;
|
|
56
|
+
}, z.core.$strip>>;
|
|
57
|
+
borderRadius: z.ZodOptional<z.ZodNumber>;
|
|
58
|
+
overrides: z.ZodOptional<z.ZodObject<{
|
|
59
|
+
colors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEnum<{
|
|
60
|
+
"background-default": "background-default";
|
|
61
|
+
"background-tinted": "background-tinted";
|
|
62
|
+
"surface-default": "surface-default";
|
|
63
|
+
"surface-tinted": "surface-tinted";
|
|
64
|
+
"surface-hover": "surface-hover";
|
|
65
|
+
"surface-active": "surface-active";
|
|
66
|
+
"border-subtle": "border-subtle";
|
|
67
|
+
"border-default": "border-default";
|
|
68
|
+
"border-strong": "border-strong";
|
|
69
|
+
"text-subtle": "text-subtle";
|
|
70
|
+
"text-default": "text-default";
|
|
71
|
+
"base-default": "base-default";
|
|
72
|
+
"base-hover": "base-hover";
|
|
73
|
+
"base-active": "base-active";
|
|
74
|
+
"base-contrast-subtle": "base-contrast-subtle";
|
|
75
|
+
"base-contrast-default": "base-contrast-default";
|
|
76
|
+
}> & z.core.$partial, z.ZodObject<{
|
|
77
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
78
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
79
|
+
}, z.core.$strip>>>>;
|
|
80
|
+
severity: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
81
|
+
danger: "danger";
|
|
82
|
+
warning: "warning";
|
|
83
|
+
success: "success";
|
|
84
|
+
info: "info";
|
|
85
|
+
}> & z.core.$partial, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>>>;
|
|
86
|
+
linkVisited: z.ZodOptional<z.ZodObject<{
|
|
87
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
88
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
89
|
+
}, z.core.$strip>>;
|
|
90
|
+
focus: z.ZodOptional<z.ZodObject<{
|
|
91
|
+
inner: z.ZodOptional<z.ZodObject<{
|
|
92
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
93
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
94
|
+
}, z.core.$strip>>;
|
|
95
|
+
outer: z.ZodOptional<z.ZodObject<{
|
|
96
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
97
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
98
|
+
}, z.core.$strip>>;
|
|
99
|
+
}, z.core.$strip>>;
|
|
100
|
+
}, z.core.$strip>>;
|
|
101
|
+
}, z.core.$strip>;
|
|
102
|
+
declare const commonConfig: z.ZodObject<{
|
|
103
|
+
clean: z.ZodOptional<z.ZodBoolean>;
|
|
104
|
+
}, z.core.$strip>;
|
|
105
|
+
/**
|
|
106
|
+
* This defines the structure of the final configuration file
|
|
107
|
+
*/
|
|
108
|
+
declare const configFileCreateSchema: z.ZodObject<{
|
|
109
|
+
outDir: z.ZodNonOptional<z.ZodString>;
|
|
110
|
+
themes: z.ZodNonOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
111
|
+
colors: z.ZodObject<{
|
|
112
|
+
main: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
113
|
+
support: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>>>;
|
|
114
|
+
neutral: z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>;
|
|
115
|
+
}, z.core.$strip>;
|
|
116
|
+
typography: z.ZodOptional<z.ZodObject<{
|
|
117
|
+
fontFamily: z.ZodString;
|
|
118
|
+
}, z.core.$strip>>;
|
|
119
|
+
borderRadius: z.ZodOptional<z.ZodNumber>;
|
|
120
|
+
overrides: z.ZodOptional<z.ZodObject<{
|
|
121
|
+
colors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEnum<{
|
|
122
|
+
"background-default": "background-default";
|
|
123
|
+
"background-tinted": "background-tinted";
|
|
124
|
+
"surface-default": "surface-default";
|
|
125
|
+
"surface-tinted": "surface-tinted";
|
|
126
|
+
"surface-hover": "surface-hover";
|
|
127
|
+
"surface-active": "surface-active";
|
|
128
|
+
"border-subtle": "border-subtle";
|
|
129
|
+
"border-default": "border-default";
|
|
130
|
+
"border-strong": "border-strong";
|
|
131
|
+
"text-subtle": "text-subtle";
|
|
132
|
+
"text-default": "text-default";
|
|
133
|
+
"base-default": "base-default";
|
|
134
|
+
"base-hover": "base-hover";
|
|
135
|
+
"base-active": "base-active";
|
|
136
|
+
"base-contrast-subtle": "base-contrast-subtle";
|
|
137
|
+
"base-contrast-default": "base-contrast-default";
|
|
138
|
+
}> & z.core.$partial, z.ZodObject<{
|
|
139
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
140
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
141
|
+
}, z.core.$strip>>>>;
|
|
142
|
+
severity: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
143
|
+
danger: "danger";
|
|
144
|
+
warning: "warning";
|
|
145
|
+
success: "success";
|
|
146
|
+
info: "info";
|
|
147
|
+
}> & z.core.$partial, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>>>;
|
|
148
|
+
linkVisited: z.ZodOptional<z.ZodObject<{
|
|
149
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
150
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
151
|
+
}, z.core.$strip>>;
|
|
152
|
+
focus: z.ZodOptional<z.ZodObject<{
|
|
153
|
+
inner: z.ZodOptional<z.ZodObject<{
|
|
154
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
155
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
156
|
+
}, z.core.$strip>>;
|
|
157
|
+
outer: z.ZodOptional<z.ZodObject<{
|
|
158
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
159
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
160
|
+
}, z.core.$strip>>;
|
|
161
|
+
}, z.core.$strip>>;
|
|
162
|
+
}, z.core.$strip>>;
|
|
163
|
+
}, z.core.$strip>>>;
|
|
164
|
+
clean: z.ZodOptional<z.ZodBoolean>;
|
|
165
|
+
}, z.core.$strip>;
|
|
166
|
+
type CommonConfigSchema = z.infer<typeof commonConfig>;
|
|
167
|
+
type BuildConfigSchema = z.infer<typeof commonConfig>;
|
|
168
|
+
type CreateConfigSchema = z.infer<typeof configFileCreateSchema>;
|
|
169
|
+
type ConfigSchemaTheme = z.infer<typeof themeSchema>;
|
|
170
|
+
type ColorOverrideSchema = z.infer<typeof overridesSchema>;
|
|
171
|
+
//#endregion
|
|
172
|
+
export { BuildConfigSchema, ColorOverrideSchema, CommonConfigSchema, ConfigSchemaTheme, CreateConfigSchema, colorRegex, commonConfig, configFileCreateSchema };
|
|
173
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","names":[],"sources":["../../../../src/schemas/v1/schema.ts"],"mappings":";;;cAca,UAAA,EAAU,MAA2C;AAAA,cAuE5D,eAAA,EAAe,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAUf,WAAA,EAAW,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoBJ,YAAA,EAAY,CAAA,CAAA,SAAA;;;;;;cAiBZ,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KACvB,kBAAA,GAAqB,CAAA,CAAE,KAAK,QAAQ,YAAA;AAAA,KACpC,iBAAA,GAAoB,CAAA,CAAE,KAAK,QAAQ,YAAA;AAAA,KACnC,kBAAA,GAAqB,CAAA,CAAE,KAAK,QAAQ,sBAAA;AAAA,KACpC,iBAAA,GAAoB,CAAA,CAAE,KAAK,QAAQ,WAAA;AAAA,KACnC,mBAAA,GAAsB,CAAA,CAAE,KAAK,QAAQ,eAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { baseColorNames, colorNames } from "../../colors/colorMetadata.js";
|
|
2
|
+
import { convertToHex } from "../../colors/utils.js";
|
|
3
|
+
import { RESERVED_COLORS } from "../../colors/theme.js";
|
|
4
|
+
import "../../colors/index.js";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
//#region src/schemas/v1/schema.ts
|
|
7
|
+
const hexPatterns = [
|
|
8
|
+
`#[0-9a-fA-F]{3}`,
|
|
9
|
+
`#[0-9a-fA-F]{4}`,
|
|
10
|
+
`#[0-9a-fA-F]{6}`,
|
|
11
|
+
`#[0-9a-fA-F]{8}`
|
|
12
|
+
];
|
|
13
|
+
const reservedColorsPattern = `^(?!(?:${RESERVED_COLORS.join("|")})$)`;
|
|
14
|
+
const colorRegex = new RegExp(`^${hexPatterns.join("|")}$`);
|
|
15
|
+
const colorSchema = z.string().regex(colorRegex).transform(convertToHex).describe(`A hex color, which is used for creating a color scale. Invalid color names: ${RESERVED_COLORS.join(", ")}`);
|
|
16
|
+
const colorCategorySchema = z.record(z.string().regex(new RegExp(reservedColorsPattern, "i"), { error: `Color names cannot include reserved names: ${RESERVED_COLORS.join(", ")}` }), colorSchema, { error: "Color definitions must be hex color values" }).refine((colors) => !Object.keys(colors).some((key) => RESERVED_COLORS.includes(key.toLowerCase())), { error: `Color names cannot include reserved names: ${RESERVED_COLORS.join(", ")}` }).describe("An object with one or more color definitions. The property name is used as the color name.");
|
|
17
|
+
const colorModeOverrideSchema = z.object({
|
|
18
|
+
light: colorSchema.optional().describe("A hex color that overrides light mode"),
|
|
19
|
+
dark: colorSchema.optional().describe("A hex color that overrides dark mode")
|
|
20
|
+
}).describe("Override values for semantic color tokens like \"background-subtle\", \"border-default\", etc.");
|
|
21
|
+
const colorWeightOverrideSchema = z.partialRecord(z.enum([...colorNames]), colorModeOverrideSchema).describe("The name of the color to add overrides for, e.g. \"accent\"");
|
|
22
|
+
const semanticColorOverrideSchema = z.record(z.string(), colorWeightOverrideSchema).describe("An object with color names as keys");
|
|
23
|
+
const severityColorOverrideSchema = z.partialRecord(z.enum(baseColorNames), colorSchema.describe("A hex color, which is used for creating a color scale")).optional().describe("An object with severity color names as keys");
|
|
24
|
+
const linkVisitedOverrideSchema = z.object({
|
|
25
|
+
light: colorSchema.optional().describe("A hex color that overrides light mode"),
|
|
26
|
+
dark: colorSchema.optional().describe("A hex color that overrides dark mode")
|
|
27
|
+
}).describe("Overrides for the \"link-visited\" color");
|
|
28
|
+
const focusOverrideSchema = z.object({
|
|
29
|
+
inner: z.object({
|
|
30
|
+
light: colorSchema.optional().describe("A hex color that overrides light mode"),
|
|
31
|
+
dark: colorSchema.optional().describe("A hex color that overrides dark mode")
|
|
32
|
+
}).optional().describe("Overrides for the \"focus-inner\" color"),
|
|
33
|
+
outer: z.object({
|
|
34
|
+
light: colorSchema.optional().describe("A hex color that overrides light mode"),
|
|
35
|
+
dark: colorSchema.optional().describe("A hex color that overrides dark mode")
|
|
36
|
+
}).optional().describe("Overrides for the \"focus-outer\" color")
|
|
37
|
+
}).describe("Overrides for the focus colors");
|
|
38
|
+
const overridesSchema = z.object({
|
|
39
|
+
colors: semanticColorOverrideSchema.optional(),
|
|
40
|
+
severity: severityColorOverrideSchema.optional(),
|
|
41
|
+
linkVisited: linkVisitedOverrideSchema.optional(),
|
|
42
|
+
focus: focusOverrideSchema.optional()
|
|
43
|
+
}).describe("Overrides for generated design tokens. Currently only supports colors defined in your theme").optional();
|
|
44
|
+
const themeSchema = z.object({
|
|
45
|
+
colors: z.object({
|
|
46
|
+
main: colorCategorySchema,
|
|
47
|
+
support: colorCategorySchema.optional().default({}),
|
|
48
|
+
neutral: colorSchema.describe("A hex color, which is used for creating a color scale.")
|
|
49
|
+
}).meta({ description: "Defines the colors for this theme" }),
|
|
50
|
+
typography: z.object({ fontFamily: z.string().meta({ description: "Sets the font-family for this theme" }) }).describe("Defines the typography for a given theme").optional(),
|
|
51
|
+
borderRadius: z.number().meta({ description: "Defines the border-radius for this theme" }).optional(),
|
|
52
|
+
overrides: overridesSchema
|
|
53
|
+
}).meta({ description: "An object defining a theme. The property name holding the object becomes the theme name." });
|
|
54
|
+
const commonConfig = z.object({ clean: z.boolean().meta({ description: "Delete the output directory before building or creating tokens" }).optional() });
|
|
55
|
+
/**
|
|
56
|
+
* This defines the structure of the final configuration file
|
|
57
|
+
*/
|
|
58
|
+
const configFileCreateSchema = z.object({
|
|
59
|
+
outDir: z.string().meta({ description: "Path to the output directory for the created design tokens" }),
|
|
60
|
+
themes: z.record(z.string(), themeSchema).meta({ description: "An object with one or more themes. Each property defines a theme, and the property name is used as the theme name." })
|
|
61
|
+
}).required().extend(commonConfig.shape);
|
|
62
|
+
//#endregion
|
|
63
|
+
export { colorRegex, commonConfig, configFileCreateSchema };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../src/schemas/v1/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { baseColorNames, colorNames } from '../../colors/colorMetadata.ts';\nimport { convertToHex } from '../../colors/index.ts';\nimport { RESERVED_COLORS } from '../../colors/theme.ts';\n\nconst hexPatterns = [\n // Hex colors: #000, #0000, #000000, #00000000\n `#[0-9a-fA-F]{3}`,\n `#[0-9a-fA-F]{4}`,\n `#[0-9a-fA-F]{6}`,\n `#[0-9a-fA-F]{8}`,\n];\nconst reservedColorsPattern = `^(?!(?:${RESERVED_COLORS.join('|')})$)`;\n\nexport const colorRegex = new RegExp(`^${hexPatterns.join('|')}$`);\n\nconst colorSchema = z\n .string()\n .regex(colorRegex)\n .transform(convertToHex)\n .describe(\n `A hex color, which is used for creating a color scale. Invalid color names: ${RESERVED_COLORS.join(', ')}`,\n );\n\nconst colorCategorySchema = z\n .record(\n z.string().regex(new RegExp(reservedColorsPattern, 'i'), {\n error: `Color names cannot include reserved names: ${RESERVED_COLORS.join(', ')}`,\n }),\n colorSchema,\n {\n error: 'Color definitions must be hex color values',\n },\n )\n .refine((colors) => !Object.keys(colors).some((key) => RESERVED_COLORS.includes(key.toLowerCase())), {\n error: `Color names cannot include reserved names: ${RESERVED_COLORS.join(', ')}`,\n })\n .describe('An object with one or more color definitions. The property name is used as the color name.');\n\nconst colorModeOverrideSchema = z\n .object({\n light: colorSchema.optional().describe('A hex color that overrides light mode'),\n dark: colorSchema.optional().describe('A hex color that overrides dark mode'),\n })\n .describe('Override values for semantic color tokens like \"background-subtle\", \"border-default\", etc.');\n\nconst colorWeightOverrideSchema = z\n .partialRecord(z.enum([...colorNames]), colorModeOverrideSchema)\n .describe('The name of the color to add overrides for, e.g. \"accent\"');\n\nconst semanticColorOverrideSchema = z\n .record(z.string(), colorWeightOverrideSchema)\n .describe('An object with color names as keys');\n\nconst severityColorOverrideSchema = z\n .partialRecord(z.enum(baseColorNames), colorSchema.describe('A hex color, which is used for creating a color scale'))\n .optional()\n .describe('An object with severity color names as keys');\n\nconst linkVisitedOverrideSchema = z\n .object({\n light: colorSchema.optional().describe('A hex color that overrides light mode'),\n dark: colorSchema.optional().describe('A hex color that overrides dark mode'),\n })\n .describe('Overrides for the \"link-visited\" color');\n\nconst focusOverrideSchema = z\n .object({\n inner: z\n .object({\n light: colorSchema.optional().describe('A hex color that overrides light mode'),\n dark: colorSchema.optional().describe('A hex color that overrides dark mode'),\n })\n .optional()\n .describe('Overrides for the \"focus-inner\" color'),\n outer: z\n .object({\n light: colorSchema.optional().describe('A hex color that overrides light mode'),\n dark: colorSchema.optional().describe('A hex color that overrides dark mode'),\n })\n .optional()\n .describe('Overrides for the \"focus-outer\" color'),\n })\n .describe('Overrides for the focus colors');\n\nconst overridesSchema = z\n .object({\n colors: semanticColorOverrideSchema.optional(),\n severity: severityColorOverrideSchema.optional(),\n linkVisited: linkVisitedOverrideSchema.optional(),\n focus: focusOverrideSchema.optional(),\n })\n .describe('Overrides for generated design tokens. Currently only supports colors defined in your theme')\n .optional();\n\nconst themeSchema = z\n .object({\n colors: z\n .object({\n main: colorCategorySchema,\n support: colorCategorySchema.optional().default({}),\n neutral: colorSchema.describe('A hex color, which is used for creating a color scale.'),\n })\n .meta({ description: 'Defines the colors for this theme' }),\n typography: z\n .object({\n fontFamily: z.string().meta({ description: 'Sets the font-family for this theme' }),\n })\n .describe('Defines the typography for a given theme')\n .optional(),\n borderRadius: z.number().meta({ description: 'Defines the border-radius for this theme' }).optional(),\n overrides: overridesSchema,\n })\n .meta({ description: 'An object defining a theme. The property name holding the object becomes the theme name.' });\n\nexport const commonConfig = z.object({\n clean: z.boolean().meta({ description: 'Delete the output directory before building or creating tokens' }).optional(),\n});\n\nconst _configFileCreateSchema = z\n .object({\n outDir: z.string().meta({ description: 'Path to the output directory for the created design tokens' }),\n themes: z.record(z.string(), themeSchema).meta({\n description:\n 'An object with one or more themes. Each property defines a theme, and the property name is used as the theme name.',\n }),\n })\n .required();\n\n/**\n * This defines the structure of the final configuration file\n */\nexport const configFileCreateSchema = _configFileCreateSchema.extend(commonConfig.shape);\nexport type CommonConfigSchema = z.infer<typeof commonConfig>;\nexport type BuildConfigSchema = z.infer<typeof commonConfig>;\nexport type CreateConfigSchema = z.infer<typeof configFileCreateSchema>;\nexport type ConfigSchemaTheme = z.infer<typeof themeSchema>;\nexport type ColorOverrideSchema = z.infer<typeof overridesSchema>;\n"],"mappings":";;;;;;AAKA,MAAM,cAAc;CAElB;CACA;CACA;CACA;AACF;AACA,MAAM,wBAAwB,UAAU,gBAAgB,KAAK,GAAG,EAAE;AAElE,MAAa,aAAa,IAAI,OAAO,IAAI,YAAY,KAAK,GAAG,EAAE,EAAE;AAEjE,MAAM,cAAc,EACjB,OAAO,CAAC,CACR,MAAM,UAAU,CAAC,CACjB,UAAU,YAAY,CAAC,CACvB,SACC,+EAA+E,gBAAgB,KAAK,IAAI,GAC1G;AAEF,MAAM,sBAAsB,EACzB,OACC,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,OAAO,uBAAuB,GAAG,GAAG,EACvD,OAAO,8CAA8C,gBAAgB,KAAK,IAAI,IAChF,CAAC,GACD,aACA,EACE,OAAO,6CACT,CACF,CAAC,CACA,QAAQ,WAAW,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,QAAQ,gBAAgB,SAAS,IAAI,YAAY,CAAC,CAAC,GAAG,EACnG,OAAO,8CAA8C,gBAAgB,KAAK,IAAI,IAChF,CAAC,CAAC,CACD,SAAS,4FAA4F;AAExG,MAAM,0BAA0B,EAC7B,OAAO;CACN,OAAO,YAAY,SAAS,CAAC,CAAC,SAAS,uCAAuC;CAC9E,MAAM,YAAY,SAAS,CAAC,CAAC,SAAS,sCAAsC;AAC9E,CAAC,CAAC,CACD,SAAS,gGAA4F;AAExG,MAAM,4BAA4B,EAC/B,cAAc,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,uBAAuB,CAAC,CAC/D,SAAS,6DAA2D;AAEvE,MAAM,8BAA8B,EACjC,OAAO,EAAE,OAAO,GAAG,yBAAyB,CAAC,CAC7C,SAAS,oCAAoC;AAEhD,MAAM,8BAA8B,EACjC,cAAc,EAAE,KAAK,cAAc,GAAG,YAAY,SAAS,uDAAuD,CAAC,CAAC,CACpH,SAAS,CAAC,CACV,SAAS,6CAA6C;AAEzD,MAAM,4BAA4B,EAC/B,OAAO;CACN,OAAO,YAAY,SAAS,CAAC,CAAC,SAAS,uCAAuC;CAC9E,MAAM,YAAY,SAAS,CAAC,CAAC,SAAS,sCAAsC;AAC9E,CAAC,CAAC,CACD,SAAS,0CAAwC;AAEpD,MAAM,sBAAsB,EACzB,OAAO;CACN,OAAO,EACJ,OAAO;EACN,OAAO,YAAY,SAAS,CAAC,CAAC,SAAS,uCAAuC;EAC9E,MAAM,YAAY,SAAS,CAAC,CAAC,SAAS,sCAAsC;CAC9E,CAAC,CAAC,CACD,SAAS,CAAC,CACV,SAAS,yCAAuC;CACnD,OAAO,EACJ,OAAO;EACN,OAAO,YAAY,SAAS,CAAC,CAAC,SAAS,uCAAuC;EAC9E,MAAM,YAAY,SAAS,CAAC,CAAC,SAAS,sCAAsC;CAC9E,CAAC,CAAC,CACD,SAAS,CAAC,CACV,SAAS,yCAAuC;AACrD,CAAC,CAAC,CACD,SAAS,gCAAgC;AAE5C,MAAM,kBAAkB,EACrB,OAAO;CACN,QAAQ,4BAA4B,SAAS;CAC7C,UAAU,4BAA4B,SAAS;CAC/C,aAAa,0BAA0B,SAAS;CAChD,OAAO,oBAAoB,SAAS;AACtC,CAAC,CAAC,CACD,SAAS,6FAA6F,CAAC,CACvG,SAAS;AAEZ,MAAM,cAAc,EACjB,OAAO;CACN,QAAQ,EACL,OAAO;EACN,MAAM;EACN,SAAS,oBAAoB,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;EAClD,SAAS,YAAY,SAAS,wDAAwD;CACxF,CAAC,CAAC,CACD,KAAK,EAAE,aAAa,oCAAoC,CAAC;CAC5D,YAAY,EACT,OAAO,EACN,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,aAAa,sCAAsC,CAAC,EACpF,CAAC,CAAC,CACD,SAAS,0CAA0C,CAAC,CACpD,SAAS;CACZ,cAAc,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,aAAa,2CAA2C,CAAC,CAAC,CAAC,SAAS;CACpG,WAAW;AACb,CAAC,CAAC,CACD,KAAK,EAAE,aAAa,2FAA2F,CAAC;AAEnH,MAAa,eAAe,EAAE,OAAO,EACnC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,aAAa,iEAAiE,CAAC,CAAC,CAAC,SAAS,EACtH,CAAC;;;;AAeD,MAAa,yBAbmB,EAC7B,OAAO;CACN,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,aAAa,6DAA6D,CAAC;CACrG,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,KAAK,EAC7C,aACE,qHACJ,CAAC;AACH,CAAC,CAAC,CACD,SAKmC,CAAA,CAAwB,OAAO,aAAa,KAAK"}
|