@symbo.ls/scratch 2.10.253 → 2.10.257
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/cjs/factory.js +13 -3
- package/dist/cjs/index.js +109 -18
- package/dist/cjs/set.js +24 -11
- package/dist/cjs/system/color.js +24 -11
- package/dist/cjs/system/document.js +13 -3
- package/dist/cjs/system/font.js +13 -3
- package/dist/cjs/system/index.js +24 -11
- package/dist/cjs/system/reset.js +13 -3
- package/dist/cjs/system/spacing.js +13 -3
- package/dist/cjs/system/svg.js +13 -3
- package/dist/cjs/system/theme.js +18 -5
- package/dist/cjs/system/timing.js +13 -3
- package/dist/cjs/system/typography.js +13 -3
- package/dist/cjs/transforms/index.js +1540 -0
- package/dist/cjs/utils/index.js +13 -3
- package/dist/cjs/utils/sequence.js +13 -3
- package/dist/cjs/utils/sprite.js +13 -3
- package/dist/cjs/utils/var.js +13 -3
- package/package.json +2 -2
- package/src/index.js +1 -0
- package/src/system/color.js +11 -8
- package/src/transforms/index.js +70 -0
package/dist/cjs/utils/index.js
CHANGED
|
@@ -523,12 +523,22 @@ var require_object = __commonJS({
|
|
|
523
523
|
continue;
|
|
524
524
|
else if ((0, import_types.isObject)(objProp)) {
|
|
525
525
|
detached[prop] = {};
|
|
526
|
-
deepStringify(objProp
|
|
526
|
+
deepStringify(objProp, detached[prop]);
|
|
527
527
|
} else if ((0, import_types.isArray)(objProp)) {
|
|
528
528
|
detached[prop] = [];
|
|
529
|
-
objProp.
|
|
530
|
-
|
|
529
|
+
objProp.forEach((v, i) => {
|
|
530
|
+
if ((0, import_types.isFunction)(v))
|
|
531
|
+
return;
|
|
532
|
+
if ((0, import_types.isObject)(v)) {
|
|
533
|
+
detached[prop][i] = {};
|
|
534
|
+
detachFunctionsFromObject(v, detached[prop][i]);
|
|
535
|
+
} else {
|
|
536
|
+
detached[prop][i] = v;
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
} else {
|
|
531
540
|
detached[prop] = objProp;
|
|
541
|
+
}
|
|
532
542
|
}
|
|
533
543
|
return detached;
|
|
534
544
|
};
|
|
@@ -523,12 +523,22 @@ var require_object = __commonJS({
|
|
|
523
523
|
continue;
|
|
524
524
|
else if ((0, import_types.isObject)(objProp)) {
|
|
525
525
|
detached[prop] = {};
|
|
526
|
-
deepStringify(objProp
|
|
526
|
+
deepStringify(objProp, detached[prop]);
|
|
527
527
|
} else if ((0, import_types.isArray)(objProp)) {
|
|
528
528
|
detached[prop] = [];
|
|
529
|
-
objProp.
|
|
530
|
-
|
|
529
|
+
objProp.forEach((v, i) => {
|
|
530
|
+
if ((0, import_types.isFunction)(v))
|
|
531
|
+
return;
|
|
532
|
+
if ((0, import_types.isObject)(v)) {
|
|
533
|
+
detached[prop][i] = {};
|
|
534
|
+
detachFunctionsFromObject(v, detached[prop][i]);
|
|
535
|
+
} else {
|
|
536
|
+
detached[prop][i] = v;
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
} else {
|
|
531
540
|
detached[prop] = objProp;
|
|
541
|
+
}
|
|
532
542
|
}
|
|
533
543
|
return detached;
|
|
534
544
|
};
|
package/dist/cjs/utils/sprite.js
CHANGED
|
@@ -523,12 +523,22 @@ var require_object = __commonJS({
|
|
|
523
523
|
continue;
|
|
524
524
|
else if ((0, import_types.isObject)(objProp)) {
|
|
525
525
|
detached[prop] = {};
|
|
526
|
-
deepStringify(objProp
|
|
526
|
+
deepStringify(objProp, detached[prop]);
|
|
527
527
|
} else if ((0, import_types.isArray)(objProp)) {
|
|
528
528
|
detached[prop] = [];
|
|
529
|
-
objProp.
|
|
530
|
-
|
|
529
|
+
objProp.forEach((v, i) => {
|
|
530
|
+
if ((0, import_types.isFunction)(v))
|
|
531
|
+
return;
|
|
532
|
+
if ((0, import_types.isObject)(v)) {
|
|
533
|
+
detached[prop][i] = {};
|
|
534
|
+
detachFunctionsFromObject(v, detached[prop][i]);
|
|
535
|
+
} else {
|
|
536
|
+
detached[prop][i] = v;
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
} else {
|
|
531
540
|
detached[prop] = objProp;
|
|
541
|
+
}
|
|
532
542
|
}
|
|
533
543
|
return detached;
|
|
534
544
|
};
|
package/dist/cjs/utils/var.js
CHANGED
|
@@ -523,12 +523,22 @@ var require_object = __commonJS({
|
|
|
523
523
|
continue;
|
|
524
524
|
else if ((0, import_types.isObject)(objProp)) {
|
|
525
525
|
detached[prop] = {};
|
|
526
|
-
deepStringify(objProp
|
|
526
|
+
deepStringify(objProp, detached[prop]);
|
|
527
527
|
} else if ((0, import_types.isArray)(objProp)) {
|
|
528
528
|
detached[prop] = [];
|
|
529
|
-
objProp.
|
|
530
|
-
|
|
529
|
+
objProp.forEach((v, i) => {
|
|
530
|
+
if ((0, import_types.isFunction)(v))
|
|
531
|
+
return;
|
|
532
|
+
if ((0, import_types.isObject)(v)) {
|
|
533
|
+
detached[prop][i] = {};
|
|
534
|
+
detachFunctionsFromObject(v, detached[prop][i]);
|
|
535
|
+
} else {
|
|
536
|
+
detached[prop][i] = v;
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
} else {
|
|
531
540
|
detached[prop] = objProp;
|
|
541
|
+
}
|
|
532
542
|
}
|
|
533
543
|
return detached;
|
|
534
544
|
};
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@symbo.ls/scratch",
|
|
3
3
|
"description": "Φ / CSS framework and methodology.",
|
|
4
4
|
"author": "symbo.ls",
|
|
5
|
-
"version": "2.10.
|
|
5
|
+
"version": "2.10.257",
|
|
6
6
|
"files": [
|
|
7
7
|
"src",
|
|
8
8
|
"dist"
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@emotion/css": "^11.5.0"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "3c16c123fa0b6cf00a16e2178bbbfd1049d4c0cc"
|
|
36
36
|
}
|
package/src/index.js
CHANGED
package/src/system/color.js
CHANGED
|
@@ -46,8 +46,11 @@ export const getColor = (value, key) => {
|
|
|
46
46
|
if (tone) {
|
|
47
47
|
if (!val[tone]) {
|
|
48
48
|
const toHex = rgbArrayToHex(rgb.split(', ').map(v => parseFloat(v)))
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
const abs = tone.slice(0, 1)
|
|
50
|
+
if (abs === '-' || abs === '+') {
|
|
51
|
+
rgb = hexToRgbArray(
|
|
52
|
+
getColorShade(toHex, parseFloat(tone))
|
|
53
|
+
).join(', ')
|
|
51
54
|
} else {
|
|
52
55
|
const [r, g, b] = [...rgb.split(', ').map(v => parseInt(v))]
|
|
53
56
|
const hsl = rgbToHSL(r, g, b)
|
|
@@ -64,7 +67,7 @@ export const getColor = (value, key) => {
|
|
|
64
67
|
} else return CONFIG.useVariable ? `var(${val.var})` : val.value
|
|
65
68
|
}
|
|
66
69
|
|
|
67
|
-
export const getMediaColor = (value,
|
|
70
|
+
export const getMediaColor = (value, globalTheme) => {
|
|
68
71
|
const CONFIG = getActiveConfig()
|
|
69
72
|
if (!globalTheme) globalTheme = CONFIG.globalTheme
|
|
70
73
|
if (!isString(value)) {
|
|
@@ -72,7 +75,7 @@ export const getMediaColor = (value, property, globalTheme) => {
|
|
|
72
75
|
return
|
|
73
76
|
}
|
|
74
77
|
|
|
75
|
-
if (value.slice(0, 2) === '--') return
|
|
78
|
+
if (value.slice(0, 2) === '--') return `var(${value})`
|
|
76
79
|
|
|
77
80
|
const [name] = isArray(value) ? value : value.split(' ')
|
|
78
81
|
|
|
@@ -80,21 +83,21 @@ export const getMediaColor = (value, property, globalTheme) => {
|
|
|
80
83
|
const val = COLOR[name] || GRADIENT[name]
|
|
81
84
|
const isObj = isObject(val)
|
|
82
85
|
|
|
83
|
-
if (isObj && val.value) return
|
|
86
|
+
if (isObj && val.value) return getColor(value, `@${globalTheme}`)
|
|
84
87
|
else if (isObj) {
|
|
85
|
-
if (globalTheme) return
|
|
88
|
+
if (globalTheme) return getColor(value, `@${globalTheme}`)
|
|
86
89
|
else {
|
|
87
90
|
const obj = {}
|
|
88
91
|
for (const mediaName in val) {
|
|
89
92
|
const query = CONFIG.MEDIA[mediaName.slice(1)]
|
|
90
93
|
const media = `@media screen and ${query}`
|
|
91
|
-
obj[media] =
|
|
94
|
+
obj[media] = getColor(value, mediaName)
|
|
92
95
|
}
|
|
93
96
|
return obj
|
|
94
97
|
}
|
|
95
98
|
} else {
|
|
96
99
|
if (CONFIG.verbose) console.warn('Can\'t find color', value)
|
|
97
|
-
return
|
|
100
|
+
return value
|
|
98
101
|
}
|
|
99
102
|
}
|
|
100
103
|
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
import { isString } from '@domql/utils'
|
|
4
|
+
import { getActiveConfig } from "../factory"
|
|
5
|
+
import { getSpacingByKey, getColor, getMediaColor } from "../system"
|
|
6
|
+
|
|
7
|
+
const isBorderStyle = str => [
|
|
8
|
+
'none',
|
|
9
|
+
'hidden',
|
|
10
|
+
'dotted',
|
|
11
|
+
'dashed',
|
|
12
|
+
'solid',
|
|
13
|
+
'double',
|
|
14
|
+
'groove',
|
|
15
|
+
'ridge',
|
|
16
|
+
'inset',
|
|
17
|
+
'outset',
|
|
18
|
+
'initial'
|
|
19
|
+
].some(v => str.includes(v))
|
|
20
|
+
|
|
21
|
+
export const transformBorder = border => {
|
|
22
|
+
const arr = border.split(', ')
|
|
23
|
+
return arr.map(v => {
|
|
24
|
+
v = v.trim()
|
|
25
|
+
if (v.slice(0, 2) === '--') return `var(${v})`
|
|
26
|
+
else if (isBorderStyle(v)) return v || 'solid'
|
|
27
|
+
else if (v.slice(-2) === 'px' || v.slice(-2) === 'em') return v // TODO: add map spacing
|
|
28
|
+
else if (getColor(v).length > 2) return getColor(v)
|
|
29
|
+
return getSpacingByKey(v, 'border').border
|
|
30
|
+
}).join(' ')
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const transformTextStroke = stroke => {
|
|
34
|
+
return stroke.split(', ').map(v => {
|
|
35
|
+
if (v.slice(0, 2) === '--') return `var(${v})`
|
|
36
|
+
if (v.includes('px')) return v
|
|
37
|
+
else if (getColor(v)) return getColor(v)
|
|
38
|
+
}).join(' ')
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export const transformShadow = shadows => shadows.split('|').map(shadow => {
|
|
42
|
+
return shadow.split(', ').map(v => {
|
|
43
|
+
v = v.trim()
|
|
44
|
+
if (v.slice(0, 2) === '--') return `var(${v})`
|
|
45
|
+
if (getColor(v).length > 2) return getColor(v)
|
|
46
|
+
if (v.includes('px') || v.slice(-2) === 'em') return v
|
|
47
|
+
const arr = v.split(' ')
|
|
48
|
+
if (!arr.length) return v
|
|
49
|
+
return arr.map(v => getSpacingByKey(v, 'shadow').shadow).join(' ')
|
|
50
|
+
}).join(' ')
|
|
51
|
+
}).join(',')
|
|
52
|
+
|
|
53
|
+
export const transformBackgroundImage = (backgroundImage, globalTheme) => {
|
|
54
|
+
const CONFIG = getActiveConfig()
|
|
55
|
+
return backgroundImage.split(', ').map(v => {
|
|
56
|
+
if (v.slice(0, 2) === '--') return `var(${v})`
|
|
57
|
+
if (v.includes('url') || v.includes('gradient')) return v
|
|
58
|
+
else if (CONFIG.GRADIENT[backgroundImage]) {
|
|
59
|
+
return {
|
|
60
|
+
backgroundImage: getMediaColor(backgroundImage, globalTheme || CONFIG.globalTheme)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (v.includes('/') || v.includes('http')) return `url(${v})`
|
|
64
|
+
return v
|
|
65
|
+
}).join(' ')
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export const transfromGap = gap => isString(gap) && (
|
|
69
|
+
gap.split(' ').map(v => getSpacingByKey(v, 'gap').gap).join(' ')
|
|
70
|
+
)
|