@terrazzo/plugin-css 2.4.0 → 2.5.0
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/CHANGELOG.md +10 -0
- package/dist/build.d.ts +19 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +402 -0
- package/dist/build.js.map +1 -0
- package/dist/index.d.ts +7 -172
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -744
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +150 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +129 -0
- package/dist/lib.js.map +1 -0
- package/dist/transform.d.ts +8 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/transform.js +139 -0
- package/dist/transform.js.map +1 -0
- package/dist/utility-css.d.ts +6 -0
- package/dist/utility-css.d.ts.map +1 -0
- package/dist/utility-css.js +198 -0
- package/dist/utility-css.js.map +1 -0
- package/package.json +10 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @terrazzo/plugin-css
|
|
2
2
|
|
|
3
|
+
## 2.5.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#791](https://github.com/terrazzoapp/terrazzo/pull/791) [`2a7bb89`](https://github.com/terrazzoapp/terrazzo/commit/2a7bb898033ffbf5d4d1c5a120aa60a78dfca7ed) Thanks [@mrginglymus](https://github.com/mrginglymus)! - Upgrade to tsgo/TypeScript 7
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`055b580`](https://github.com/terrazzoapp/terrazzo/commit/055b580313c08dba8810e2690fea832f5d09a647), [`a05196b`](https://github.com/terrazzoapp/terrazzo/commit/a05196bb373c03528ca6cd6eabd6805ff27b009c)]:
|
|
10
|
+
- @terrazzo/cli@2.4.1
|
|
11
|
+
- @terrazzo/parser@2.5.0
|
|
12
|
+
|
|
3
13
|
## 2.4.0
|
|
4
14
|
|
|
5
15
|
### Minor Changes
|
package/dist/build.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BuildHookOptions, Config, Logger } from '@terrazzo/parser';
|
|
2
|
+
import { type CSSPluginOptions } from './lib.js';
|
|
3
|
+
export interface BuildFormatOptions {
|
|
4
|
+
logger: Logger;
|
|
5
|
+
include: CSSPluginOptions['include'];
|
|
6
|
+
exclude: CSSPluginOptions['exclude'];
|
|
7
|
+
getTransforms: BuildHookOptions['getTransforms'];
|
|
8
|
+
modeSelectors: CSSPluginOptions['modeSelectors'];
|
|
9
|
+
alphabetize?: Config['alphabetize'];
|
|
10
|
+
permutations: CSSPluginOptions['permutations'];
|
|
11
|
+
utility: CSSPluginOptions['utility'];
|
|
12
|
+
baseSelector: string;
|
|
13
|
+
baseScheme: CSSPluginOptions['baseScheme'];
|
|
14
|
+
propertyDefinitions: boolean;
|
|
15
|
+
omitTypographyShorthand: CSSPluginOptions['omitTypographyShorthand'];
|
|
16
|
+
subValueVariableName: CSSPluginOptions['subValueVariableName'];
|
|
17
|
+
}
|
|
18
|
+
export default function buildCSS({ logger, getTransforms, include: userInclude, exclude: userExclude, utility, permutations, modeSelectors, baseSelector, baseScheme, propertyDefinitions, omitTypographyShorthand, subValueVariableName, }: BuildFormatOptions): string;
|
|
19
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAoB,MAAM,kBAAkB,CAAC;AAG3F,OAAO,EAIL,KAAK,gBAAgB,EAQtB,MAAM,UAAU,CAAC;AAclB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACrC,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC3C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;IACrE,oBAAoB,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;CAChE;AA+GD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,aAAa,EACb,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,mBAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,GACrB,EAAE,kBAAkB,GAAG,MAAM,CA2W7B"}
|
package/dist/build.js
ADDED
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
import { generateShorthand, makeCSSVar } from '@terrazzo/token-tools/css';
|
|
2
|
+
import { addDeclUnique, cachedMatcher, decl, FORMAT_ID, getIndentFromPrepare, PLUGIN_NAME, printRules, rule, } from './lib.js';
|
|
3
|
+
import generateUtilityCSS from './utility-css.js';
|
|
4
|
+
const P3_MQ = '@media (color-gamut: p3)';
|
|
5
|
+
const REC2020_MQ = '@media (color-gamut: rec2020)';
|
|
6
|
+
/**
|
|
7
|
+
* Get description from metadata with fallback to token.$description
|
|
8
|
+
* Preserves the descriptions and alias descriptions.
|
|
9
|
+
*/
|
|
10
|
+
function getDescription(token) {
|
|
11
|
+
return token.meta?.['plugin-css']?.description ?? token.token.$description;
|
|
12
|
+
}
|
|
13
|
+
const TOKEN_TYPE_SYNTAX = {
|
|
14
|
+
color: '<color>',
|
|
15
|
+
dimension: '<length>',
|
|
16
|
+
duration: '<time>',
|
|
17
|
+
fontWeight: '<integer>',
|
|
18
|
+
number: '<number>',
|
|
19
|
+
boolean: '<integer>',
|
|
20
|
+
fontFamily: '*',
|
|
21
|
+
string: '*',
|
|
22
|
+
cubicBezier: '*',
|
|
23
|
+
border: '*',
|
|
24
|
+
shadow: '*',
|
|
25
|
+
gradient: '*',
|
|
26
|
+
typography: '*',
|
|
27
|
+
transition: '*',
|
|
28
|
+
strokeStyle: '*',
|
|
29
|
+
link: '<url>',
|
|
30
|
+
};
|
|
31
|
+
const SUB_PROPERTY_SYNTAX = {
|
|
32
|
+
border: { color: '<color>', width: '<length>', style: '*' },
|
|
33
|
+
shadow: {
|
|
34
|
+
color: '<color>',
|
|
35
|
+
'offset-x': '<length>',
|
|
36
|
+
'offset-y': '<length>',
|
|
37
|
+
blur: '<length>',
|
|
38
|
+
spread: '<length>',
|
|
39
|
+
},
|
|
40
|
+
transition: { duration: '<time>', delay: '<time>', 'timing-function': '*' },
|
|
41
|
+
typography: {
|
|
42
|
+
'font-family': '*',
|
|
43
|
+
'font-size': '<length>',
|
|
44
|
+
'font-weight': '<integer>',
|
|
45
|
+
'line-height': '*',
|
|
46
|
+
'letter-spacing': '<length>',
|
|
47
|
+
'font-style': '*',
|
|
48
|
+
'font-variant': '*',
|
|
49
|
+
'font-variation-settings': '*',
|
|
50
|
+
'text-decoration': '*',
|
|
51
|
+
'text-transform': '*',
|
|
52
|
+
},
|
|
53
|
+
strokeStyle: { 'dash-array': '*', 'line-cap': '*' },
|
|
54
|
+
};
|
|
55
|
+
function generatePropertyDefinition(localID, syntax, initialValue) {
|
|
56
|
+
const children = [decl('syntax', `'${syntax}'`), decl('inherits', 'true')];
|
|
57
|
+
if (initialValue) {
|
|
58
|
+
children.push(decl('initial-value', initialValue));
|
|
59
|
+
}
|
|
60
|
+
return rule([`@property ${localID}`], children);
|
|
61
|
+
}
|
|
62
|
+
function generatePropertyDefinitions(getTransforms, options) {
|
|
63
|
+
const tokens = getTransforms({ format: FORMAT_ID });
|
|
64
|
+
const properties = [];
|
|
65
|
+
const seen = new Set();
|
|
66
|
+
for (const token of tokens) {
|
|
67
|
+
const localID = token.localID;
|
|
68
|
+
if (!localID) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (!options.include(token.token.id) || options.exclude(token.token.id)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const cssSyntax = TOKEN_TYPE_SYNTAX[token.token.$type] ?? '*';
|
|
75
|
+
if (token.type === 'SINGLE_VALUE') {
|
|
76
|
+
if (seen.has(localID)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
seen.add(localID);
|
|
80
|
+
if (!token.token.aliasOf && cssSyntax !== '*') {
|
|
81
|
+
properties.push(generatePropertyDefinition(localID, cssSyntax, token.value));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
properties.push(generatePropertyDefinition(localID, '*'));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else if (token.type === 'MULTI_VALUE') {
|
|
88
|
+
for (const [name, subValue] of Object.entries(token.value)) {
|
|
89
|
+
const subID = name === '.' ? localID : `${localID}-${name}`;
|
|
90
|
+
if (seen.has(subID)) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
seen.add(subID);
|
|
94
|
+
const subSyntax = SUB_PROPERTY_SYNTAX[token.token.$type]?.[name] ?? '*';
|
|
95
|
+
if (!token.token.aliasOf && subSyntax !== '*') {
|
|
96
|
+
properties.push(generatePropertyDefinition(subID, subSyntax, subValue));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
properties.push(generatePropertyDefinition(subID, '*'));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (!seen.has(localID)) {
|
|
103
|
+
seen.add(localID);
|
|
104
|
+
properties.push(generatePropertyDefinition(localID, '*'));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return properties;
|
|
109
|
+
}
|
|
110
|
+
export default function buildCSS({ logger, getTransforms, include: userInclude, exclude: userExclude, utility, permutations, modeSelectors, baseSelector, baseScheme, propertyDefinitions = false, omitTypographyShorthand, subValueVariableName, }) {
|
|
111
|
+
function makeSubValueId(variableName, subValueName, token) {
|
|
112
|
+
const customName = subValueVariableName?.(variableName, subValueName, token);
|
|
113
|
+
if (customName !== undefined) {
|
|
114
|
+
if (typeof customName !== 'string') {
|
|
115
|
+
logger.error({
|
|
116
|
+
group: 'plugin',
|
|
117
|
+
label: PLUGIN_NAME,
|
|
118
|
+
message: `subValueVariableName() must return a string; received ${customName}`,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return customName;
|
|
122
|
+
}
|
|
123
|
+
return `${variableName}-${subValueName}`;
|
|
124
|
+
}
|
|
125
|
+
const include = userInclude ? cachedMatcher.tokenIDMatch(userInclude) : () => true;
|
|
126
|
+
const exclude = userExclude ? cachedMatcher.tokenIDMatch(userExclude) : () => false;
|
|
127
|
+
let propertyDefsNodes = [];
|
|
128
|
+
if (propertyDefinitions) {
|
|
129
|
+
propertyDefsNodes = generatePropertyDefinitions(getTransforms, { include, exclude });
|
|
130
|
+
}
|
|
131
|
+
if (permutations?.length) {
|
|
132
|
+
let output = '';
|
|
133
|
+
for (const p of permutations) {
|
|
134
|
+
if (typeof p.prepare !== 'function') {
|
|
135
|
+
logger.error({
|
|
136
|
+
group: 'plugin',
|
|
137
|
+
label: PLUGIN_NAME,
|
|
138
|
+
message: 'prepare(css) must be a function!',
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const tokens = getTransforms({ format: FORMAT_ID, input: p.input });
|
|
142
|
+
if (tokens.length === 0) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
const root = [];
|
|
146
|
+
const hdrColors = {
|
|
147
|
+
p3: [],
|
|
148
|
+
rec2020: [],
|
|
149
|
+
};
|
|
150
|
+
const pInclude = p.include ? cachedMatcher.tokenIDMatch(p.include) : () => true;
|
|
151
|
+
const pExclude = p.exclude ? cachedMatcher.tokenIDMatch(p.exclude) : () => false;
|
|
152
|
+
// oxlint-disable-next-line func-style
|
|
153
|
+
const includeToken = (tokenId) => include(tokenId) && pInclude(tokenId) && !exclude(tokenId) && !pExclude(tokenId);
|
|
154
|
+
for (const token of tokens) {
|
|
155
|
+
if (!includeToken(token.id)) {
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
const localID = makeCSSVar(token.localID ?? token.token.id);
|
|
159
|
+
const aliasTokens = token.token.aliasedBy?.length
|
|
160
|
+
? getTransforms({ format: FORMAT_ID, id: token.token.aliasedBy, input: p.input })
|
|
161
|
+
: [];
|
|
162
|
+
// single-value token
|
|
163
|
+
if (token.type === 'SINGLE_VALUE') {
|
|
164
|
+
addDeclUnique(root, decl(localID, token.value, getDescription(token)));
|
|
165
|
+
}
|
|
166
|
+
// multi-value token (wide gamut color)
|
|
167
|
+
else if (token.value.srgb && token.value.p3 && token.value.rec2020) {
|
|
168
|
+
addDeclUnique(root, decl(localID, token.value.srgb, getDescription(token)));
|
|
169
|
+
if (token.value.p3 !== token.value.srgb) {
|
|
170
|
+
addDeclUnique(hdrColors.p3, decl(localID, token.value.p3, getDescription(token)));
|
|
171
|
+
addDeclUnique(hdrColors.rec2020, decl(localID, token.value.rec2020, getDescription(token)));
|
|
172
|
+
// handle aliases within color gamut media queries
|
|
173
|
+
for (const alias of aliasTokens) {
|
|
174
|
+
if (alias.localID && typeof alias.value === 'string') {
|
|
175
|
+
const aliasID = makeCSSVar(alias.localID);
|
|
176
|
+
addDeclUnique(hdrColors.p3, decl(aliasID, alias.value, getDescription(alias)));
|
|
177
|
+
addDeclUnique(hdrColors.rec2020, decl(aliasID, alias.value, getDescription(alias)));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// multi-value token
|
|
183
|
+
else {
|
|
184
|
+
for (const [name, subValue] of Object.entries(token.value)) {
|
|
185
|
+
const subValueID = makeSubValueId(localID, name, token);
|
|
186
|
+
addDeclUnique(root, decl(subValueID, subValue, getDescription(token)));
|
|
187
|
+
}
|
|
188
|
+
// Note: always generate shorthand AFTER other declarations
|
|
189
|
+
const shorthand = generateShorthand({
|
|
190
|
+
token: { ...token.token, $value: token.value },
|
|
191
|
+
localID,
|
|
192
|
+
omitTypographyShorthand,
|
|
193
|
+
});
|
|
194
|
+
if (shorthand) {
|
|
195
|
+
addDeclUnique(root, decl(localID, shorthand, getDescription(token)));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// redeclare aliases so they have the correct scope
|
|
199
|
+
for (const alias of aliasTokens) {
|
|
200
|
+
if (alias.localID && typeof alias.value === 'string') {
|
|
201
|
+
if (!includeToken(alias.id)) {
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
addDeclUnique(root, decl(alias.localID, alias.value, getDescription(token)));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const indentRules = getIndentFromPrepare(p.prepare);
|
|
209
|
+
if (output) {
|
|
210
|
+
output += '\n';
|
|
211
|
+
}
|
|
212
|
+
output += `${p.prepare(printRules(root, indentRules))}\n`;
|
|
213
|
+
// declare P3 and Rec2020 gamuts, if needed
|
|
214
|
+
for (const gamut of ['p3', 'rec2020']) {
|
|
215
|
+
if (hdrColors[gamut].length > 0) {
|
|
216
|
+
output += `\n@media (color-gamut: ${gamut}) {\n`;
|
|
217
|
+
output += indentRules.indentChar;
|
|
218
|
+
output += p
|
|
219
|
+
.prepare(printRules(hdrColors[gamut], indentRules))
|
|
220
|
+
.replaceAll(/\n(?!\n)/g, `\n${indentRules.indentChar}`); // indent every line an extra level
|
|
221
|
+
output += '\n}\n';
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// add utility CSS
|
|
226
|
+
if (utility && Object.keys(utility).length > 0) {
|
|
227
|
+
if (output) {
|
|
228
|
+
output += '\n';
|
|
229
|
+
}
|
|
230
|
+
output += printRules(generateUtilityCSS(utility, getTransforms({ format: FORMAT_ID, input: permutations[0]?.input ?? {} }), {
|
|
231
|
+
logger,
|
|
232
|
+
}));
|
|
233
|
+
}
|
|
234
|
+
if (propertyDefsNodes.length > 0 && output) {
|
|
235
|
+
output = `${printRules(propertyDefsNodes)}\n\n${output}`;
|
|
236
|
+
}
|
|
237
|
+
return output;
|
|
238
|
+
}
|
|
239
|
+
// legacy plugin (will be deprecated in 3.0)
|
|
240
|
+
let output = '';
|
|
241
|
+
const rootTokens = getTransforms({ format: FORMAT_ID, mode: '.' });
|
|
242
|
+
if (rootTokens.length > 0) {
|
|
243
|
+
const rules = [
|
|
244
|
+
rule([baseSelector], []),
|
|
245
|
+
rule([P3_MQ], [rule([baseSelector])]),
|
|
246
|
+
rule([REC2020_MQ], [rule([baseSelector])]),
|
|
247
|
+
];
|
|
248
|
+
const rootRule = rules[0];
|
|
249
|
+
const p3Rule = rules[1].children[0];
|
|
250
|
+
const rec2020Rule = rules[2].children[0];
|
|
251
|
+
// add base color-scheme declaration first if configured
|
|
252
|
+
// (must be before other properties to ensure it appears first in output)
|
|
253
|
+
if (baseScheme) {
|
|
254
|
+
rootRule.children.unshift(decl('color-scheme', baseScheme));
|
|
255
|
+
}
|
|
256
|
+
for (const token of rootTokens) {
|
|
257
|
+
// handle exclude (if any)
|
|
258
|
+
if (!include(token.token.id) || exclude(token.token.id)) {
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
const localID = token.localID ?? token.token.id;
|
|
262
|
+
const aliasTokens = token.token.aliasedBy?.length
|
|
263
|
+
? getTransforms({ format: FORMAT_ID, id: token.token.aliasedBy })
|
|
264
|
+
: [];
|
|
265
|
+
// single-value token
|
|
266
|
+
if (token.type === 'SINGLE_VALUE') {
|
|
267
|
+
addDeclUnique(rootRule.children, decl(localID, token.value, getDescription(token)));
|
|
268
|
+
}
|
|
269
|
+
// multi-value token (wide gamut color)
|
|
270
|
+
else if (token.value.srgb && token.value.p3 && token.value.rec2020) {
|
|
271
|
+
addDeclUnique(rootRule.children, decl(localID, token.value.srgb, getDescription(token)));
|
|
272
|
+
if (token.value.p3 !== token.value.srgb) {
|
|
273
|
+
addDeclUnique(p3Rule.children, decl(localID, token.value.p3, getDescription(token)));
|
|
274
|
+
addDeclUnique(rec2020Rule.children, decl(localID, token.value.rec2020, getDescription(token)));
|
|
275
|
+
// handle aliases within color gamut media queries
|
|
276
|
+
for (const alias of aliasTokens) {
|
|
277
|
+
if (alias.localID && typeof alias.value === 'string') {
|
|
278
|
+
addDeclUnique(p3Rule.children, decl(alias.localID, alias.value, getDescription(alias)));
|
|
279
|
+
addDeclUnique(rec2020Rule.children, decl(alias.localID, alias.value, getDescription(alias)));
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
// multi-value token
|
|
285
|
+
else if (token.type === 'MULTI_VALUE') {
|
|
286
|
+
for (const [name, value] of Object.entries(token.value)) {
|
|
287
|
+
const property = name === '.' ? localID : makeSubValueId(localID, name, token);
|
|
288
|
+
addDeclUnique(rootRule.children, decl(property, value, getDescription(token)));
|
|
289
|
+
}
|
|
290
|
+
// Note: always place shorthand after other values
|
|
291
|
+
const shorthand = generateShorthand({
|
|
292
|
+
token: { ...token.token, $value: token.value },
|
|
293
|
+
localID,
|
|
294
|
+
omitTypographyShorthand,
|
|
295
|
+
});
|
|
296
|
+
if (shorthand) {
|
|
297
|
+
addDeclUnique(rootRule.children, decl(token.localID ?? token.token.id, shorthand, getDescription(token)));
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
output += printRules(rules);
|
|
302
|
+
}
|
|
303
|
+
// legacy modeSelectors
|
|
304
|
+
// Delete this behavior in 3.0.
|
|
305
|
+
// This code is intentionally left-alone as a separate code path so it behaves as it did with 0.x.
|
|
306
|
+
for (const selector of modeSelectors ?? []) {
|
|
307
|
+
const selectorTokens = getTransforms({
|
|
308
|
+
format: FORMAT_ID,
|
|
309
|
+
id: selector.tokens,
|
|
310
|
+
mode: selector.mode,
|
|
311
|
+
});
|
|
312
|
+
if (selectorTokens.length === 0) {
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
const modeRule = rule(selector.selectors);
|
|
316
|
+
// add color-scheme declaration first if configured for this mode
|
|
317
|
+
// (must be before other properties to ensure it appears first in output)
|
|
318
|
+
if (selector.scheme) {
|
|
319
|
+
modeRule.children.unshift(decl('color-scheme', selector.scheme));
|
|
320
|
+
}
|
|
321
|
+
const hdrColors = {
|
|
322
|
+
p3: [],
|
|
323
|
+
rec2020: [],
|
|
324
|
+
};
|
|
325
|
+
for (const token of selectorTokens) {
|
|
326
|
+
const localID = token.localID ?? token.token.id;
|
|
327
|
+
const aliasedBy = token.token.mode[selector.mode]?.aliasedBy?.length
|
|
328
|
+
? token.token.mode[selector.mode].aliasedBy
|
|
329
|
+
: token.token.aliasedBy;
|
|
330
|
+
let aliasTokens = aliasedBy?.length
|
|
331
|
+
? getTransforms({ format: FORMAT_ID, id: aliasedBy, mode: selector.mode })
|
|
332
|
+
: [];
|
|
333
|
+
// Note: this will grab aliases from alternate and default modes. If we have duplicates, discard the default modes
|
|
334
|
+
const uniqueAliasIDs = new Set(aliasTokens.map((t) => t.id));
|
|
335
|
+
if (uniqueAliasIDs.size !== aliasTokens.length && selector.mode !== '.') {
|
|
336
|
+
aliasTokens = aliasTokens.filter((t, i) => !aliasTokens.some((t2, i2) => t.id === t2.id && i !== i2 && t.mode === '.'));
|
|
337
|
+
}
|
|
338
|
+
// single-value token
|
|
339
|
+
if (token.type === 'SINGLE_VALUE') {
|
|
340
|
+
addDeclUnique(modeRule.children, decl(localID, token.value, getDescription(token)));
|
|
341
|
+
}
|
|
342
|
+
// multi-value token (wide gamut color)
|
|
343
|
+
else if (token.value.srgb && token.value.p3 && token.value.rec2020) {
|
|
344
|
+
addDeclUnique(modeRule.children, decl(localID, token.value.srgb, getDescription(token)));
|
|
345
|
+
if (token.value.p3 !== token.value.srgb) {
|
|
346
|
+
addDeclUnique(hdrColors.p3, decl(localID, token.value.p3, getDescription(token)));
|
|
347
|
+
addDeclUnique(hdrColors.rec2020, decl(localID, token.value.rec2020, getDescription(token)));
|
|
348
|
+
// handle aliases within color gamut media queries
|
|
349
|
+
for (const alias of aliasTokens) {
|
|
350
|
+
if (alias.localID && typeof alias.value === 'string') {
|
|
351
|
+
for (const gamut of ['p3', 'rec2020']) {
|
|
352
|
+
addDeclUnique(hdrColors[gamut], decl(alias.localID, alias.value, getDescription(alias)));
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// multi-value token
|
|
359
|
+
else {
|
|
360
|
+
for (const [name, subValue] of Object.entries(token.value)) {
|
|
361
|
+
const subValueID = makeSubValueId(localID, name, token);
|
|
362
|
+
addDeclUnique(modeRule.children, decl(subValueID, subValue, getDescription(token)));
|
|
363
|
+
}
|
|
364
|
+
// Note: always generate shorthand after other declarations
|
|
365
|
+
const shorthand = generateShorthand({
|
|
366
|
+
token: { ...token.token, $value: token.value },
|
|
367
|
+
localID,
|
|
368
|
+
omitTypographyShorthand,
|
|
369
|
+
});
|
|
370
|
+
if (shorthand) {
|
|
371
|
+
addDeclUnique(modeRule.children, decl(localID, shorthand, getDescription(token)));
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
// redeclare aliases so they have the correct scope
|
|
375
|
+
for (const alias of aliasTokens) {
|
|
376
|
+
if (alias.localID && typeof alias.value === 'string') {
|
|
377
|
+
addDeclUnique(modeRule.children, decl(alias.localID, alias.value, getDescription(token)));
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
if (output) {
|
|
382
|
+
output += '\n\n';
|
|
383
|
+
}
|
|
384
|
+
output += printRules([
|
|
385
|
+
modeRule,
|
|
386
|
+
rule([P3_MQ], [rule(selector.selectors, hdrColors.p3)]),
|
|
387
|
+
rule([REC2020_MQ], [rule(selector.selectors, hdrColors.rec2020)]),
|
|
388
|
+
]);
|
|
389
|
+
}
|
|
390
|
+
// add utility CSS
|
|
391
|
+
if (utility && Object.keys(utility).length > 0) {
|
|
392
|
+
if (output) {
|
|
393
|
+
output += '\n\n';
|
|
394
|
+
}
|
|
395
|
+
output += printRules(generateUtilityCSS(utility, getTransforms({ format: FORMAT_ID, mode: '.' }), { logger }));
|
|
396
|
+
}
|
|
397
|
+
if (propertyDefsNodes.length > 0 && output) {
|
|
398
|
+
output = `${printRules(propertyDefsNodes)}\n\n${output}`;
|
|
399
|
+
}
|
|
400
|
+
return output;
|
|
401
|
+
}
|
|
402
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,173 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
declare const PLUGIN_NAME = "@terrazzo/plugin-css";
|
|
9
|
-
declare const FORMAT_ID = "css";
|
|
10
|
-
declare const FILE_PREFIX = "/* -------------------------------------------\n * Autogenerated by \u26CB Terrazzo. DO NOT EDIT!\n * ------------------------------------------- */";
|
|
11
|
-
interface CSSPluginOptions {
|
|
12
|
-
/**
|
|
13
|
-
* Where to output CSS
|
|
14
|
-
* @default "index.css"
|
|
15
|
-
*/
|
|
16
|
-
filename?: string;
|
|
17
|
-
/** Glob patterns to filter tokens in output */
|
|
18
|
-
include?: string[];
|
|
19
|
-
/** Glob patterns to exclude tokens from output */
|
|
20
|
-
exclude?: string[];
|
|
21
|
-
/**
|
|
22
|
-
* Set the base selector, like ":root" or ":host".
|
|
23
|
-
* @deprecated use permutations instead.
|
|
24
|
-
* @default ":root"
|
|
25
|
-
*/
|
|
26
|
-
baseSelector?: string;
|
|
27
|
-
/**
|
|
28
|
-
* Set the color-scheme CSS property for `baseSelector`.
|
|
29
|
-
* @deprecated use permutations instead.
|
|
30
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/color-scheme
|
|
31
|
-
* @example "light dark"
|
|
32
|
-
*/
|
|
33
|
-
baseScheme?: string;
|
|
34
|
-
/**
|
|
35
|
-
* Build resolver contexts into media queries
|
|
36
|
-
*/
|
|
37
|
-
permutations?: Permutation[];
|
|
38
|
-
/**
|
|
39
|
-
* Define mode selectors as media queries or CSS classes
|
|
40
|
-
* @deprecated Migrate to permutations
|
|
41
|
-
*/
|
|
42
|
-
modeSelectors?: ModeSelector[];
|
|
43
|
-
/** Control the final CSS variable name */
|
|
44
|
-
variableName?: (token: TokenNormalized) => string;
|
|
45
|
-
/** Override certain token values */
|
|
46
|
-
transform?: (token: TokenNormalized, options: TransformCSSValueOptions) => TokenTransformed['value'] | undefined | null;
|
|
47
|
-
/** Generate utility CSS from groups */
|
|
48
|
-
utility?: Partial<Record<UtilityCSSGroup, string[]>>;
|
|
49
|
-
/**
|
|
50
|
-
* Output colors as hex-6/hex-8 instead of color() function
|
|
51
|
-
* @default false
|
|
52
|
-
*/
|
|
53
|
-
legacyHex?: boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Skip generating any `.css` files (useful if you are consuming values in your own plugin and don’t need any `.css` files written to disk).
|
|
56
|
-
* @default false
|
|
57
|
-
*/
|
|
58
|
-
skipBuild?: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Generate CSS @property definitions for type-safe CSS Custom Properties.
|
|
61
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/@property
|
|
62
|
-
* @default false
|
|
63
|
-
*/
|
|
64
|
-
propertyDefinitions?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Do not generate CSS shorthand declarations for typography tokens.
|
|
67
|
-
*
|
|
68
|
-
* Note that individual, per-subvalue declarations will still be generated for these tokens.
|
|
69
|
-
* @default false
|
|
70
|
-
*/
|
|
71
|
-
omitTypographyShorthand?: boolean;
|
|
72
|
-
/**
|
|
73
|
-
* Control how sub value names are appended to the CSS variable name.
|
|
74
|
-
*
|
|
75
|
-
* By default, sub value names are appended as is with a hyphen. E.g. given CSS variable name `--my-token` and
|
|
76
|
-
* sub value name `font-size`, the resulting variable name would be `--my-token-font-size`.
|
|
77
|
-
*/
|
|
78
|
-
subValueVariableName?: (variableName: string, subValueName: string, token: TokenTransformed) => string;
|
|
79
|
-
}
|
|
80
|
-
interface Permutation<T extends Record<string, string> = Record<string, string>> {
|
|
81
|
-
/** Generate the final CSS string, wrapping content in the selector(s) of your choice. */
|
|
82
|
-
prepare(contents: string): string;
|
|
83
|
-
/** Input for this permutation. */
|
|
84
|
-
input: T;
|
|
85
|
-
/** Provide token(s) to include (Note: not including tokens that are used as aliases for other tokens could cause visual bugs in generated CSS) */
|
|
86
|
-
include?: string[];
|
|
87
|
-
/** Provide token(s) to exclude (Note: excluding tokens that are used as aliases for other tokens could cause visual bugs in generated CSS) */
|
|
88
|
-
exclude?: string[];
|
|
89
|
-
/**
|
|
90
|
-
* Custom transform for this permutation
|
|
91
|
-
*/
|
|
92
|
-
transform?: (token: TokenNormalized, options: TransformCSSValueOptions) => TokenTransformed['value'] | undefined | null;
|
|
93
|
-
}
|
|
94
|
-
interface ModeSelector {
|
|
95
|
-
/** The name of the mode to match */
|
|
96
|
-
mode: string;
|
|
97
|
-
/** Provide token IDs to match. Globs are allowed (e.g: `["color.*", "shadow.dark"]`) */
|
|
98
|
-
tokens?: string[];
|
|
99
|
-
/** Provide CSS selectors to generate. (e.g.: `["@media (prefers-color-scheme: dark)", "[data-color-theme='dark']"]` ) */
|
|
100
|
-
selectors: string[];
|
|
101
|
-
/** Set the color-scheme CSS property for this mode (e.g.: "light", "dark", "light dark") */
|
|
102
|
-
scheme?: string;
|
|
103
|
-
}
|
|
104
|
-
interface CSSDeclaration {
|
|
105
|
-
type: 'Declaration';
|
|
106
|
-
property: string;
|
|
107
|
-
value: string;
|
|
108
|
-
comment?: string;
|
|
109
|
-
}
|
|
110
|
-
interface CSSRule {
|
|
111
|
-
type: 'Rule';
|
|
112
|
-
prelude: string[];
|
|
113
|
-
children: (CSSRule | CSSDeclaration)[];
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Convert CSSRules into a formatted, indented CSS string.
|
|
117
|
-
* The reason we’re using this homemade version instead of something like css-tree is:
|
|
118
|
-
*
|
|
119
|
-
* 1. css-tree doesn’t support comments :(
|
|
120
|
-
* 2. we are only generating PARTIALS, not full CSS (the user controls the
|
|
121
|
-
* wrapper). So with a proper AST, we’d be hacking it a little anyway because
|
|
122
|
-
* we never really have a true, valid, finalized document.
|
|
123
|
-
* 3. we want @terrazzo/plugin-css to run in the browser AND be lean (i.e. don’t
|
|
124
|
-
* load Prettier or 25MB of wasm).
|
|
125
|
-
* 4. we only have to deal with a small subset of CSS—this doesn’t have to be robust
|
|
126
|
-
* by any means (even future additions won’t push the limits of the spec).
|
|
127
|
-
*/
|
|
128
|
-
declare function printRules(nodes: (CSSRule | CSSDeclaration)[], {
|
|
129
|
-
indentChar,
|
|
130
|
-
indentLv,
|
|
131
|
-
alphabetize
|
|
132
|
-
}?: {
|
|
133
|
-
indentChar?: string;
|
|
134
|
-
indentLv?: number;
|
|
135
|
-
alphabetize?: boolean;
|
|
136
|
-
}): string;
|
|
137
|
-
/** Internal printer for individual nodes */
|
|
138
|
-
declare function printNode(node: CSSRule | CSSDeclaration, {
|
|
139
|
-
indentChar,
|
|
140
|
-
indentLv
|
|
141
|
-
}: {
|
|
142
|
-
indentChar: string;
|
|
143
|
-
indentLv: number;
|
|
144
|
-
}): string;
|
|
145
|
-
//#endregion
|
|
146
|
-
//#region src/build.d.ts
|
|
147
|
-
interface BuildFormatOptions {
|
|
148
|
-
logger: Logger;
|
|
149
|
-
include: CSSPluginOptions['include'];
|
|
150
|
-
exclude: CSSPluginOptions['exclude'];
|
|
151
|
-
getTransforms: BuildHookOptions['getTransforms'];
|
|
152
|
-
modeSelectors: CSSPluginOptions['modeSelectors'];
|
|
153
|
-
alphabetize?: Config['alphabetize'];
|
|
154
|
-
permutations: CSSPluginOptions['permutations'];
|
|
155
|
-
utility: CSSPluginOptions['utility'];
|
|
156
|
-
baseSelector: string;
|
|
157
|
-
baseScheme: CSSPluginOptions['baseScheme'];
|
|
158
|
-
propertyDefinitions: boolean;
|
|
159
|
-
omitTypographyShorthand: CSSPluginOptions['omitTypographyShorthand'];
|
|
160
|
-
subValueVariableName: CSSPluginOptions['subValueVariableName'];
|
|
161
|
-
}
|
|
162
|
-
//#endregion
|
|
163
|
-
//#region src/transform.d.ts
|
|
164
|
-
interface TransformOptions {
|
|
165
|
-
transform: TransformHookOptions;
|
|
166
|
-
options: CSSPluginOptions;
|
|
167
|
-
}
|
|
168
|
-
//#endregion
|
|
169
|
-
//#region src/index.d.ts
|
|
170
|
-
declare function cssPlugin(options?: CSSPluginOptions): Plugin;
|
|
171
|
-
//#endregion
|
|
172
|
-
export { BuildFormatOptions, type CSSDeclaration, type CSSPluginOptions, type CSSRule, FILE_PREFIX, FORMAT_ID, type ModeSelector, PLUGIN_NAME, type Permutation, TransformOptions, type UtilityCSSGroup, type UtilityCSSPrefix, cssPlugin as default, printNode, printRules };
|
|
1
|
+
import type { Plugin } from '@terrazzo/parser';
|
|
2
|
+
import { type CSSPluginOptions } from './lib.js';
|
|
3
|
+
export * from './build.js';
|
|
4
|
+
export { type CSSDeclaration, type CSSPluginOptions, type CSSRule, FILE_PREFIX, FORMAT_ID, type ModeSelector, type Permutation, PLUGIN_NAME, printNode, printRules, type UtilityCSSGroup, type UtilityCSSPrefix, } from './lib.js';
|
|
5
|
+
export * from './transform.js';
|
|
6
|
+
export * from './utility-css.js';
|
|
7
|
+
export default function cssPlugin(options?: CSSPluginOptions): Plugin;
|
|
173
8
|
//# sourceMappingURL=index.d.ts.map
|