@symbo.ls/scratch 2.10.257 → 2.10.258

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/index.js CHANGED
@@ -952,10 +952,13 @@ __export(src_exports, {
952
952
  setTheme: () => setTheme,
953
953
  setValue: () => setValue,
954
954
  setVariables: () => setVariables,
955
+ splitTransition: () => splitTransition,
955
956
  transformBackgroundImage: () => transformBackgroundImage,
956
957
  transformBorder: () => transformBorder,
958
+ transformDuration: () => transformDuration,
957
959
  transformShadow: () => transformShadow,
958
960
  transformTextStroke: () => transformTextStroke,
961
+ transformTransition: () => transformTransition,
959
962
  transfromGap: () => transfromGap
960
963
  });
961
964
  module.exports = __toCommonJS(src_exports);
@@ -2500,6 +2503,33 @@ var transformBackgroundImage = (backgroundImage, globalTheme) => {
2500
2503
  }).join(" ");
2501
2504
  };
2502
2505
  var transfromGap = (gap) => (0, import_utils25.isString)(gap) && gap.split(" ").map((v) => getSpacingByKey(v, "gap").gap).join(" ");
2506
+ var transformTransition = (transition) => {
2507
+ const arr = transition.split(" ");
2508
+ if (!arr.length)
2509
+ return transition;
2510
+ return arr.map((v) => {
2511
+ if (v.slice(0, 2) === "--")
2512
+ return `var(${v})`;
2513
+ if (v.length < 3 || v.includes("ms")) {
2514
+ const mapWithSequence = getTimingByKey(v);
2515
+ return mapWithSequence.timing || v;
2516
+ }
2517
+ if (getTimingFunction(v))
2518
+ return getTimingFunction(v);
2519
+ return v;
2520
+ }).join(" ");
2521
+ };
2522
+ var transformDuration = (duration, props, propertyName) => {
2523
+ if (!(0, import_utils25.isString)(duration))
2524
+ return;
2525
+ return duration.split(",").map((v) => getTimingByKey(v).timing || v).join(",");
2526
+ };
2527
+ var splitTransition = (transition) => {
2528
+ const arr = transition.split(",");
2529
+ if (!arr.length)
2530
+ return;
2531
+ return arr.map(transformTransition).join(",");
2532
+ };
2503
2533
 
2504
2534
  // src/set.js
2505
2535
  var import_utils26 = __toESM(require_cjs3(), 1);
@@ -856,10 +856,13 @@ var require_cjs3 = __commonJS({
856
856
  // src/transforms/index.js
857
857
  var transforms_exports = {};
858
858
  __export(transforms_exports, {
859
+ splitTransition: () => splitTransition,
859
860
  transformBackgroundImage: () => transformBackgroundImage,
860
861
  transformBorder: () => transformBorder,
862
+ transformDuration: () => transformDuration,
861
863
  transformShadow: () => transformShadow,
862
864
  transformTextStroke: () => transformTextStroke,
865
+ transformTransition: () => transformTransition,
863
866
  transfromGap: () => transfromGap
864
867
  });
865
868
  module.exports = __toCommonJS(transforms_exports);
@@ -1140,6 +1143,11 @@ var import_utils3 = __toESM(require_cjs3());
1140
1143
  var import_utils2 = __toESM(require_cjs3());
1141
1144
 
1142
1145
  // ../utils/src/index.js
1146
+ var toCamelCase = (str) => {
1147
+ return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) {
1148
+ return index === 0 ? word.toLowerCase() : word.toUpperCase();
1149
+ }).replaceAll(/\s+/g, "");
1150
+ };
1143
1151
  var toDashCase = (val) => val.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? "-" : "") + match.toLowerCase()).replace(".", "-");
1144
1152
  var arrayzeValue = (val) => {
1145
1153
  if ((0, import_utils3.isString)(val))
@@ -1458,6 +1466,22 @@ var getSpacingByKey = (value, propertyName = "padding", sequenceProps) => {
1458
1466
  );
1459
1467
  };
1460
1468
 
1469
+ // src/system/timing.js
1470
+ var getTimingFunction = (value) => {
1471
+ const CONFIG2 = getActiveConfig();
1472
+ const { TIMING: TIMING2 } = CONFIG2;
1473
+ return TIMING2[value] || TIMING2[toCamelCase(value)] || value;
1474
+ };
1475
+ var getTimingByKey = (value, property = "timing") => {
1476
+ const CONFIG2 = getActiveConfig();
1477
+ const { TIMING: TIMING2 } = CONFIG2;
1478
+ return getSequenceValuePropertyPair(
1479
+ value,
1480
+ property,
1481
+ TIMING2
1482
+ );
1483
+ };
1484
+
1461
1485
  // src/system/document.js
1462
1486
  var import_utils21 = __toESM(require_cjs3(), 1);
1463
1487
 
@@ -1538,3 +1562,30 @@ var transformBackgroundImage = (backgroundImage, globalTheme) => {
1538
1562
  }).join(" ");
1539
1563
  };
1540
1564
  var transfromGap = (gap) => (0, import_utils25.isString)(gap) && gap.split(" ").map((v) => getSpacingByKey(v, "gap").gap).join(" ");
1565
+ var transformTransition = (transition) => {
1566
+ const arr = transition.split(" ");
1567
+ if (!arr.length)
1568
+ return transition;
1569
+ return arr.map((v) => {
1570
+ if (v.slice(0, 2) === "--")
1571
+ return `var(${v})`;
1572
+ if (v.length < 3 || v.includes("ms")) {
1573
+ const mapWithSequence = getTimingByKey(v);
1574
+ return mapWithSequence.timing || v;
1575
+ }
1576
+ if (getTimingFunction(v))
1577
+ return getTimingFunction(v);
1578
+ return v;
1579
+ }).join(" ");
1580
+ };
1581
+ var transformDuration = (duration, props, propertyName) => {
1582
+ if (!(0, import_utils25.isString)(duration))
1583
+ return;
1584
+ return duration.split(",").map((v) => getTimingByKey(v).timing || v).join(",");
1585
+ };
1586
+ var splitTransition = (transition) => {
1587
+ const arr = transition.split(",");
1588
+ if (!arr.length)
1589
+ return;
1590
+ return arr.map(transformTransition).join(",");
1591
+ };
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.257",
5
+ "version": "2.10.258",
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": "3c16c123fa0b6cf00a16e2178bbbfd1049d4c0cc"
35
+ "gitHead": "988320990c3bd3a293df5c9dce5419ef4551d29e"
36
36
  }
@@ -2,7 +2,13 @@
2
2
 
3
3
  import { isString } from '@domql/utils'
4
4
  import { getActiveConfig } from "../factory"
5
- import { getSpacingByKey, getColor, getMediaColor } from "../system"
5
+ import {
6
+ getSpacingByKey,
7
+ getColor,
8
+ getMediaColor,
9
+ getTimingByKey,
10
+ getTimingFunction
11
+ } from "../system"
6
12
 
7
13
  const isBorderStyle = str => [
8
14
  'none',
@@ -68,3 +74,30 @@ export const transformBackgroundImage = (backgroundImage, globalTheme) => {
68
74
  export const transfromGap = gap => isString(gap) && (
69
75
  gap.split(' ').map(v => getSpacingByKey(v, 'gap').gap).join(' ')
70
76
  )
77
+
78
+ export const transformTransition = transition => {
79
+ const arr = transition.split(' ')
80
+
81
+ if (!arr.length) return transition
82
+
83
+ return arr.map(v => {
84
+ if (v.slice(0, 2) === '--') return `var(${v})`
85
+ if (v.length < 3 || v.includes('ms')) {
86
+ const mapWithSequence = getTimingByKey(v)
87
+ return mapWithSequence.timing || v
88
+ }
89
+ if (getTimingFunction(v)) return getTimingFunction(v)
90
+ return v
91
+ }).join(' ')
92
+ }
93
+
94
+ export const transformDuration = (duration, props, propertyName) => {
95
+ if (!isString(duration)) return
96
+ return duration.split(',').map(v => getTimingByKey(v).timing || v).join(',')
97
+ }
98
+
99
+ export const splitTransition = transition => {
100
+ const arr = transition.split(',')
101
+ if (!arr.length) return
102
+ return arr.map(transformTransition).join(',')
103
+ }