@digdir/designsystemet 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/designsystemet.js +4287 -45
- package/dist/bin/options.js +5 -4
- package/dist/src/colors/colorMetadata.js +5 -4
- package/dist/src/colors/index.js +470 -4
- package/dist/src/colors/theme.js +286 -20
- package/dist/src/colors/utils.js +16 -15
- package/dist/{bin → src}/config.d.ts +46 -1
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +377 -0
- package/dist/src/index.js +3682 -2
- package/dist/src/migrations/beta-to-v1.js +85 -4
- package/dist/src/migrations/codemods/css/plugins.js +5 -4
- package/dist/src/migrations/codemods/css/run.d.ts.map +1 -1
- package/dist/src/migrations/codemods/css/run.js +18 -4
- package/dist/src/migrations/color-rename-next49.js +77 -6
- package/dist/src/migrations/index.d.ts +0 -1
- package/dist/src/migrations/index.d.ts.map +1 -1
- package/dist/src/migrations/index.js +461 -6
- package/dist/src/scripts/createJsonSchema.js +1608 -4
- package/dist/src/scripts/update-design-tokens.d.ts +2 -0
- package/dist/src/scripts/update-design-tokens.d.ts.map +1 -0
- package/dist/src/scripts/update-design-tokens.js +37 -0
- package/dist/src/{tokens/template.d.ts → scripts/update-template.d.ts} +1 -1
- package/dist/src/scripts/update-template.d.ts.map +1 -0
- package/dist/src/scripts/update-template.js +1200 -0
- package/dist/src/tokens/build.d.ts +2 -19
- package/dist/src/tokens/build.d.ts.map +1 -1
- package/dist/src/tokens/build.js +1268 -70
- package/dist/src/tokens/create/defaults.d.ts +7 -0
- package/dist/src/tokens/create/defaults.d.ts.map +1 -0
- package/dist/src/tokens/create/defaults.js +994 -0
- package/dist/src/tokens/create/generators/$designsystemet.d.ts +5 -0
- package/dist/src/tokens/create/generators/$designsystemet.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/$designsystemet.js +101 -0
- package/dist/src/tokens/create/generators/$metadata.d.ts +8 -0
- package/dist/src/tokens/create/generators/$metadata.d.ts.map +1 -0
- package/dist/src/tokens/{write/generate$metadata.js → create/generators/$metadata.js} +3 -2
- package/dist/src/tokens/create/generators/$themes.d.ts +12 -0
- package/dist/src/tokens/create/generators/$themes.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/$themes.js +333 -0
- package/dist/src/tokens/create/generators/color.d.ts +5 -0
- package/dist/src/tokens/create/generators/color.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/color.js +374 -0
- package/dist/src/tokens/create/generators/semantic.d.ts +296 -0
- package/dist/src/tokens/create/generators/semantic.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/semantic.js +483 -0
- package/dist/src/tokens/create/generators/theme.d.ts +3 -0
- package/dist/src/tokens/create/generators/theme.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/theme.js +168 -0
- package/dist/src/tokens/create/generators/typography.d.ts +3 -0
- package/dist/src/tokens/create/generators/typography.d.ts.map +1 -0
- package/dist/src/tokens/create/generators/typography.js +33 -0
- package/dist/src/tokens/{write.d.ts → create/write.d.ts} +2 -2
- package/dist/src/tokens/create/write.d.ts.map +1 -0
- package/dist/src/tokens/create/write.js +547 -0
- package/dist/src/tokens/create.d.ts +4 -2
- package/dist/src/tokens/create.d.ts.map +1 -1
- package/dist/src/tokens/create.js +2049 -59
- package/dist/src/tokens/format.d.ts +15 -0
- package/dist/src/tokens/format.d.ts.map +1 -0
- package/dist/src/tokens/format.js +3529 -0
- package/dist/src/tokens/index.d.ts +1 -0
- package/dist/src/tokens/index.d.ts.map +1 -1
- package/dist/src/tokens/index.js +3542 -2
- package/dist/src/tokens/process/configs/color.d.ts +12 -0
- package/dist/src/tokens/process/configs/color.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/color.js +823 -0
- package/dist/src/tokens/process/configs/semantic.d.ts +3 -0
- package/dist/src/tokens/process/configs/semantic.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/semantic.js +367 -0
- package/dist/src/tokens/process/configs/shared.d.ts +10 -0
- package/dist/src/tokens/process/configs/shared.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/shared.js +99 -0
- package/dist/src/tokens/process/configs/storefront.d.ts +3 -0
- package/dist/src/tokens/process/configs/storefront.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/storefront.js +220 -0
- package/dist/src/tokens/process/configs/typography.d.ts +3 -0
- package/dist/src/tokens/process/configs/typography.d.ts.map +1 -0
- package/dist/src/tokens/process/configs/typography.js +369 -0
- package/dist/src/tokens/{build → process}/configs.d.ts +3 -11
- package/dist/src/tokens/process/configs.d.ts.map +1 -0
- package/dist/src/tokens/process/configs.js +976 -0
- package/dist/src/tokens/process/formats/css/color.d.ts +4 -0
- package/dist/src/tokens/process/formats/css/color.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/color.js +128 -0
- package/dist/src/tokens/process/formats/css/semantic.d.ts +17 -0
- package/dist/src/tokens/process/formats/css/semantic.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/semantic.js +109 -0
- package/dist/src/tokens/process/formats/css/typography.d.ts +3 -0
- package/dist/src/tokens/process/formats/css/typography.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/css/typography.js +32 -0
- package/dist/src/tokens/process/formats/css.d.ts +8 -0
- package/dist/src/tokens/process/formats/css.d.ts.map +1 -0
- package/dist/src/tokens/{build → process}/formats/css.js +94 -57
- package/dist/src/tokens/process/formats/js-tokens.d.ts.map +1 -0
- package/dist/src/tokens/process/formats/js-tokens.js +109 -0
- package/dist/src/tokens/process/platform.d.ts +87 -0
- package/dist/src/tokens/process/platform.d.ts.map +1 -0
- package/dist/src/tokens/process/platform.js +1090 -0
- package/dist/src/tokens/process/theme.d.ts +27 -0
- package/dist/src/tokens/process/theme.d.ts.map +1 -0
- package/dist/src/tokens/process/theme.js +172 -0
- package/dist/src/tokens/process/transformers.d.ts.map +1 -0
- package/dist/src/tokens/{build → process}/transformers.js +29 -6
- package/dist/src/tokens/{build → process}/utils/getMultidimensionalThemes.d.ts +3 -3
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts.map +1 -0
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.js +922 -0
- package/dist/src/tokens/template/design-tokens/primitives/globals.js +5 -0
- package/dist/src/tokens/template/design-tokens/primitives/modes/size/global.js +5 -0
- package/dist/src/tokens/template/design-tokens/primitives/modes/size/large.js +5 -0
- package/dist/src/tokens/template/design-tokens/primitives/modes/size/medium.js +5 -0
- package/dist/src/tokens/template/design-tokens/primitives/modes/size/small.js +5 -0
- package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/large.js +5 -0
- package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/medium.js +5 -0
- package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/small.js +5 -0
- package/dist/src/tokens/template/design-tokens/primitives/modes/typography/typography.template.js +5 -0
- package/dist/src/tokens/template/design-tokens/semantic/color.base.template.js +5 -0
- package/dist/src/tokens/template/design-tokens/semantic/color.template.js +5 -0
- package/dist/src/tokens/template/design-tokens/semantic/modes/color.template.js +5 -0
- package/dist/src/tokens/template/design-tokens/semantic/style.js +5 -0
- package/dist/src/tokens/template/design-tokens/themes/theme.base.template.js +5 -0
- package/dist/src/tokens/template/design-tokens/themes/theme.template.js +5 -0
- package/dist/src/tokens/types.d.ts +58 -38
- package/dist/src/tokens/types.d.ts.map +1 -1
- package/dist/src/tokens/types.js +8 -0
- package/dist/src/tokens/utils.d.ts +30 -5
- package/dist/src/tokens/utils.d.ts.map +1 -1
- package/dist/src/tokens/utils.js +36 -50
- package/dist/src/utils.d.ts +18 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +63 -0
- package/dist/typography.template-4N5YLH7F.json +22 -0
- package/package.json +22 -20
- package/dist/bin/config.d.ts.map +0 -1
- package/dist/bin/config.js +0 -71
- package/dist/src/migrations/codemods/jsx/classname-prefix.d.ts +0 -10
- package/dist/src/migrations/codemods/jsx/classname-prefix.d.ts.map +0 -1
- package/dist/src/migrations/codemods/jsx/classname-prefix.js +0 -64
- package/dist/src/migrations/codemods/jsx/run.d.ts +0 -7
- package/dist/src/migrations/codemods/jsx/run.d.ts.map +0 -1
- package/dist/src/migrations/codemods/jsx/run.js +0 -22
- package/dist/src/migrations/react-beta-to-v1.d.ts +0 -3
- package/dist/src/migrations/react-beta-to-v1.d.ts.map +0 -1
- package/dist/src/migrations/react-beta-to-v1.js +0 -5
- package/dist/src/scripts/copy-internal-tokens.d.ts +0 -2
- package/dist/src/scripts/copy-internal-tokens.d.ts.map +0 -1
- package/dist/src/scripts/copy-internal-tokens.js +0 -28
- package/dist/src/tokens/build/configs.d.ts.map +0 -1
- package/dist/src/tokens/build/configs.js +0 -280
- package/dist/src/tokens/build/formats/css.d.ts +0 -53
- package/dist/src/tokens/build/formats/css.d.ts.map +0 -1
- package/dist/src/tokens/build/formats/js-tokens.d.ts.map +0 -1
- package/dist/src/tokens/build/formats/js-tokens.js +0 -48
- package/dist/src/tokens/build/transformers.d.ts.map +0 -1
- package/dist/src/tokens/build/types.d.ts +0 -48
- package/dist/src/tokens/build/types.d.ts.map +0 -1
- package/dist/src/tokens/build/types.js +0 -7
- package/dist/src/tokens/build/utils/entryfile.d.ts +0 -12
- package/dist/src/tokens/build/utils/entryfile.d.ts.map +0 -1
- package/dist/src/tokens/build/utils/entryfile.js +0 -67
- package/dist/src/tokens/build/utils/getMultidimensionalThemes.d.ts.map +0 -1
- package/dist/src/tokens/build/utils/getMultidimensionalThemes.js +0 -112
- package/dist/src/tokens/design-tokens/template/$metadata.json +0 -25
- package/dist/src/tokens/design-tokens/template/$themes.json +0 -1498
- package/dist/src/tokens/template.d.ts.map +0 -1
- package/dist/src/tokens/template.js +0 -99
- package/dist/src/tokens/write/generate$metadata.d.ts +0 -9
- package/dist/src/tokens/write/generate$metadata.d.ts.map +0 -1
- package/dist/src/tokens/write/generate$themes.d.ts +0 -12
- package/dist/src/tokens/write/generate$themes.d.ts.map +0 -1
- package/dist/src/tokens/write/generate$themes.js +0 -161
- package/dist/src/tokens/write.d.ts.map +0 -1
- package/dist/src/tokens/write.js +0 -177
- /package/dist/{src/tokens/design-tokens/template/semantic/color-base-file.json → color.base.template-M7BHS4OV.json} +0 -0
- /package/dist/{src/tokens/design-tokens/template/semantic/modes/category-color/category-color-template.json → color.template-LMPUQ72A.json} +0 -0
- /package/dist/{src/tokens/design-tokens/template/semantic/semantic-color-template.json → color.template-XQNSHLTU.json} +0 -0
- /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/global.json → global-XVXVBKM6.json} +0 -0
- /package/dist/{src/tokens/design-tokens/default/primitives/globals.json → globals-76VAFMDF.json} +0 -0
- /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/large.json → large-CIIHO7AY.json} +0 -0
- /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/large.json → large-UUOZ6DYI.json} +0 -0
- /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/medium.json → medium-OQ7S7P4P.json} +0 -0
- /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/medium.json → medium-VSB2S4X3.json} +0 -0
- /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/small.json → small-AEXJ6U7Z.json} +0 -0
- /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/small.json → small-ZY4KOJWX.json} +0 -0
- /package/dist/src/tokens/{build → process}/formats/js-tokens.d.ts +0 -0
- /package/dist/src/tokens/{build → process}/transformers.d.ts +0 -0
- /package/dist/{src/tokens/design-tokens/default/semantic/style.json → style-FP5XVCUD.json} +0 -0
- /package/dist/{src/tokens/design-tokens/template/themes/theme-base-file.json → theme.base.template-Y4RMFBQY.json} +0 -0
- /package/dist/{src/tokens/design-tokens/template/themes/theme-color-template.json → theme.template-CTQRNOMO.json} +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { OutputFile } from '../types.js';
|
|
2
|
+
import type { ProcessReturn } from './platform.js';
|
|
3
|
+
export declare const defaultFileHeader: string;
|
|
4
|
+
type CreateThemeCSSFiles = {
|
|
5
|
+
/** The processed build results containing formatted CSS outputs grouped by themes and other permutations. */
|
|
6
|
+
processedBuilds: ProcessReturn;
|
|
7
|
+
/** Optional header to be included in the generated CSS files. */
|
|
8
|
+
fileHeader?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Generates theme-specific CSS files from Style Dictionary build results.
|
|
12
|
+
*
|
|
13
|
+
* @param processedBuilds - The processed build results containing formatted CSS outputs
|
|
14
|
+
* grouped by themes and other permutations.
|
|
15
|
+
* @param fileHeader - Optional header to be included in the generated CSS files.
|
|
16
|
+
* @returns An array of `OutputFile` objects, each representing a theme-specific CSS file
|
|
17
|
+
* with its destination and content.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* - The function groups the build results by theme and ensures a deterministic order
|
|
21
|
+
* for the sections of the entry CSS file using a predefined sort order.
|
|
22
|
+
* - If a CSS section does not have a defined sort order the section is added to the end of the entry file.
|
|
23
|
+
* - The generated CSS files include a header with metadata and layer definitions.
|
|
24
|
+
*/
|
|
25
|
+
export declare const createThemeCSSFiles: ({ processedBuilds, fileHeader, }: CreateThemeCSSFiles) => OutputFile[];
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/tokens/process/theme.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAO,MAAM,iBAAiB,QAA2B,CAAC;AAE1D,KAAK,mBAAmB,GAAG;IACzB,6GAA6G;IAC7G,eAAe,EAAE,aAAa,CAAC;IAC/B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,GAAI,kCAGjC,mBAAmB,KAAG,UAAU,EAiFlC,CAAC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
// src/tokens/process/theme.ts
|
|
2
|
+
import * as R from "ramda";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
|
|
5
|
+
// package.json
|
|
6
|
+
var package_default = {
|
|
7
|
+
name: "@digdir/designsystemet",
|
|
8
|
+
version: "1.0.5",
|
|
9
|
+
description: "CLI for Designsystemet",
|
|
10
|
+
author: "Designsystemet team",
|
|
11
|
+
engines: {
|
|
12
|
+
node: ">=22.14.0"
|
|
13
|
+
},
|
|
14
|
+
repository: {
|
|
15
|
+
type: "git",
|
|
16
|
+
url: "git+https://github.com/digdir/designsystemet.git"
|
|
17
|
+
},
|
|
18
|
+
homepage: "https://github.com/digdir/designsystemet/tree/main/scripts/cli",
|
|
19
|
+
license: "MIT",
|
|
20
|
+
type: "module",
|
|
21
|
+
main: "./dist/src/index.js",
|
|
22
|
+
files: [
|
|
23
|
+
"./dist/**"
|
|
24
|
+
],
|
|
25
|
+
bin: "dist/bin/designsystemet.js",
|
|
26
|
+
exports: {
|
|
27
|
+
".": {
|
|
28
|
+
import: "./dist/src/index.js"
|
|
29
|
+
},
|
|
30
|
+
"./color": {
|
|
31
|
+
import: "./dist/src/colors/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./tokens": {
|
|
34
|
+
import: "./dist/src/tokens/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
publishConfig: {
|
|
38
|
+
access: "public"
|
|
39
|
+
},
|
|
40
|
+
scripts: {
|
|
41
|
+
designsystemet: "tsx ./bin/designsystemet.ts",
|
|
42
|
+
"build:tokens": "yarn designsystemet tokens build -p -t ../../design-tokens -o ../../packages/theme/brand --clean",
|
|
43
|
+
"build:tokens:debug": "tsx --inspect-brk ./bin/designsystemet.ts tokens build -p -t ../../design-tokens -o ../../packages/theme/brand --clean",
|
|
44
|
+
build: "tsup && yarn build:types && yarn build:json-schema",
|
|
45
|
+
"build:types": "tsc --emitDeclarationOnly --declaration",
|
|
46
|
+
"build:json-schema": "tsx ./src/scripts/createJsonSchema.ts",
|
|
47
|
+
types: "tsc --noEmit",
|
|
48
|
+
"test:tokens-create-options": "yarn designsystemet tokens create -m dominant:#007682 -n #003333 -b 99 -o ./test-tokens/options --theme options --clean",
|
|
49
|
+
"test:tokens-create-config": "yarn designsystemet tokens create --config ./test/test-tokens.config.json",
|
|
50
|
+
"test:tokens-build": "yarn designsystemet tokens build -t ./test-tokens/options -o ./test-tokens/options-build --clean",
|
|
51
|
+
"test:tokens-build-config": "yarn designsystemet tokens build -t ./test-tokens/config -o ./test-tokens/config-build --clean",
|
|
52
|
+
"test:tokens-create-and-build-options": "yarn test:tokens-create-options && yarn test:tokens-build",
|
|
53
|
+
"test:tokens-create-and-build-config": "yarn test:tokens-create-config && yarn test:tokens-build-config",
|
|
54
|
+
test: "yarn test:tokens-create-and-build-options && yarn test:tokens-create-and-build-config",
|
|
55
|
+
"internal:tokens-create": "yarn designsystemet tokens create --config ./internal.config.json",
|
|
56
|
+
"update:template": "tsx ./src/scripts/update-template.ts",
|
|
57
|
+
"update:design-tokens": "yarn internal:tokens-create && tsx ./src/scripts/update-design-tokens.ts",
|
|
58
|
+
verify: "yarn test && yarn update:template && yarn update:design-tokens"
|
|
59
|
+
},
|
|
60
|
+
dependencies: {
|
|
61
|
+
"@commander-js/extra-typings": "^13.1.0",
|
|
62
|
+
"@tokens-studio/sd-transforms": "1.2.12",
|
|
63
|
+
"apca-w3": "^0.1.9",
|
|
64
|
+
chalk: "^5.4.1",
|
|
65
|
+
"change-case": "^5.4.4",
|
|
66
|
+
"chroma-js": "^3.1.2",
|
|
67
|
+
commander: "^13.1.0",
|
|
68
|
+
"fast-glob": "^3.3.3",
|
|
69
|
+
hsluv: "^1.0.1",
|
|
70
|
+
"object-hash": "^3.0.0",
|
|
71
|
+
postcss: "^8.5.3",
|
|
72
|
+
ramda: "^0.30.1",
|
|
73
|
+
"style-dictionary": "^4.3.3",
|
|
74
|
+
zod: "^3.24.2",
|
|
75
|
+
"zod-validation-error": "^3.4.0"
|
|
76
|
+
},
|
|
77
|
+
devDependencies: {
|
|
78
|
+
"@types/apca-w3": "^0.1.3",
|
|
79
|
+
"@types/chroma-js": "^3.1.1",
|
|
80
|
+
"@types/fs-extra": "^11.0.4",
|
|
81
|
+
"@types/glob": "^8.1.0",
|
|
82
|
+
"@types/jscodeshift": "^0.12.0",
|
|
83
|
+
"@types/node": "^22.14.0",
|
|
84
|
+
"@types/object-hash": "^3.0.6",
|
|
85
|
+
"@types/ramda": "^0.30.2",
|
|
86
|
+
"fs-extra": "^11.3.0",
|
|
87
|
+
"ts-toolbelt": "^9.6.0",
|
|
88
|
+
tslib: "^2.8.1",
|
|
89
|
+
tsup: "^8.4.0",
|
|
90
|
+
tsx: "^4.19.3",
|
|
91
|
+
typescript: "^5.8.2",
|
|
92
|
+
"zod-to-json-schema": "^3.24.5"
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// src/tokens/process/theme.ts
|
|
97
|
+
var defaultFileHeader = `build: v${package_default.version}`;
|
|
98
|
+
var createThemeCSSFiles = ({
|
|
99
|
+
processedBuilds,
|
|
100
|
+
fileHeader = defaultFileHeader
|
|
101
|
+
}) => {
|
|
102
|
+
const groupedByTheme = {};
|
|
103
|
+
for (const [_, buildResults] of Object.entries(R.dissoc("types", processedBuilds))) {
|
|
104
|
+
for (const buildResult of buildResults) {
|
|
105
|
+
const themeName = buildResult.permutation.theme;
|
|
106
|
+
const newOutputs = buildResult.formatted;
|
|
107
|
+
if (R.isNotEmpty(newOutputs)) {
|
|
108
|
+
const currentOutputs = groupedByTheme[themeName] ?? [];
|
|
109
|
+
groupedByTheme[themeName] = R.concat(currentOutputs, newOutputs);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const sortOrder = [
|
|
114
|
+
"color-scheme/light",
|
|
115
|
+
"typography/secondary",
|
|
116
|
+
"semantic",
|
|
117
|
+
"color-scheme/dark",
|
|
118
|
+
"color-scheme/contrast",
|
|
119
|
+
"typography/primary",
|
|
120
|
+
"color/"
|
|
121
|
+
];
|
|
122
|
+
const sortByDefinedOrder = R.sortBy((file) => {
|
|
123
|
+
const filePath = file.destination || "";
|
|
124
|
+
const sortIndex = sortOrder.findIndex((sortElement) => {
|
|
125
|
+
if (sortElement.endsWith("/")) {
|
|
126
|
+
return filePath.includes(sortElement);
|
|
127
|
+
}
|
|
128
|
+
return filePath.includes(`${sortElement}.css`);
|
|
129
|
+
});
|
|
130
|
+
if (sortIndex === -1) {
|
|
131
|
+
console.error(
|
|
132
|
+
chalk.yellow("WARNING: CSS section does not have a defined sort order:", filePath.replace(".css", ""))
|
|
133
|
+
);
|
|
134
|
+
console.log(
|
|
135
|
+
chalk.dim(
|
|
136
|
+
`
|
|
137
|
+
The section will currently be added to the end of the entry file, but the exact
|
|
138
|
+
order may change due to nondeterminism.`.trim()
|
|
139
|
+
)
|
|
140
|
+
);
|
|
141
|
+
return Infinity;
|
|
142
|
+
}
|
|
143
|
+
return sortIndex;
|
|
144
|
+
});
|
|
145
|
+
const header = `@charset "UTF-8";
|
|
146
|
+
|
|
147
|
+
@layer ds.theme, ds.base, ds.utilities, ds.components;
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
${fileHeader}
|
|
151
|
+
*/
|
|
152
|
+
|
|
153
|
+
`;
|
|
154
|
+
const sortAlphabetically = R.sort(R.ascend((x) => x.destination || ""));
|
|
155
|
+
const pickOutputs = R.map(R.view(R.lensProp("output")));
|
|
156
|
+
const themeCSSFile = R.pipe(
|
|
157
|
+
sortAlphabetically,
|
|
158
|
+
sortByDefinedOrder,
|
|
159
|
+
pickOutputs,
|
|
160
|
+
R.join("\n"),
|
|
161
|
+
(content) => header + content
|
|
162
|
+
);
|
|
163
|
+
const themeCSSFiles = Object.entries(groupedByTheme).map(([theme, files]) => ({
|
|
164
|
+
destination: `${theme}.css`,
|
|
165
|
+
output: themeCSSFile(files)
|
|
166
|
+
}));
|
|
167
|
+
return themeCSSFiles;
|
|
168
|
+
};
|
|
169
|
+
export {
|
|
170
|
+
createThemeCSSFiles,
|
|
171
|
+
defaultFileHeader
|
|
172
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../../../src/tokens/process/transformers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,eAAO,MAAM,OAAO,EAAE,SAyBrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAS5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,SAWzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SAMtB,CAAC"}
|
|
@@ -1,8 +1,31 @@
|
|
|
1
|
+
// src/tokens/process/transformers.ts
|
|
1
2
|
import { checkAndEvaluateMath } from "@tokens-studio/sd-transforms";
|
|
3
|
+
import * as R2 from "ramda";
|
|
4
|
+
|
|
5
|
+
// src/tokens/utils.ts
|
|
2
6
|
import * as R from "ramda";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
7
|
+
var mapToLowerCase = R.map(R.toLower);
|
|
8
|
+
var hasAnyTruth = R.any(R.equals(true));
|
|
9
|
+
var getType = (token) => (token.$type ?? token.type) || "";
|
|
10
|
+
var getValue = (token) => token.$value ?? token.value;
|
|
11
|
+
var typeEquals = R.curry((types, token) => {
|
|
12
|
+
if (R.isNil(token)) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return R.includes(R.toLower(getType(token)), R.map(R.toLower, Array.isArray(types) ? types : [types]));
|
|
16
|
+
});
|
|
17
|
+
var pathStartsWithOneOf = R.curry((paths, token) => {
|
|
18
|
+
if (R.isNil(token)) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
const tokenPath = mapToLowerCase(token.path);
|
|
22
|
+
const matchPathsStartingWith = R.map((path) => R.startsWith([path], tokenPath), mapToLowerCase(paths));
|
|
23
|
+
return hasAnyTruth(matchPathsStartingWith);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
// src/tokens/process/transformers.ts
|
|
27
|
+
var isPx = R2.test(/\b\d+px\b/g);
|
|
28
|
+
var sizeRem = {
|
|
6
29
|
name: "ds/size/toRem",
|
|
7
30
|
type: "value",
|
|
8
31
|
transitive: true,
|
|
@@ -24,7 +47,7 @@ const sizeRem = {
|
|
|
24
47
|
return value;
|
|
25
48
|
}
|
|
26
49
|
};
|
|
27
|
-
|
|
50
|
+
var typographyName = {
|
|
28
51
|
name: "name/typography",
|
|
29
52
|
type: "name",
|
|
30
53
|
transitive: true,
|
|
@@ -34,7 +57,7 @@ const typographyName = {
|
|
|
34
57
|
return token.name.replace("-typography", "");
|
|
35
58
|
}
|
|
36
59
|
};
|
|
37
|
-
|
|
60
|
+
var resolveMath = {
|
|
38
61
|
name: "ds/resolveMath",
|
|
39
62
|
type: "value",
|
|
40
63
|
transitive: true,
|
|
@@ -45,7 +68,7 @@ const resolveMath = {
|
|
|
45
68
|
},
|
|
46
69
|
transform: (token, platformCfg) => checkAndEvaluateMath(token, platformCfg.mathFractionDigits)
|
|
47
70
|
};
|
|
48
|
-
|
|
71
|
+
var unitless = {
|
|
49
72
|
name: "ds/unitless",
|
|
50
73
|
type: "value",
|
|
51
74
|
transitive: true,
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { ThemeObject } from '@tokens-studio/types';
|
|
2
|
-
import type { ThemeDimension, ThemePermutation } from '
|
|
2
|
+
import type { ThemeDimension, ThemePermutation } from '../../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Find the theme permutations that are relevant for the given theme dimensions.
|
|
5
5
|
*
|
|
6
6
|
* Technically, for the given dimensions all permutations are included, while for other
|
|
7
7
|
* dimensions the first permutation is used.
|
|
8
8
|
*
|
|
9
|
-
* @param themes Theme objects from $themes.json (Tokens Studio)
|
|
9
|
+
* @param processed$themes Theme objects from $themes.json (Tokens Studio)
|
|
10
10
|
* @param dimensions Which theme dimensions to return permutations for.
|
|
11
11
|
* 'theme' (e.g. altinn/digdir/uutilsynet) is always implicitly included.
|
|
12
12
|
* @returns the relevant theme permutations
|
|
13
13
|
*/
|
|
14
|
-
export declare const getMultidimensionalThemes: (themes: ProcessedThemeObject[], dimensions: ThemeDimension[]) => PermutatedTheme[];
|
|
14
|
+
export declare const getMultidimensionalThemes: (processed$themes: ProcessedThemeObject[], dimensions: ThemeDimension[]) => PermutatedTheme[];
|
|
15
15
|
export type PermutatedTheme = {
|
|
16
16
|
name: string;
|
|
17
17
|
selectedTokenSets: string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMultidimensionalThemes.d.ts","sourceRoot":"","sources":["../../../../../src/tokens/process/utils/getMultidimensionalThemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,GAAI,kBAAkB,oBAAoB,EAAE,EAAE,YAAY,cAAc,EAAE,sBAe/G,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,QAAA,MAAM,SAAS,EAAE,OAAO,MAAsD,CAAC;AAC/E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAAE,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAMvE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,GAAG,oBAAoB,CAUlG;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,gBAAgB,EAAE,oBAAoB,EAAE,CAAC,CAAC"}
|