@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.
@@ -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[prop], detached[prop]);
526
+ deepStringify(objProp, detached[prop]);
527
527
  } else if ((0, import_types.isArray)(objProp)) {
528
528
  detached[prop] = [];
529
- objProp.map((v, i) => deepStringify(v, detached[prop][i]));
530
- } else
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[prop], detached[prop]);
526
+ deepStringify(objProp, detached[prop]);
527
527
  } else if ((0, import_types.isArray)(objProp)) {
528
528
  detached[prop] = [];
529
- objProp.map((v, i) => deepStringify(v, detached[prop][i]));
530
- } else
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[prop], detached[prop]);
526
+ deepStringify(objProp, detached[prop]);
527
527
  } else if ((0, import_types.isArray)(objProp)) {
528
528
  detached[prop] = [];
529
- objProp.map((v, i) => deepStringify(v, detached[prop][i]));
530
- } else
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[prop], detached[prop]);
526
+ deepStringify(objProp, detached[prop]);
527
527
  } else if ((0, import_types.isArray)(objProp)) {
528
528
  detached[prop] = [];
529
- objProp.map((v, i) => deepStringify(v, detached[prop][i]));
530
- } else
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.253",
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": "a941c4b0f1e909f33428ac7f5dedcd90d0365c6b"
35
+ "gitHead": "3c16c123fa0b6cf00a16e2178bbbfd1049d4c0cc"
36
36
  }
package/src/index.js CHANGED
@@ -7,6 +7,7 @@ export * from './factory.js'
7
7
  export * from './defaultConfig'
8
8
  export * from './system'
9
9
  export * from './utils'
10
+ export * from './transforms'
10
11
  export * from './set.js'
11
12
 
12
13
  export { scratchUtils, scratchSystem }
@@ -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
- if (tone.slice(0, 1) === '-' || tone.slice(0, 1) === '+') {
50
- rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(', ')
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, property, globalTheme) => {
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 { [property]: `var(${value})` }
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 { [property]: getColor(value, globalTheme) }
86
+ if (isObj && val.value) return getColor(value, `@${globalTheme}`)
84
87
  else if (isObj) {
85
- if (globalTheme) return { [property]: getColor(value, `@${globalTheme}`) }
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] = { [property]: getColor(value, mediaName) }
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 { [property]: value }
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
+ )