@digdir/designsystemet 1.4.0 → 1.5.1

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 (60) hide show
  1. package/dist/bin/designsystemet.js +485 -163
  2. package/dist/global-Y35YADVH.json +100 -0
  3. package/dist/src/index.js +524 -200
  4. package/dist/src/scripts/update-preview-tokens.js +429 -118
  5. package/dist/src/tokens/build.js +426 -108
  6. package/dist/src/tokens/create/defaults.js +27 -23
  7. package/dist/src/tokens/create/generators/$designsystemet.js +3 -3
  8. package/dist/src/tokens/create/write.js +3 -3
  9. package/dist/src/tokens/create.js +27 -23
  10. package/dist/src/tokens/format.js +524 -200
  11. package/dist/src/tokens/index.js +524 -200
  12. package/dist/src/tokens/process/configs/color.js +366 -66
  13. package/dist/src/tokens/process/configs/semantic.d.ts.map +1 -1
  14. package/dist/src/tokens/process/configs/semantic.js +368 -68
  15. package/dist/src/tokens/process/configs/shared.js +9 -2
  16. package/dist/src/tokens/process/configs/size-mode.d.ts +3 -0
  17. package/dist/src/tokens/process/configs/size-mode.d.ts.map +1 -0
  18. package/dist/src/tokens/process/configs/size-mode.js +1067 -0
  19. package/dist/src/tokens/process/configs/size.d.ts +3 -0
  20. package/dist/src/tokens/process/configs/size.d.ts.map +1 -0
  21. package/dist/src/tokens/process/configs/size.js +1069 -0
  22. package/dist/src/tokens/process/configs/type-scale.d.ts +3 -0
  23. package/dist/src/tokens/process/configs/type-scale.d.ts.map +1 -0
  24. package/dist/src/tokens/process/configs/type-scale.js +1067 -0
  25. package/dist/src/tokens/process/configs/typography.d.ts.map +1 -1
  26. package/dist/src/tokens/process/configs/typography.js +364 -64
  27. package/dist/src/tokens/process/configs.d.ts +3 -0
  28. package/dist/src/tokens/process/configs.d.ts.map +1 -1
  29. package/dist/src/tokens/process/configs.js +373 -71
  30. package/dist/src/tokens/process/formats/css/color.js +381 -79
  31. package/dist/src/tokens/process/formats/css/semantic.d.ts +0 -14
  32. package/dist/src/tokens/process/formats/css/semantic.d.ts.map +1 -1
  33. package/dist/src/tokens/process/formats/css/semantic.js +407 -109
  34. package/dist/src/tokens/process/formats/css/size-mode.d.ts +4 -0
  35. package/dist/src/tokens/process/formats/css/size-mode.d.ts.map +1 -0
  36. package/dist/src/tokens/process/formats/css/size-mode.js +1068 -0
  37. package/dist/src/tokens/process/formats/css/size.d.ts +17 -0
  38. package/dist/src/tokens/process/formats/css/size.d.ts.map +1 -0
  39. package/dist/src/tokens/process/formats/css/size.js +1069 -0
  40. package/dist/src/tokens/process/formats/css/type-scale.d.ts +3 -0
  41. package/dist/src/tokens/process/formats/css/type-scale.d.ts.map +1 -0
  42. package/dist/src/tokens/process/formats/css/type-scale.js +1069 -0
  43. package/dist/src/tokens/process/formats/css/typography.js +365 -63
  44. package/dist/src/tokens/process/formats/css.d.ts +3 -0
  45. package/dist/src/tokens/process/formats/css.d.ts.map +1 -1
  46. package/dist/src/tokens/process/formats/css.js +364 -64
  47. package/dist/src/tokens/process/output/declarations.js +373 -71
  48. package/dist/src/tokens/process/output/theme.d.ts.map +1 -1
  49. package/dist/src/tokens/process/output/theme.js +60 -11
  50. package/dist/src/tokens/process/platform.d.ts +16 -0
  51. package/dist/src/tokens/process/platform.d.ts.map +1 -1
  52. package/dist/src/tokens/process/platform.js +402 -95
  53. package/dist/src/tokens/process/transformers.js +9 -2
  54. package/dist/src/tokens/process/utils/getMultidimensionalThemes.js +373 -71
  55. package/dist/src/tokens/template/design-tokens/primitives/modes/size/global.js +1 -1
  56. package/dist/src/tokens/utils.d.ts +4 -1
  57. package/dist/src/tokens/utils.d.ts.map +1 -1
  58. package/dist/src/tokens/utils.js +24 -1
  59. package/package.json +3 -3
  60. package/dist/global-XVXVBKM6.json +0 -96
@@ -1,11 +1,11 @@
1
1
  // src/tokens/process/output/theme.ts
2
2
  import pc from "picocolors";
3
- import * as R from "ramda";
3
+ import * as R2 from "ramda";
4
4
 
5
5
  // package.json
6
6
  var package_default = {
7
7
  name: "@digdir/designsystemet",
8
- version: "1.4.0",
8
+ version: "1.5.1",
9
9
  description: "CLI for Designsystemet",
10
10
  author: "Designsystemet team",
11
11
  engines: {
@@ -88,9 +88,9 @@ var package_default = {
88
88
  "@types/apca-w3": "^0.1.3",
89
89
  "@types/chroma-js": "^3.1.1",
90
90
  "@types/fs-extra": "^11.0.4",
91
- "@types/node": "^22.18.0",
91
+ "@types/node": "^22.18.1",
92
92
  "@types/object-hash": "^3.0.6",
93
- "@types/ramda": "^0.31.0",
93
+ "@types/ramda": "^0.31.1",
94
94
  "fs-extra": "^11.3.1",
95
95
  tslib: "^2.8.1",
96
96
  tsup: "^8.5.0",
@@ -99,8 +99,50 @@ var package_default = {
99
99
  }
100
100
  };
101
101
 
102
+ // src/tokens/utils.ts
103
+ import * as R from "ramda";
104
+ var mapToLowerCase = R.map(R.toLower);
105
+ var hasAnyTruth = R.any(R.equals(true));
106
+ var getType = (token) => (token.$type ?? token.type) || "";
107
+ var typeEquals = R.curry(
108
+ (types, token) => {
109
+ if (R.isNil(token)) {
110
+ return false;
111
+ }
112
+ return R.includes(R.toLower(getType(token)), R.map(R.toLower, Array.isArray(types) ? types : [types]));
113
+ }
114
+ );
115
+ var pathStartsWithOneOf = R.curry(
116
+ (paths, token) => {
117
+ if (R.isNil(token)) {
118
+ return false;
119
+ }
120
+ const tokenPath = mapToLowerCase(token.path);
121
+ const matchPathsStartingWith = R.map((pathOrString) => {
122
+ const path = typeof pathOrString === "string" ? [pathOrString] : pathOrString;
123
+ return R.startsWith(mapToLowerCase(path), tokenPath);
124
+ }, paths);
125
+ return hasAnyTruth(matchPathsStartingWith);
126
+ }
127
+ );
128
+ var sizeMap = {
129
+ xsmall: "xs",
130
+ small: "sm",
131
+ medium: "md",
132
+ large: "lg",
133
+ xlarge: "xl"
134
+ };
135
+ var sizeComparator = (size) => {
136
+ const sortIndex = Object.entries(sizeMap).findIndex(([key, val]) => key === size || val === size);
137
+ return sortIndex ?? 0;
138
+ };
139
+
102
140
  // src/tokens/process/output/theme.ts
103
141
  var defaultFileHeader = `build: v${package_default.version}`;
142
+ var getFileNameWithoutExtension = (path) => {
143
+ const pathSegments = path.split("/");
144
+ return pathSegments[pathSegments.length - 1].split(".").slice(0, -1).join(".");
145
+ };
104
146
  var createThemeCSSFiles = ({
105
147
  processedBuilds,
106
148
  fileHeader = defaultFileHeader
@@ -110,22 +152,25 @@ var createThemeCSSFiles = ({
110
152
  for (const buildResult of buildResults) {
111
153
  const themeName = buildResult.permutation.theme;
112
154
  const newOutputs = buildResult.formatted;
113
- if (R.isNotEmpty(newOutputs)) {
155
+ if (R2.isNotEmpty(newOutputs)) {
114
156
  const currentOutputs = groupedByTheme[themeName] ?? [];
115
- groupedByTheme[themeName] = R.concat(currentOutputs, newOutputs);
157
+ groupedByTheme[themeName] = R2.concat(currentOutputs, newOutputs);
116
158
  }
117
159
  }
118
160
  }
119
161
  const sortOrder = [
162
+ "size-mode/",
163
+ "type-scale",
120
164
  "color-scheme/light",
121
165
  "typography/secondary",
166
+ "size",
122
167
  "semantic",
123
168
  "color-scheme/dark",
124
169
  "color-scheme/contrast",
125
170
  "typography/primary",
126
171
  "color/"
127
172
  ];
128
- const sortByDefinedOrder = R.sortBy((file) => {
173
+ const sortByDefinedOrder = R2.sortBy((file) => {
129
174
  const filePath = file.destination || "";
130
175
  const sortIndex = sortOrder.findIndex((sortElement) => {
131
176
  if (sortElement.endsWith("/")) {
@@ -154,13 +199,17 @@ ${fileHeader}
154
199
  */
155
200
 
156
201
  `;
157
- const sortAlphabetically = R.sort(R.ascend((x) => x.destination || ""));
158
- const pickOutputs = R.map(R.view(R.lensProp("output")));
159
- const themeCSSFile = R.pipe(
202
+ const sortAlphabetically = R2.sort(R2.ascend((x) => x.destination || ""));
203
+ const sortBySize = R2.sortBy(
204
+ R2.pipe((s) => getFileNameWithoutExtension(s.destination ?? ""), sizeComparator)
205
+ );
206
+ const pickOutputs = R2.map(R2.view(R2.lensProp("output")));
207
+ const themeCSSFile = R2.pipe(
160
208
  sortAlphabetically,
209
+ sortBySize,
161
210
  sortByDefinedOrder,
162
211
  pickOutputs,
163
- R.join("\n"),
212
+ R2.join("\n"),
164
213
  (content) => header + content
165
214
  );
166
215
  const themeCSSFiles = Object.entries(groupedByTheme).map(([theme, files]) => ({
@@ -7,6 +7,10 @@ type SharedOptions = {
7
7
  verbose: boolean;
8
8
  /** Set the default color for ":root" */
9
9
  defaultColor?: string;
10
+ /** Set the default size mode */
11
+ defaultSize?: string;
12
+ /** Set the available size modes */
13
+ sizeModes?: string[];
10
14
  /** Dry run, no files will be written */
11
15
  dry?: boolean;
12
16
  /** Token Studio `$themes.json` content */
@@ -47,6 +51,18 @@ declare const buildConfigs: {
47
51
  getConfig: import("./configs/shared.js").GetStyleDictionaryConfig;
48
52
  dimensions: "typography"[];
49
53
  };
54
+ sizeMode: {
55
+ getConfig: import("./configs/shared.js").GetStyleDictionaryConfig;
56
+ dimensions: "size"[];
57
+ };
58
+ size: {
59
+ getConfig: import("./configs/shared.js").GetStyleDictionaryConfig;
60
+ dimensions: "semantic"[];
61
+ };
62
+ typeScale: {
63
+ getConfig: import("./configs/shared.js").GetStyleDictionaryConfig;
64
+ dimensions: "semantic"[];
65
+ };
50
66
  'color-scheme': {
51
67
  getConfig: import("./configs/shared.js").GetStyleDictionaryConfig;
52
68
  dimensions: "color-scheme"[];
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/tokens/process/platform.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAqC,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAElG,KAAK,aAAa,GAAG;IACnB,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;IACzC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,6BAA6B;IAC7B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;CACrF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB;IAChB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClC,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC;AAE1D,KAAK,qBAAqB,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC;AAErE,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC;AAEjE,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B,CAAC;AAgBF,eAAO,IAAI,YAAY,EAAE,aAIxB,CAAC;AAOF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BqB,CAAC;AAExC,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAuIrF"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/tokens/process/platform.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAqC,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAElG,KAAK,aAAa,GAAG;IACnB,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,wCAAwC;IACxC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;IACzC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,6BAA6B;IAC7B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;CACrF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB;IAChB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClC,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC;AAE1D,KAAK,qBAAqB,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC;AAErE,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC;AAEjE,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B,CAAC;AAgBF,eAAO,IAAI,YAAY,EAAE,aAIxB,CAAC;AAOF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCqB,CAAC;AAExC,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA2IrF"}