@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.
Files changed (189) hide show
  1. package/dist/bin/designsystemet.js +4287 -45
  2. package/dist/bin/options.js +5 -4
  3. package/dist/src/colors/colorMetadata.js +5 -4
  4. package/dist/src/colors/index.js +470 -4
  5. package/dist/src/colors/theme.js +286 -20
  6. package/dist/src/colors/utils.js +16 -15
  7. package/dist/{bin → src}/config.d.ts +46 -1
  8. package/dist/src/config.d.ts.map +1 -0
  9. package/dist/src/config.js +377 -0
  10. package/dist/src/index.js +3682 -2
  11. package/dist/src/migrations/beta-to-v1.js +85 -4
  12. package/dist/src/migrations/codemods/css/plugins.js +5 -4
  13. package/dist/src/migrations/codemods/css/run.d.ts.map +1 -1
  14. package/dist/src/migrations/codemods/css/run.js +18 -4
  15. package/dist/src/migrations/color-rename-next49.js +77 -6
  16. package/dist/src/migrations/index.d.ts +0 -1
  17. package/dist/src/migrations/index.d.ts.map +1 -1
  18. package/dist/src/migrations/index.js +461 -6
  19. package/dist/src/scripts/createJsonSchema.js +1608 -4
  20. package/dist/src/scripts/update-design-tokens.d.ts +2 -0
  21. package/dist/src/scripts/update-design-tokens.d.ts.map +1 -0
  22. package/dist/src/scripts/update-design-tokens.js +37 -0
  23. package/dist/src/{tokens/template.d.ts → scripts/update-template.d.ts} +1 -1
  24. package/dist/src/scripts/update-template.d.ts.map +1 -0
  25. package/dist/src/scripts/update-template.js +1200 -0
  26. package/dist/src/tokens/build.d.ts +2 -19
  27. package/dist/src/tokens/build.d.ts.map +1 -1
  28. package/dist/src/tokens/build.js +1268 -70
  29. package/dist/src/tokens/create/defaults.d.ts +7 -0
  30. package/dist/src/tokens/create/defaults.d.ts.map +1 -0
  31. package/dist/src/tokens/create/defaults.js +994 -0
  32. package/dist/src/tokens/create/generators/$designsystemet.d.ts +5 -0
  33. package/dist/src/tokens/create/generators/$designsystemet.d.ts.map +1 -0
  34. package/dist/src/tokens/create/generators/$designsystemet.js +101 -0
  35. package/dist/src/tokens/create/generators/$metadata.d.ts +8 -0
  36. package/dist/src/tokens/create/generators/$metadata.d.ts.map +1 -0
  37. package/dist/src/tokens/{write/generate$metadata.js → create/generators/$metadata.js} +3 -2
  38. package/dist/src/tokens/create/generators/$themes.d.ts +12 -0
  39. package/dist/src/tokens/create/generators/$themes.d.ts.map +1 -0
  40. package/dist/src/tokens/create/generators/$themes.js +333 -0
  41. package/dist/src/tokens/create/generators/color.d.ts +5 -0
  42. package/dist/src/tokens/create/generators/color.d.ts.map +1 -0
  43. package/dist/src/tokens/create/generators/color.js +374 -0
  44. package/dist/src/tokens/create/generators/semantic.d.ts +296 -0
  45. package/dist/src/tokens/create/generators/semantic.d.ts.map +1 -0
  46. package/dist/src/tokens/create/generators/semantic.js +483 -0
  47. package/dist/src/tokens/create/generators/theme.d.ts +3 -0
  48. package/dist/src/tokens/create/generators/theme.d.ts.map +1 -0
  49. package/dist/src/tokens/create/generators/theme.js +168 -0
  50. package/dist/src/tokens/create/generators/typography.d.ts +3 -0
  51. package/dist/src/tokens/create/generators/typography.d.ts.map +1 -0
  52. package/dist/src/tokens/create/generators/typography.js +33 -0
  53. package/dist/src/tokens/{write.d.ts → create/write.d.ts} +2 -2
  54. package/dist/src/tokens/create/write.d.ts.map +1 -0
  55. package/dist/src/tokens/create/write.js +547 -0
  56. package/dist/src/tokens/create.d.ts +4 -2
  57. package/dist/src/tokens/create.d.ts.map +1 -1
  58. package/dist/src/tokens/create.js +2049 -59
  59. package/dist/src/tokens/format.d.ts +15 -0
  60. package/dist/src/tokens/format.d.ts.map +1 -0
  61. package/dist/src/tokens/format.js +3529 -0
  62. package/dist/src/tokens/index.d.ts +1 -0
  63. package/dist/src/tokens/index.d.ts.map +1 -1
  64. package/dist/src/tokens/index.js +3542 -2
  65. package/dist/src/tokens/process/configs/color.d.ts +12 -0
  66. package/dist/src/tokens/process/configs/color.d.ts.map +1 -0
  67. package/dist/src/tokens/process/configs/color.js +823 -0
  68. package/dist/src/tokens/process/configs/semantic.d.ts +3 -0
  69. package/dist/src/tokens/process/configs/semantic.d.ts.map +1 -0
  70. package/dist/src/tokens/process/configs/semantic.js +367 -0
  71. package/dist/src/tokens/process/configs/shared.d.ts +10 -0
  72. package/dist/src/tokens/process/configs/shared.d.ts.map +1 -0
  73. package/dist/src/tokens/process/configs/shared.js +99 -0
  74. package/dist/src/tokens/process/configs/storefront.d.ts +3 -0
  75. package/dist/src/tokens/process/configs/storefront.d.ts.map +1 -0
  76. package/dist/src/tokens/process/configs/storefront.js +220 -0
  77. package/dist/src/tokens/process/configs/typography.d.ts +3 -0
  78. package/dist/src/tokens/process/configs/typography.d.ts.map +1 -0
  79. package/dist/src/tokens/process/configs/typography.js +369 -0
  80. package/dist/src/tokens/{build → process}/configs.d.ts +3 -11
  81. package/dist/src/tokens/process/configs.d.ts.map +1 -0
  82. package/dist/src/tokens/process/configs.js +976 -0
  83. package/dist/src/tokens/process/formats/css/color.d.ts +4 -0
  84. package/dist/src/tokens/process/formats/css/color.d.ts.map +1 -0
  85. package/dist/src/tokens/process/formats/css/color.js +128 -0
  86. package/dist/src/tokens/process/formats/css/semantic.d.ts +17 -0
  87. package/dist/src/tokens/process/formats/css/semantic.d.ts.map +1 -0
  88. package/dist/src/tokens/process/formats/css/semantic.js +109 -0
  89. package/dist/src/tokens/process/formats/css/typography.d.ts +3 -0
  90. package/dist/src/tokens/process/formats/css/typography.d.ts.map +1 -0
  91. package/dist/src/tokens/process/formats/css/typography.js +32 -0
  92. package/dist/src/tokens/process/formats/css.d.ts +8 -0
  93. package/dist/src/tokens/process/formats/css.d.ts.map +1 -0
  94. package/dist/src/tokens/{build → process}/formats/css.js +94 -57
  95. package/dist/src/tokens/process/formats/js-tokens.d.ts.map +1 -0
  96. package/dist/src/tokens/process/formats/js-tokens.js +109 -0
  97. package/dist/src/tokens/process/platform.d.ts +87 -0
  98. package/dist/src/tokens/process/platform.d.ts.map +1 -0
  99. package/dist/src/tokens/process/platform.js +1090 -0
  100. package/dist/src/tokens/process/theme.d.ts +27 -0
  101. package/dist/src/tokens/process/theme.d.ts.map +1 -0
  102. package/dist/src/tokens/process/theme.js +172 -0
  103. package/dist/src/tokens/process/transformers.d.ts.map +1 -0
  104. package/dist/src/tokens/{build → process}/transformers.js +29 -6
  105. package/dist/src/tokens/{build → process}/utils/getMultidimensionalThemes.d.ts +3 -3
  106. package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts.map +1 -0
  107. package/dist/src/tokens/process/utils/getMultidimensionalThemes.js +922 -0
  108. package/dist/src/tokens/template/design-tokens/primitives/globals.js +5 -0
  109. package/dist/src/tokens/template/design-tokens/primitives/modes/size/global.js +5 -0
  110. package/dist/src/tokens/template/design-tokens/primitives/modes/size/large.js +5 -0
  111. package/dist/src/tokens/template/design-tokens/primitives/modes/size/medium.js +5 -0
  112. package/dist/src/tokens/template/design-tokens/primitives/modes/size/small.js +5 -0
  113. package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/large.js +5 -0
  114. package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/medium.js +5 -0
  115. package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/small.js +5 -0
  116. package/dist/src/tokens/template/design-tokens/primitives/modes/typography/typography.template.js +5 -0
  117. package/dist/src/tokens/template/design-tokens/semantic/color.base.template.js +5 -0
  118. package/dist/src/tokens/template/design-tokens/semantic/color.template.js +5 -0
  119. package/dist/src/tokens/template/design-tokens/semantic/modes/color.template.js +5 -0
  120. package/dist/src/tokens/template/design-tokens/semantic/style.js +5 -0
  121. package/dist/src/tokens/template/design-tokens/themes/theme.base.template.js +5 -0
  122. package/dist/src/tokens/template/design-tokens/themes/theme.template.js +5 -0
  123. package/dist/src/tokens/types.d.ts +58 -38
  124. package/dist/src/tokens/types.d.ts.map +1 -1
  125. package/dist/src/tokens/types.js +8 -0
  126. package/dist/src/tokens/utils.d.ts +30 -5
  127. package/dist/src/tokens/utils.d.ts.map +1 -1
  128. package/dist/src/tokens/utils.js +36 -50
  129. package/dist/src/utils.d.ts +18 -0
  130. package/dist/src/utils.d.ts.map +1 -0
  131. package/dist/src/utils.js +63 -0
  132. package/dist/typography.template-4N5YLH7F.json +22 -0
  133. package/package.json +22 -20
  134. package/dist/bin/config.d.ts.map +0 -1
  135. package/dist/bin/config.js +0 -71
  136. package/dist/src/migrations/codemods/jsx/classname-prefix.d.ts +0 -10
  137. package/dist/src/migrations/codemods/jsx/classname-prefix.d.ts.map +0 -1
  138. package/dist/src/migrations/codemods/jsx/classname-prefix.js +0 -64
  139. package/dist/src/migrations/codemods/jsx/run.d.ts +0 -7
  140. package/dist/src/migrations/codemods/jsx/run.d.ts.map +0 -1
  141. package/dist/src/migrations/codemods/jsx/run.js +0 -22
  142. package/dist/src/migrations/react-beta-to-v1.d.ts +0 -3
  143. package/dist/src/migrations/react-beta-to-v1.d.ts.map +0 -1
  144. package/dist/src/migrations/react-beta-to-v1.js +0 -5
  145. package/dist/src/scripts/copy-internal-tokens.d.ts +0 -2
  146. package/dist/src/scripts/copy-internal-tokens.d.ts.map +0 -1
  147. package/dist/src/scripts/copy-internal-tokens.js +0 -28
  148. package/dist/src/tokens/build/configs.d.ts.map +0 -1
  149. package/dist/src/tokens/build/configs.js +0 -280
  150. package/dist/src/tokens/build/formats/css.d.ts +0 -53
  151. package/dist/src/tokens/build/formats/css.d.ts.map +0 -1
  152. package/dist/src/tokens/build/formats/js-tokens.d.ts.map +0 -1
  153. package/dist/src/tokens/build/formats/js-tokens.js +0 -48
  154. package/dist/src/tokens/build/transformers.d.ts.map +0 -1
  155. package/dist/src/tokens/build/types.d.ts +0 -48
  156. package/dist/src/tokens/build/types.d.ts.map +0 -1
  157. package/dist/src/tokens/build/types.js +0 -7
  158. package/dist/src/tokens/build/utils/entryfile.d.ts +0 -12
  159. package/dist/src/tokens/build/utils/entryfile.d.ts.map +0 -1
  160. package/dist/src/tokens/build/utils/entryfile.js +0 -67
  161. package/dist/src/tokens/build/utils/getMultidimensionalThemes.d.ts.map +0 -1
  162. package/dist/src/tokens/build/utils/getMultidimensionalThemes.js +0 -112
  163. package/dist/src/tokens/design-tokens/template/$metadata.json +0 -25
  164. package/dist/src/tokens/design-tokens/template/$themes.json +0 -1498
  165. package/dist/src/tokens/template.d.ts.map +0 -1
  166. package/dist/src/tokens/template.js +0 -99
  167. package/dist/src/tokens/write/generate$metadata.d.ts +0 -9
  168. package/dist/src/tokens/write/generate$metadata.d.ts.map +0 -1
  169. package/dist/src/tokens/write/generate$themes.d.ts +0 -12
  170. package/dist/src/tokens/write/generate$themes.d.ts.map +0 -1
  171. package/dist/src/tokens/write/generate$themes.js +0 -161
  172. package/dist/src/tokens/write.d.ts.map +0 -1
  173. package/dist/src/tokens/write.js +0 -177
  174. /package/dist/{src/tokens/design-tokens/template/semantic/color-base-file.json → color.base.template-M7BHS4OV.json} +0 -0
  175. /package/dist/{src/tokens/design-tokens/template/semantic/modes/category-color/category-color-template.json → color.template-LMPUQ72A.json} +0 -0
  176. /package/dist/{src/tokens/design-tokens/template/semantic/semantic-color-template.json → color.template-XQNSHLTU.json} +0 -0
  177. /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/global.json → global-XVXVBKM6.json} +0 -0
  178. /package/dist/{src/tokens/design-tokens/default/primitives/globals.json → globals-76VAFMDF.json} +0 -0
  179. /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/large.json → large-CIIHO7AY.json} +0 -0
  180. /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/large.json → large-UUOZ6DYI.json} +0 -0
  181. /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/medium.json → medium-OQ7S7P4P.json} +0 -0
  182. /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/medium.json → medium-VSB2S4X3.json} +0 -0
  183. /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/small.json → small-AEXJ6U7Z.json} +0 -0
  184. /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/small.json → small-ZY4KOJWX.json} +0 -0
  185. /package/dist/src/tokens/{build → process}/formats/js-tokens.d.ts +0 -0
  186. /package/dist/src/tokens/{build → process}/transformers.d.ts +0 -0
  187. /package/dist/{src/tokens/design-tokens/default/semantic/style.json → style-FP5XVCUD.json} +0 -0
  188. /package/dist/{src/tokens/design-tokens/template/themes/theme-base-file.json → theme.base.template-Y4RMFBQY.json} +0 -0
  189. /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
- import { getValue, pathStartsWithOneOf, typeEquals } from "../utils.js";
4
- const isPx = R.test(/\b\d+px\b/g);
5
- const sizeRem = {
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
- const typographyName = {
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
- const resolveMath = {
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
- const unitless = {
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 '../types.js';
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"}