@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,823 @@
1
+ // src/tokens/process/configs/color.ts
2
+ import * as R12 from "ramda";
3
+
4
+ // src/tokens/utils.ts
5
+ import * as R from "ramda";
6
+ var mapToLowerCase = R.map(R.toLower);
7
+ var hasAnyTruth = R.any(R.equals(true));
8
+ var getType = (token) => (token.$type ?? token.type) || "";
9
+ var getValue = (token) => token.$value ?? token.value;
10
+ var typeEquals = R.curry((types, token) => {
11
+ if (R.isNil(token)) {
12
+ return false;
13
+ }
14
+ return R.includes(R.toLower(getType(token)), R.map(R.toLower, Array.isArray(types) ? types : [types]));
15
+ });
16
+ var pathStartsWithOneOf = R.curry((paths, token) => {
17
+ if (R.isNil(token)) {
18
+ return false;
19
+ }
20
+ const tokenPath = mapToLowerCase(token.path);
21
+ const matchPathsStartingWith = R.map((path) => R.startsWith([path], tokenPath), mapToLowerCase(paths));
22
+ return hasAnyTruth(matchPathsStartingWith);
23
+ });
24
+ function isSemanticToken(token) {
25
+ return token.filePath.includes("semantic/");
26
+ }
27
+ function isSemanticColorToken(token, color) {
28
+ return token.filePath.includes("semantic/") && R.startsWith(["color", color], token.path);
29
+ }
30
+ function isGlobalColorToken(token) {
31
+ return typeEquals("color", token) && pathStartsWithOneOf(["global"], token);
32
+ }
33
+ function isColorCategoryToken(token, category) {
34
+ if (!category) {
35
+ return ["main", "support"].some((c) => isColorCategoryToken(token, c));
36
+ }
37
+ return R.startsWith(["color", category], token.path);
38
+ }
39
+ var isDigit = (s) => /^\d+$/.test(s);
40
+ function inlineTokens(shouldInline, tokens) {
41
+ const [inlineableTokens, otherTokens] = R.partition(shouldInline, tokens);
42
+ return otherTokens.map((token) => {
43
+ let transformed = getValue(token.original);
44
+ for (const ref of inlineableTokens) {
45
+ const refName = ref.path.join(".");
46
+ if (typeof transformed === "string") {
47
+ transformed = transformed.replaceAll(`{${refName}}`, getValue(ref.original));
48
+ }
49
+ }
50
+ const tokenWithInlinedRefs = R.set(R.lensPath(["original", "$value"]), transformed, token);
51
+ return tokenWithInlinedRefs;
52
+ });
53
+ }
54
+
55
+ // src/tokens/process/formats/css/color.ts
56
+ import * as R2 from "ramda";
57
+ import { createPropertyFormatter } from "style-dictionary/utils";
58
+
59
+ // src/tokens/types.ts
60
+ var colorCategories = {
61
+ main: "main",
62
+ support: "support"
63
+ };
64
+
65
+ // src/tokens/process/formats/css/color.ts
66
+ var prefersColorScheme = (colorScheme2, content) => `
67
+ @media (prefers-color-scheme: ${colorScheme2}) {
68
+ [data-color-scheme="auto"] ${content}
69
+ }
70
+ `;
71
+ var colorScheme = {
72
+ name: "ds/css-colorscheme",
73
+ format: async ({ dictionary, file, options, platform }) => {
74
+ const { allTokens } = dictionary;
75
+ const { outputReferences, usesDtcg } = options;
76
+ const { selector, colorScheme: colorScheme2, layer } = platform;
77
+ const colorScheme_ = colorScheme2;
78
+ const format = createPropertyFormatter({
79
+ outputReferences,
80
+ dictionary,
81
+ format: "css",
82
+ usesDtcg
83
+ });
84
+ const colorSchemeProperty = colorScheme_ === "dark" || colorScheme_ === "light" ? `
85
+ color-scheme: ${colorScheme_};
86
+ ` : "";
87
+ const filteredAllTokens = allTokens.filter(
88
+ R2.allPass([
89
+ R2.anyPass([
90
+ // Include semantic tokens in the output
91
+ isSemanticToken,
92
+ // Include global color tokens
93
+ isGlobalColorToken
94
+ ]),
95
+ // Don't include color category tokens -- they are exported separately
96
+ (t) => !isColorCategoryToken(t)
97
+ ])
98
+ );
99
+ const formattedTokens = filteredAllTokens.map(format).join("\n");
100
+ const content = `{
101
+ ${formattedTokens}
102
+ ${colorSchemeProperty}}
103
+ `;
104
+ const autoSelectorContent = ["light", "dark"].includes(colorScheme_) ? prefersColorScheme(colorScheme_, content) : "";
105
+ const body = R2.isNotNil(layer) ? `@layer ${layer} {
106
+ ${selector} ${content} ${autoSelectorContent}
107
+ }
108
+ ` : `${selector} ${content} ${autoSelectorContent}
109
+ `;
110
+ return body;
111
+ }
112
+ };
113
+ var colorCategory = {
114
+ name: "ds/css-colorcategory",
115
+ format: async ({ dictionary, file, options, platform }) => {
116
+ const { outputReferences, usesDtcg } = options;
117
+ const { selector, layer } = platform;
118
+ const format = R2.compose(
119
+ createPropertyFormatter({
120
+ outputReferences,
121
+ dictionary,
122
+ format: "css",
123
+ usesDtcg
124
+ }),
125
+ (token) => ({
126
+ ...token,
127
+ name: token.name.replace(/color-\w+-/, "color-"),
128
+ original: {
129
+ ...token.original,
130
+ $value: new RegExp(`color-(${colorCategories.main}|${colorCategories.support})-`).test(token.name) ? token.original.$value : `{${token.path.join(".")}}`
131
+ }
132
+ })
133
+ );
134
+ const formattedTokens = dictionary.allTokens.map(format).join("\n");
135
+ const content = `{
136
+ ${formattedTokens}
137
+ }
138
+ `;
139
+ const body = R2.isNotNil(layer) ? `@layer ${layer} {
140
+ ${selector} ${content}
141
+ }
142
+ ` : `${selector} ${content}
143
+ `;
144
+ return body;
145
+ }
146
+ };
147
+
148
+ // src/tokens/process/formats/css/semantic.ts
149
+ import * as R3 from "ramda";
150
+ import { createPropertyFormatter as createPropertyFormatter2 } from "style-dictionary/utils";
151
+ var isNumericBorderRadiusToken = (t) => t.path[0] === "border-radius" && isDigit(t.path[1]);
152
+ var isNumericSizeToken = (t) => pathStartsWithOneOf(["size"], t) && isDigit(t.path[1]);
153
+ var isSizeToken = (t) => pathStartsWithOneOf(["size"], t);
154
+ var isInlineTokens = R3.anyPass([isNumericBorderRadiusToken, isNumericSizeToken, isSizeToken]);
155
+ var overrideSizingFormula = (format, token) => {
156
+ const [name, value] = format(token).split(":");
157
+ const calc = value.replace(`var(--ds-size-mode-font-size)`, "1em").replace(/floor\((.*)\);/, "calc($1)");
158
+ const round = `round(down, ${calc}, 0.0625rem)`;
159
+ return {
160
+ name,
161
+ round,
162
+ calc
163
+ };
164
+ };
165
+ var formatSizingTokens = (format, tokens) => {
166
+ const { round, calc } = R3.reduce(
167
+ (acc, token) => {
168
+ const { round: round2, calc: calc2, name } = overrideSizingFormula(format, token);
169
+ return {
170
+ round: [...acc.round, `${name}: ${round2};`],
171
+ calc: [...acc.calc, `${name}: ${calc2};`]
172
+ };
173
+ },
174
+ { round: [], calc: [] },
175
+ tokens
176
+ );
177
+ return `
178
+ ${calc.join("\n")}
179
+
180
+ @supports (width: round(down, .1em, 1px)) {
181
+ ${round.join("\n")}
182
+ }`;
183
+ };
184
+ var semantic = {
185
+ name: "ds/css-semantic",
186
+ format: async ({ dictionary, file, options, platform }) => {
187
+ const { outputReferences, usesDtcg } = options;
188
+ const { selector, layer } = platform;
189
+ const format = createPropertyFormatter2({
190
+ outputReferences,
191
+ dictionary,
192
+ format: "css",
193
+ usesDtcg
194
+ });
195
+ const tokens = inlineTokens(isInlineTokens, dictionary.allTokens);
196
+ const filteredTokens = R3.reject((token) => token.name.includes("ds-size-mode-font-size"), tokens);
197
+ const [sizingTokens, restTokens] = R3.partition(
198
+ (t) => pathStartsWithOneOf(["_size"], t) && isDigit(t.path[1]),
199
+ filteredTokens
200
+ );
201
+ const formattedTokens = [R3.map(format, restTokens).join("\n"), formatSizingTokens(format, sizingTokens)];
202
+ const content = `{
203
+ ${formattedTokens.join("\n")}
204
+ }
205
+ `;
206
+ const body = R3.isNotNil(layer) ? `@layer ${layer} {
207
+ ${selector} ${content}
208
+ }
209
+ ` : `${selector} ${content}
210
+ `;
211
+ return body;
212
+ }
213
+ };
214
+
215
+ // src/tokens/process/formats/css/typography.ts
216
+ import * as R4 from "ramda";
217
+ import { createPropertyFormatter as createPropertyFormatter3 } from "style-dictionary/utils";
218
+ var typographyFontFamilyPredicate = R4.allPass([
219
+ R4.pathSatisfies(R4.includes("typography"), ["path"]),
220
+ R4.pathSatisfies(R4.includes("fontFamily"), ["path"])
221
+ ]);
222
+ var typography = {
223
+ name: "ds/css-typography",
224
+ format: async ({ dictionary, file, options, platform }) => {
225
+ const { outputReferences, usesDtcg } = options;
226
+ const { selector, layer } = platform;
227
+ const format = createPropertyFormatter3({
228
+ outputReferences,
229
+ dictionary,
230
+ format: "css",
231
+ usesDtcg
232
+ });
233
+ const filteredTokens = R4.reject(typographyFontFamilyPredicate, dictionary.allTokens);
234
+ const formattedTokens = R4.pipe(R4.map(format), R4.join("\n"))(filteredTokens);
235
+ const content = selector ? `${selector} {
236
+ ${formattedTokens}
237
+ }` : formattedTokens;
238
+ const body = R4.isNotNil(layer) ? `@layer ${layer} {
239
+ ${content}
240
+ }` : content;
241
+ return body;
242
+ }
243
+ };
244
+
245
+ // src/tokens/process/formats/css.ts
246
+ var formats = {
247
+ colorScheme,
248
+ colorCategory,
249
+ semantic,
250
+ typography
251
+ };
252
+
253
+ // src/tokens/process/platform.ts
254
+ import chalk2 from "chalk";
255
+ import * as R11 from "ramda";
256
+ import StyleDictionary2 from "style-dictionary";
257
+
258
+ // src/tokens/process/configs.ts
259
+ import { register } from "@tokens-studio/sd-transforms";
260
+ import * as R10 from "ramda";
261
+ import StyleDictionary from "style-dictionary";
262
+
263
+ // src/tokens/process/configs/semantic.ts
264
+ import * as R6 from "ramda";
265
+ import { outputReferencesFilter } from "style-dictionary/utils";
266
+
267
+ // src/tokens/process/transformers.ts
268
+ import { checkAndEvaluateMath } from "@tokens-studio/sd-transforms";
269
+ import * as R5 from "ramda";
270
+ var isPx = R5.test(/\b\d+px\b/g);
271
+ var sizeRem = {
272
+ name: "ds/size/toRem",
273
+ type: "value",
274
+ transitive: true,
275
+ filter: (token) => {
276
+ const hasWantedType = typeEquals(["dimension", "fontsize"], token);
277
+ const hasWantedPath = pathStartsWithOneOf(["spacing", "sizing", "border-radius", "font-size"], token);
278
+ return hasWantedType && hasWantedPath;
279
+ },
280
+ transform: (token, config) => {
281
+ const value = getValue(token);
282
+ if (isPx(value)) {
283
+ const baseFont = config.basePxFontSize || 16;
284
+ const size = parseInt(value);
285
+ if (size === 0) {
286
+ return "0";
287
+ }
288
+ return `${size / baseFont}rem`;
289
+ }
290
+ return value;
291
+ }
292
+ };
293
+ var typographyName = {
294
+ name: "name/typography",
295
+ type: "name",
296
+ transitive: true,
297
+ // expanded tokens have different type so we match on path instead
298
+ filter: (token) => pathStartsWithOneOf(["typography"], token),
299
+ transform: (token) => {
300
+ return token.name.replace("-typography", "");
301
+ }
302
+ };
303
+ var resolveMath = {
304
+ name: "ds/resolveMath",
305
+ type: "value",
306
+ transitive: true,
307
+ filter: (token) => {
308
+ const isValidValue = ["string", "object"].includes(typeof getValue(token));
309
+ const isTokenOfInterest = !pathStartsWithOneOf(["border-radius"], token);
310
+ return isValidValue && isTokenOfInterest;
311
+ },
312
+ transform: (token, platformCfg) => checkAndEvaluateMath(token, platformCfg.mathFractionDigits)
313
+ };
314
+ var unitless = {
315
+ name: "ds/unitless",
316
+ type: "value",
317
+ transitive: true,
318
+ filter: (token) => pathStartsWithOneOf(["size", "_size"], token),
319
+ transform: (token) => parseInt(getValue(token))
320
+ };
321
+
322
+ // src/tokens/process/configs/shared.ts
323
+ var prefix = "ds";
324
+ var basePxFontSize = 16;
325
+ var dsTransformers = [
326
+ "name/kebab",
327
+ resolveMath.name,
328
+ "ts/size/px",
329
+ sizeRem.name,
330
+ unitless.name,
331
+ "ts/typography/fontWeight",
332
+ typographyName.name,
333
+ "ts/color/modifiers",
334
+ "ts/color/css/hexrgba",
335
+ "ts/size/lineheight",
336
+ "shadow/css/shorthand"
337
+ ];
338
+
339
+ // src/tokens/process/configs/semantic.ts
340
+ var semanticVariables = ({ theme }) => {
341
+ const selector = `:root`;
342
+ const layer = `ds.theme.semantic`;
343
+ return {
344
+ preprocessors: ["tokens-studio"],
345
+ platforms: {
346
+ css: {
347
+ // custom
348
+ theme,
349
+ basePxFontSize,
350
+ selector,
351
+ layer,
352
+ //
353
+ prefix,
354
+ buildPath: `${theme}/`,
355
+ transforms: dsTransformers,
356
+ files: [
357
+ {
358
+ destination: `semantic.css`,
359
+ format: formats.semantic.name,
360
+ filter: (token) => {
361
+ const isUwantedToken = R6.anyPass([R6.includes("primitives/global")])(token.filePath);
362
+ const isPrivateToken = R6.includes("_", token.path);
363
+ const unwantedPaths = pathStartsWithOneOf(["font-size", "line-height", "letter-spacing"], token);
364
+ const unwantedTypes = typeEquals(["color", "fontWeight", "fontFamily", "typography"], token);
365
+ const unwantedTokens = !(unwantedPaths || unwantedTypes || isPrivateToken || isUwantedToken);
366
+ return unwantedTokens;
367
+ }
368
+ }
369
+ ],
370
+ options: {
371
+ outputReferences: (token, options) => {
372
+ const include = pathStartsWithOneOf(["border-radius"], token);
373
+ const isWantedSize = pathStartsWithOneOf(["size", "_size"], token) && isDigit(token.path[1]);
374
+ return (include || isWantedSize) && outputReferencesFilter(token, options);
375
+ }
376
+ }
377
+ }
378
+ }
379
+ };
380
+ };
381
+
382
+ // src/tokens/process/configs/storefront.ts
383
+ import * as R8 from "ramda";
384
+ import { outputReferencesFilter as outputReferencesFilter2 } from "style-dictionary/utils";
385
+
386
+ // src/tokens/process/formats/js-tokens.ts
387
+ import * as R7 from "ramda";
388
+ import { createPropertyFormatter as createPropertyFormatter4, fileHeader } from "style-dictionary/utils";
389
+ var groupByType = R7.groupBy((token) => getType(token));
390
+ var removeUnwatedTokens = R7.pipe(
391
+ R7.reject((token) => isColorCategoryToken(token)),
392
+ R7.reject((token) => R7.any((path) => path.startsWith("_"))(token.path))
393
+ );
394
+ var dissocExtensions = R7.pipe(R7.dissoc("$extensions"), R7.dissocPath(["original", "$extensions"]));
395
+ var removeUnwatedProps = R7.map((token) => dissocExtensions(token));
396
+ var toCssVarName = R7.pipe(R7.split(":"), R7.head, R7.trim);
397
+ var jsTokens = {
398
+ name: "ds/js-tokens",
399
+ format: async ({ dictionary, file, options }) => {
400
+ const { usesDtcg, outputReferences } = options;
401
+ const format = createPropertyFormatter4({
402
+ outputReferences,
403
+ dictionary,
404
+ format: "css",
405
+ usesDtcg
406
+ });
407
+ const formatTokens = R7.map((token) => {
408
+ if (pathStartsWithOneOf(["size", "_size"], token)) {
409
+ const { calc, name } = overrideSizingFormula(format, token);
410
+ return {
411
+ ...token,
412
+ name: name.trim(),
413
+ $value: calc.trim()
414
+ };
415
+ }
416
+ return {
417
+ ...token,
418
+ name: toCssVarName(format(token))
419
+ };
420
+ });
421
+ const processTokens = R7.pipe(removeUnwatedTokens, removeUnwatedProps, formatTokens, groupByType);
422
+ const tokens = processTokens(inlineTokens(isInlineTokens, dictionary.allTokens));
423
+ const content = Object.entries(tokens).map(
424
+ ([name, token]) => `export const ${name} = ${JSON.stringify(token, null, 2).replace(/"([^"]+)":/g, "$1:")}
425
+ `
426
+ ).join("\n");
427
+ return fileHeader({ file }).then((fileHeaderText) => fileHeaderText + content);
428
+ }
429
+ };
430
+
431
+ // src/tokens/process/configs/storefront.ts
432
+ var typescriptTokens = ({ "color-scheme": colorScheme2, theme }) => {
433
+ return {
434
+ preprocessors: ["tokens-studio"],
435
+ platforms: {
436
+ ts: {
437
+ prefix,
438
+ basePxFontSize,
439
+ transforms: dsTransformers,
440
+ buildPath: `${theme}/`,
441
+ files: [
442
+ {
443
+ destination: `${colorScheme2}.ts`,
444
+ format: jsTokens.name,
445
+ filter: (token) => {
446
+ if (pathStartsWithOneOf(["border-width", "letter-spacing", "border-radius"], token) && !R8.includes("semantic", token.filePath))
447
+ return false;
448
+ const isSemanticColor = R8.includes("semantic", token.filePath) && typeEquals(["color"], token);
449
+ const wantedTypes = typeEquals(["shadow", "dimension", "typography", "opacity"], token);
450
+ return isSemanticColor || wantedTypes;
451
+ }
452
+ }
453
+ ],
454
+ options: {
455
+ outputReferences: (token, options) => {
456
+ const include = pathStartsWithOneOf(["border-radius"], token);
457
+ const isWantedSize = pathStartsWithOneOf(["size", "_size"], token) && isDigit(token.path[1]);
458
+ return (include || isWantedSize) && outputReferencesFilter2(token, options);
459
+ }
460
+ }
461
+ }
462
+ }
463
+ };
464
+ };
465
+
466
+ // src/tokens/process/configs/typography.ts
467
+ import { expandTypesMap } from "@tokens-studio/sd-transforms";
468
+ var typographyVariables = ({ theme, typography: typography2 }) => {
469
+ const selector = `${typography2 === "primary" ? ":root, " : ""}[data-typography="${typography2}"]`;
470
+ const layer = `ds.theme.typography.${typography2}`;
471
+ return {
472
+ usesDtcg: true,
473
+ preprocessors: ["tokens-studio"],
474
+ expand: {
475
+ include: ["typography"],
476
+ typesMap: { ...expandTypesMap, typography: { ...expandTypesMap.typography, letterSpacing: "dimension" } }
477
+ },
478
+ platforms: {
479
+ css: {
480
+ prefix,
481
+ typography: typography2,
482
+ selector,
483
+ layer,
484
+ buildPath: `${theme}/`,
485
+ basePxFontSize,
486
+ transforms: [
487
+ "name/kebab",
488
+ "ts/size/px",
489
+ sizeRem.name,
490
+ "ts/size/lineheight",
491
+ "ts/typography/fontWeight",
492
+ typographyName.name
493
+ ],
494
+ files: [
495
+ {
496
+ destination: `typography/${typography2}.css`,
497
+ format: formats.typography.name,
498
+ filter: (token) => {
499
+ const included = typeEquals(
500
+ ["typography", "fontweight", "fontFamily", "lineHeight", "dimension", "font", "fontsize"],
501
+ token
502
+ );
503
+ if (/primitives\/modes\/typography\/(primary|secondary)/.test(token.filePath)) return false;
504
+ return included && !pathStartsWithOneOf(["spacing", "sizing", "size", "_size", "border-width", "border-radius"], token);
505
+ }
506
+ }
507
+ ]
508
+ }
509
+ }
510
+ };
511
+ };
512
+
513
+ // ../../node_modules/@tokens-studio/types/dist/constants/BoxShadowTypes.js
514
+ var BoxShadowTypes;
515
+ (function(BoxShadowTypes2) {
516
+ BoxShadowTypes2["DROP_SHADOW"] = "dropShadow";
517
+ BoxShadowTypes2["INNER_SHADOW"] = "innerShadow";
518
+ })(BoxShadowTypes || (BoxShadowTypes = {}));
519
+
520
+ // ../../node_modules/@tokens-studio/types/dist/constants/ColorModifierTypes.js
521
+ var ColorModifierTypes;
522
+ (function(ColorModifierTypes2) {
523
+ ColorModifierTypes2["LIGHTEN"] = "lighten";
524
+ ColorModifierTypes2["DARKEN"] = "darken";
525
+ ColorModifierTypes2["MIX"] = "mix";
526
+ ColorModifierTypes2["ALPHA"] = "alpha";
527
+ })(ColorModifierTypes || (ColorModifierTypes = {}));
528
+
529
+ // ../../node_modules/@tokens-studio/types/dist/constants/ColorSpaceTypes.js
530
+ var ColorSpaceTypes;
531
+ (function(ColorSpaceTypes2) {
532
+ ColorSpaceTypes2["LCH"] = "lch";
533
+ ColorSpaceTypes2["SRGB"] = "srgb";
534
+ ColorSpaceTypes2["P3"] = "p3";
535
+ ColorSpaceTypes2["HSL"] = "hsl";
536
+ })(ColorSpaceTypes || (ColorSpaceTypes = {}));
537
+
538
+ // ../../node_modules/@tokens-studio/types/dist/constants/Properties.js
539
+ var Properties;
540
+ (function(Properties2) {
541
+ Properties2["sizing"] = "sizing";
542
+ Properties2["height"] = "height";
543
+ Properties2["width"] = "width";
544
+ Properties2["spacing"] = "spacing";
545
+ Properties2["verticalPadding"] = "verticalPadding";
546
+ Properties2["horizontalPadding"] = "horizontalPadding";
547
+ Properties2["paddingTop"] = "paddingTop";
548
+ Properties2["paddingRight"] = "paddingRight";
549
+ Properties2["paddingBottom"] = "paddingBottom";
550
+ Properties2["paddingLeft"] = "paddingLeft";
551
+ Properties2["itemSpacing"] = "itemSpacing";
552
+ Properties2["fill"] = "fill";
553
+ Properties2["backgroundBlur"] = "backgroundBlur";
554
+ Properties2["border"] = "border";
555
+ Properties2["borderTop"] = "borderTop";
556
+ Properties2["borderRight"] = "borderRight";
557
+ Properties2["borderBottom"] = "borderBottom";
558
+ Properties2["borderLeft"] = "borderLeft";
559
+ Properties2["borderColor"] = "borderColor";
560
+ Properties2["borderRadius"] = "borderRadius";
561
+ Properties2["borderRadiusTopLeft"] = "borderRadiusTopLeft";
562
+ Properties2["borderRadiusTopRight"] = "borderRadiusTopRight";
563
+ Properties2["borderRadiusBottomRight"] = "borderRadiusBottomRight";
564
+ Properties2["borderRadiusBottomLeft"] = "borderRadiusBottomLeft";
565
+ Properties2["borderWidth"] = "borderWidth";
566
+ Properties2["borderWidthTop"] = "borderWidthTop";
567
+ Properties2["borderWidthRight"] = "borderWidthRight";
568
+ Properties2["borderWidthBottom"] = "borderWidthBottom";
569
+ Properties2["borderWidthLeft"] = "borderWidthLeft";
570
+ Properties2["boxShadow"] = "boxShadow";
571
+ Properties2["opacity"] = "opacity";
572
+ Properties2["fontFamilies"] = "fontFamilies";
573
+ Properties2["fontWeights"] = "fontWeights";
574
+ Properties2["fontSizes"] = "fontSizes";
575
+ Properties2["lineHeights"] = "lineHeights";
576
+ Properties2["typography"] = "typography";
577
+ Properties2["composition"] = "composition";
578
+ Properties2["letterSpacing"] = "letterSpacing";
579
+ Properties2["paragraphSpacing"] = "paragraphSpacing";
580
+ Properties2["textCase"] = "textCase";
581
+ Properties2["dimension"] = "dimension";
582
+ Properties2["textDecoration"] = "textDecoration";
583
+ Properties2["asset"] = "asset";
584
+ Properties2["tokenValue"] = "tokenValue";
585
+ Properties2["value"] = "value";
586
+ Properties2["tokenName"] = "tokenName";
587
+ Properties2["description"] = "description";
588
+ })(Properties || (Properties = {}));
589
+
590
+ // ../../node_modules/@tokens-studio/types/dist/constants/TokenSetStatus.js
591
+ var TokenSetStatus;
592
+ (function(TokenSetStatus2) {
593
+ TokenSetStatus2["DISABLED"] = "disabled";
594
+ TokenSetStatus2["SOURCE"] = "source";
595
+ TokenSetStatus2["ENABLED"] = "enabled";
596
+ })(TokenSetStatus || (TokenSetStatus = {}));
597
+
598
+ // ../../node_modules/@tokens-studio/types/dist/constants/TokenTypes.js
599
+ var TokenTypes;
600
+ (function(TokenTypes2) {
601
+ TokenTypes2["OTHER"] = "other";
602
+ TokenTypes2["COLOR"] = "color";
603
+ TokenTypes2["BORDER_RADIUS"] = "borderRadius";
604
+ TokenTypes2["SIZING"] = "sizing";
605
+ TokenTypes2["SPACING"] = "spacing";
606
+ TokenTypes2["TEXT"] = "text";
607
+ TokenTypes2["TYPOGRAPHY"] = "typography";
608
+ TokenTypes2["OPACITY"] = "opacity";
609
+ TokenTypes2["BORDER_WIDTH"] = "borderWidth";
610
+ TokenTypes2["STROKE_STYLE"] = "strokeStyle";
611
+ TokenTypes2["BOX_SHADOW"] = "boxShadow";
612
+ TokenTypes2["FONT_FAMILIES"] = "fontFamilies";
613
+ TokenTypes2["FONT_WEIGHTS"] = "fontWeights";
614
+ TokenTypes2["LINE_HEIGHTS"] = "lineHeights";
615
+ TokenTypes2["FONT_SIZES"] = "fontSizes";
616
+ TokenTypes2["LETTER_SPACING"] = "letterSpacing";
617
+ TokenTypes2["PARAGRAPH_SPACING"] = "paragraphSpacing";
618
+ TokenTypes2["PARAGRAPH_INDENT"] = "paragraphIndent";
619
+ TokenTypes2["TEXT_DECORATION"] = "textDecoration";
620
+ TokenTypes2["TEXT_CASE"] = "textCase";
621
+ TokenTypes2["COMPOSITION"] = "composition";
622
+ TokenTypes2["DIMENSION"] = "dimension";
623
+ TokenTypes2["BORDER"] = "border";
624
+ TokenTypes2["ASSET"] = "asset";
625
+ TokenTypes2["BOOLEAN"] = "boolean";
626
+ TokenTypes2["NUMBER"] = "number";
627
+ })(TokenTypes || (TokenTypes = {}));
628
+
629
+ // ../../node_modules/@tokens-studio/types/dist/constants/BorderValues.js
630
+ var BorderValues;
631
+ (function(BorderValues2) {
632
+ BorderValues2["BORDER_COLOR"] = "color";
633
+ BorderValues2["BORDER_WIDTH"] = "width";
634
+ BorderValues2["BORDER_STYLE"] = "style";
635
+ })(BorderValues || (BorderValues = {}));
636
+
637
+ // ../../node_modules/@tokens-studio/types/dist/constants/StrokeStyleValues.js
638
+ var StrokeStyleValues;
639
+ (function(StrokeStyleValues2) {
640
+ StrokeStyleValues2["SOLID"] = "solid";
641
+ StrokeStyleValues2["DASHED"] = "dashed";
642
+ StrokeStyleValues2["DOTTED"] = "dotted";
643
+ StrokeStyleValues2["DOUBLE"] = "double";
644
+ StrokeStyleValues2["GROOVE"] = "groove";
645
+ StrokeStyleValues2["RIDGE"] = "ridge";
646
+ StrokeStyleValues2["OUTSET"] = "outset";
647
+ StrokeStyleValues2["INSET"] = "inset";
648
+ })(StrokeStyleValues || (StrokeStyleValues = {}));
649
+
650
+ // ../../node_modules/@tokens-studio/types/dist/constants/BoxShadowValues.js
651
+ var BoxShadowValues;
652
+ (function(BoxShadowValues2) {
653
+ BoxShadowValues2["TYPE"] = "type";
654
+ BoxShadowValues2["COLOR"] = "color";
655
+ BoxShadowValues2["X"] = "x";
656
+ BoxShadowValues2["Y"] = "y";
657
+ BoxShadowValues2["BLUR"] = "blur";
658
+ BoxShadowValues2["SPREAD"] = "spread";
659
+ BoxShadowValues2["BLEND_MODE"] = "blendMode";
660
+ })(BoxShadowValues || (BoxShadowValues = {}));
661
+
662
+ // ../../node_modules/@tokens-studio/types/dist/constants/TypographyValues.js
663
+ var TypographyValues;
664
+ (function(TypographyValues2) {
665
+ TypographyValues2["FONT_FAMILY"] = "fontFamily";
666
+ TypographyValues2["FONT_WEIGHT"] = "fontWeight";
667
+ TypographyValues2["LINE_HEIGHT"] = "lineHeight";
668
+ TypographyValues2["FONT_SIZE"] = "fontSize";
669
+ TypographyValues2["LETTER_SPACING"] = "letterSpacing";
670
+ TypographyValues2["PARAGRAPH_SPACING"] = "paragraphSpacing";
671
+ TypographyValues2["PARAGRAPH_INDENT"] = "paragraphIndent";
672
+ TypographyValues2["TEXT_DECORATION"] = "textDecoration";
673
+ TypographyValues2["TEXT_CASE"] = "textCase";
674
+ })(TypographyValues || (TypographyValues = {}));
675
+
676
+ // src/tokens/process/utils/getMultidimensionalThemes.ts
677
+ import chalk from "chalk";
678
+ import { kebabCase } from "change-case";
679
+ import * as R9 from "ramda";
680
+ var processed = Symbol("Type brand for ProcessedThemeObject");
681
+ var hasUnknownProps = R9.pipe(R9.values, R9.none(R9.equals("unknown")), R9.not);
682
+
683
+ // src/tokens/process/configs.ts
684
+ void register(StyleDictionary, { withSDBuiltins: false });
685
+ StyleDictionary.registerTransform(sizeRem);
686
+ StyleDictionary.registerTransform(typographyName);
687
+ StyleDictionary.registerTransform(resolveMath);
688
+ StyleDictionary.registerTransform(unitless);
689
+ StyleDictionary.registerFormat(jsTokens);
690
+ for (const format of Object.values(formats)) {
691
+ StyleDictionary.registerFormat(format);
692
+ }
693
+ var configs = {
694
+ colorSchemeVariables,
695
+ mainColorVariables: colorCategoryVariables({ category: "main" }),
696
+ supportColorVariables: colorCategoryVariables({ category: "support" }),
697
+ neutralColorVariables: colorCategoryVariables({ category: "builtin", color: "neutral" }),
698
+ successColorVariables: colorCategoryVariables({ category: "builtin", color: "success" }),
699
+ dangerColorVariables: colorCategoryVariables({ category: "builtin", color: "danger" }),
700
+ warningColorVariables: colorCategoryVariables({ category: "builtin", color: "warning" }),
701
+ infoColorVariables: colorCategoryVariables({ category: "builtin", color: "info" }),
702
+ typographyVariables,
703
+ semanticVariables,
704
+ typescriptTokens
705
+ };
706
+
707
+ // src/tokens/process/platform.ts
708
+ var buildOptions;
709
+ var sd = new StyleDictionary2();
710
+ var buildConfigs = {
711
+ typography: { getConfig: configs.typographyVariables, dimensions: ["typography"] },
712
+ "color-scheme": { getConfig: configs.colorSchemeVariables, dimensions: ["color-scheme"] },
713
+ "main-color": { getConfig: configs.mainColorVariables, dimensions: ["main-color"] },
714
+ "support-color": { getConfig: configs.supportColorVariables, dimensions: ["support-color"] },
715
+ "neutral-color": {
716
+ getConfig: configs.neutralColorVariables,
717
+ dimensions: ["semantic"],
718
+ log: ({ permutation: { theme } }) => `${theme} - neutral`
719
+ },
720
+ "success-color": {
721
+ getConfig: configs.successColorVariables,
722
+ dimensions: ["semantic"],
723
+ log: ({ permutation: { theme } }) => `${theme} - success`
724
+ },
725
+ "danger-color": {
726
+ getConfig: configs.dangerColorVariables,
727
+ dimensions: ["semantic"],
728
+ log: ({ permutation: { theme } }) => `${theme} - danger`
729
+ },
730
+ "warning-color": {
731
+ getConfig: configs.warningColorVariables,
732
+ dimensions: ["semantic"],
733
+ log: ({ permutation: { theme } }) => `${theme} - warning`
734
+ },
735
+ "info-color": {
736
+ getConfig: configs.infoColorVariables,
737
+ dimensions: ["semantic"],
738
+ log: ({ permutation: { theme } }) => `${theme} - info`
739
+ },
740
+ semantic: { getConfig: configs.semanticVariables, dimensions: ["semantic"] }
741
+ // storefront: {
742
+ // name: 'Storefront preview tokens',
743
+ // getConfig: configs.typescriptTokens,
744
+ // dimensions: ['color-scheme'],
745
+ // options: { outPath: path.resolve('../../apps/storefront/tokens') },
746
+ // enabled: () => buildOptions?.preview ?? false,
747
+ // },
748
+ };
749
+
750
+ // src/tokens/process/configs/color.ts
751
+ var colorSchemeVariables = ({ "color-scheme": colorScheme2 = "light", theme }) => {
752
+ const selector = `${colorScheme2 === "light" ? ":root, " : ""}[data-color-scheme="${colorScheme2}"]`;
753
+ const layer = `ds.theme.color-scheme.${colorScheme2}`;
754
+ return {
755
+ preprocessors: ["tokens-studio"],
756
+ platforms: {
757
+ css: {
758
+ // custom
759
+ colorScheme: colorScheme2,
760
+ theme,
761
+ selector,
762
+ layer,
763
+ //
764
+ prefix,
765
+ buildPath: `${theme}/`,
766
+ transforms: dsTransformers,
767
+ files: [
768
+ {
769
+ destination: `color-scheme/${colorScheme2}.css`,
770
+ format: formats.colorScheme.name,
771
+ filter: (token) => typeEquals("color", token) && !R12.startsWith(["global"], token.path)
772
+ }
773
+ ],
774
+ options: {
775
+ outputReferences: false
776
+ }
777
+ }
778
+ }
779
+ };
780
+ };
781
+ var colorCategoryVariables = (opts) => ({ "color-scheme": colorScheme2, theme, ...permutation }) => {
782
+ const category = opts.category;
783
+ const color = category === "builtin" ? opts.color : permutation[`${category}-color`];
784
+ if (!color) {
785
+ throw new Error(
786
+ category === "builtin" ? `Missing color for built-in color ${opts.color}` : `Missing color for category ${category}`
787
+ );
788
+ }
789
+ const layer = `ds.theme.color`;
790
+ const isRootColor = color === buildOptions?.rootColor;
791
+ const selector = isRootColor ? `:root, [data-color-scheme], [data-color="${color}"]` : `[data-color="${color}"], [data-color-scheme][data-color="${color}"]`;
792
+ const config = {
793
+ preprocessors: ["tokens-studio"],
794
+ platforms: {
795
+ css: {
796
+ // custom
797
+ colorScheme: colorScheme2,
798
+ theme,
799
+ selector,
800
+ layer,
801
+ //
802
+ prefix,
803
+ buildPath: `${theme}/`,
804
+ transforms: dsTransformers,
805
+ files: [
806
+ {
807
+ destination: `color/${color}.css`,
808
+ format: formats.colorCategory.name,
809
+ filter: (token) => category === "builtin" ? isSemanticColorToken(token, color) : isColorCategoryToken(token, category)
810
+ }
811
+ ],
812
+ options: {
813
+ outputReferences: true
814
+ }
815
+ }
816
+ }
817
+ };
818
+ return config;
819
+ };
820
+ export {
821
+ colorCategoryVariables,
822
+ colorSchemeVariables
823
+ };