qstd 0.3.81 → 0.3.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/preset/index.cjs +67 -0
- package/dist/preset/index.d.ts.map +1 -1
- package/dist/preset/index.js +67 -0
- package/package.json +1 -1
package/dist/preset/index.cjs
CHANGED
|
@@ -1,6 +1,51 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// src/preset/index.ts
|
|
4
|
+
var normalizeBorderColor = (raw) => {
|
|
5
|
+
const borderColor = raw.trim();
|
|
6
|
+
const isKeyword = /^(currentColor|transparent|inherit|initial|unset|revert)$/i.test(
|
|
7
|
+
borderColor
|
|
8
|
+
);
|
|
9
|
+
const isHex = /^#/.test(borderColor);
|
|
10
|
+
const isFunc = /^(rgb|rgba|hsl|hsla|lab|lch|oklab|oklch|color)\(/i.test(
|
|
11
|
+
borderColor
|
|
12
|
+
);
|
|
13
|
+
const isVarRef = /^var\(/.test(borderColor);
|
|
14
|
+
const looksLikeScaleToken = /^[a-zA-Z][\w-]*\.\d{2,3}$/.test(borderColor);
|
|
15
|
+
const looksLikeSemanticToken = /^[a-zA-Z][\w-]*-[\w-]+$/.test(borderColor);
|
|
16
|
+
const shouldWrap = !isKeyword && !isHex && !isFunc && !isVarRef && (looksLikeScaleToken || looksLikeSemanticToken);
|
|
17
|
+
return shouldWrap ? `var(--colors-${borderColor.replace(/\./g, "-")})` : borderColor;
|
|
18
|
+
};
|
|
19
|
+
var parseBorderShorthand = (value) => {
|
|
20
|
+
const raw = value.trim();
|
|
21
|
+
if (raw === "none" || raw === "0" || raw === "0px" || raw === "0rem" || raw === "0em") {
|
|
22
|
+
return {
|
|
23
|
+
width: "0",
|
|
24
|
+
style: "none",
|
|
25
|
+
color: void 0
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const parts = raw.split(/\s+/);
|
|
29
|
+
let width = "";
|
|
30
|
+
let style = "";
|
|
31
|
+
let color = "";
|
|
32
|
+
parts.forEach((part) => {
|
|
33
|
+
if (/^\d+(\.\d+)?(px|em|rem|%|pt|pc|in|cm|mm|ex|ch|vw|vh|vmin|vmax)$/.test(
|
|
34
|
+
part
|
|
35
|
+
))
|
|
36
|
+
width = part;
|
|
37
|
+
else if (/^(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset)$/.test(
|
|
38
|
+
part
|
|
39
|
+
))
|
|
40
|
+
style = part;
|
|
41
|
+
else color = part;
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
width: width || void 0,
|
|
45
|
+
style: style || void 0,
|
|
46
|
+
color: color ? normalizeBorderColor(color) : void 0
|
|
47
|
+
};
|
|
48
|
+
};
|
|
4
49
|
var preset = {
|
|
5
50
|
name: "qstd-preset",
|
|
6
51
|
globalCss: {
|
|
@@ -240,6 +285,28 @@ var preset = {
|
|
|
240
285
|
return { "&, & path": { strokeWidth: value } };
|
|
241
286
|
}
|
|
242
287
|
},
|
|
288
|
+
borderBottom: {
|
|
289
|
+
transform(value) {
|
|
290
|
+
if (typeof value !== "string") return {};
|
|
291
|
+
const parsed = parseBorderShorthand(value);
|
|
292
|
+
return {
|
|
293
|
+
...parsed.width && { borderBottomWidth: parsed.width },
|
|
294
|
+
...parsed.style && { borderBottomStyle: parsed.style },
|
|
295
|
+
...parsed.color && { borderBottomColor: parsed.color }
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
borderTop: {
|
|
300
|
+
transform(value) {
|
|
301
|
+
if (typeof value !== "string") return {};
|
|
302
|
+
const parsed = parseBorderShorthand(value);
|
|
303
|
+
return {
|
|
304
|
+
...parsed.width && { borderTopWidth: parsed.width },
|
|
305
|
+
...parsed.style && { borderTopStyle: parsed.style },
|
|
306
|
+
...parsed.color && { borderTopColor: parsed.color }
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
},
|
|
243
310
|
debug: {
|
|
244
311
|
values: { type: "boolean" },
|
|
245
312
|
transform(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/preset/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/preset/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAwE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,QAAA,MAAM,MAAM,EAAE,MAskBb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/preset/index.js
CHANGED
|
@@ -1,4 +1,49 @@
|
|
|
1
1
|
// src/preset/index.ts
|
|
2
|
+
var normalizeBorderColor = (raw) => {
|
|
3
|
+
const borderColor = raw.trim();
|
|
4
|
+
const isKeyword = /^(currentColor|transparent|inherit|initial|unset|revert)$/i.test(
|
|
5
|
+
borderColor
|
|
6
|
+
);
|
|
7
|
+
const isHex = /^#/.test(borderColor);
|
|
8
|
+
const isFunc = /^(rgb|rgba|hsl|hsla|lab|lch|oklab|oklch|color)\(/i.test(
|
|
9
|
+
borderColor
|
|
10
|
+
);
|
|
11
|
+
const isVarRef = /^var\(/.test(borderColor);
|
|
12
|
+
const looksLikeScaleToken = /^[a-zA-Z][\w-]*\.\d{2,3}$/.test(borderColor);
|
|
13
|
+
const looksLikeSemanticToken = /^[a-zA-Z][\w-]*-[\w-]+$/.test(borderColor);
|
|
14
|
+
const shouldWrap = !isKeyword && !isHex && !isFunc && !isVarRef && (looksLikeScaleToken || looksLikeSemanticToken);
|
|
15
|
+
return shouldWrap ? `var(--colors-${borderColor.replace(/\./g, "-")})` : borderColor;
|
|
16
|
+
};
|
|
17
|
+
var parseBorderShorthand = (value) => {
|
|
18
|
+
const raw = value.trim();
|
|
19
|
+
if (raw === "none" || raw === "0" || raw === "0px" || raw === "0rem" || raw === "0em") {
|
|
20
|
+
return {
|
|
21
|
+
width: "0",
|
|
22
|
+
style: "none",
|
|
23
|
+
color: void 0
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const parts = raw.split(/\s+/);
|
|
27
|
+
let width = "";
|
|
28
|
+
let style = "";
|
|
29
|
+
let color = "";
|
|
30
|
+
parts.forEach((part) => {
|
|
31
|
+
if (/^\d+(\.\d+)?(px|em|rem|%|pt|pc|in|cm|mm|ex|ch|vw|vh|vmin|vmax)$/.test(
|
|
32
|
+
part
|
|
33
|
+
))
|
|
34
|
+
width = part;
|
|
35
|
+
else if (/^(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset)$/.test(
|
|
36
|
+
part
|
|
37
|
+
))
|
|
38
|
+
style = part;
|
|
39
|
+
else color = part;
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
width: width || void 0,
|
|
43
|
+
style: style || void 0,
|
|
44
|
+
color: color ? normalizeBorderColor(color) : void 0
|
|
45
|
+
};
|
|
46
|
+
};
|
|
2
47
|
var preset = {
|
|
3
48
|
name: "qstd-preset",
|
|
4
49
|
globalCss: {
|
|
@@ -238,6 +283,28 @@ var preset = {
|
|
|
238
283
|
return { "&, & path": { strokeWidth: value } };
|
|
239
284
|
}
|
|
240
285
|
},
|
|
286
|
+
borderBottom: {
|
|
287
|
+
transform(value) {
|
|
288
|
+
if (typeof value !== "string") return {};
|
|
289
|
+
const parsed = parseBorderShorthand(value);
|
|
290
|
+
return {
|
|
291
|
+
...parsed.width && { borderBottomWidth: parsed.width },
|
|
292
|
+
...parsed.style && { borderBottomStyle: parsed.style },
|
|
293
|
+
...parsed.color && { borderBottomColor: parsed.color }
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
borderTop: {
|
|
298
|
+
transform(value) {
|
|
299
|
+
if (typeof value !== "string") return {};
|
|
300
|
+
const parsed = parseBorderShorthand(value);
|
|
301
|
+
return {
|
|
302
|
+
...parsed.width && { borderTopWidth: parsed.width },
|
|
303
|
+
...parsed.style && { borderTopStyle: parsed.style },
|
|
304
|
+
...parsed.color && { borderTopColor: parsed.color }
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
},
|
|
241
308
|
debug: {
|
|
242
309
|
values: { type: "boolean" },
|
|
243
310
|
transform(value) {
|