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.
@@ -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;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,QAAA,MAAM,MAAM,EAAE,MAgjBb,CAAC;AAEF,eAAe,MAAM,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"}
@@ -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) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qstd",
3
- "version": "0.3.81",
3
+ "version": "0.3.83",
4
4
  "description": "Standard Block component and utilities library with Panda CSS",
5
5
  "author": "malin1",
6
6
  "license": "MIT",