@symbo.ls/scratch 2.10.17 → 2.10.20

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/index.cjs.js CHANGED
@@ -141,12 +141,22 @@ var isDefined = (arg) => {
141
141
  };
142
142
 
143
143
  // ../../node_modules/@domql/utils/object.js
144
- var merge = (element, obj) => {
145
- for (const e in obj) {
144
+ var exec = (param, element, state) => {
145
+ if (isFunction(param))
146
+ return param(element, state || element.state);
147
+ return param;
148
+ };
149
+ var map = (obj2, extention, element) => {
150
+ for (const e in extention) {
151
+ obj2[e] = exec(extention[e], element);
152
+ }
153
+ };
154
+ var merge = (element, obj2) => {
155
+ for (const e in obj2) {
146
156
  const elementProp = element[e];
147
- const objProp = obj[e];
157
+ const objProp2 = obj2[e];
148
158
  if (elementProp === void 0) {
149
- element[e] = objProp;
159
+ element[e] = objProp2;
150
160
  }
151
161
  }
152
162
  return element;
@@ -165,28 +175,160 @@ var deepMerge = (element, extend) => {
165
175
  }
166
176
  return element;
167
177
  };
168
- var deepClone = (obj) => {
169
- if (isArray(obj)) {
170
- return obj.map(deepClone);
178
+ var clone = (obj2) => {
179
+ const o = {};
180
+ for (const prop2 in obj2) {
181
+ if (prop2 === "node")
182
+ continue;
183
+ o[prop2] = obj2[prop2];
184
+ }
185
+ return o;
186
+ };
187
+ var deepClone = (obj2) => {
188
+ if (isArray(obj2)) {
189
+ return obj2.map(deepClone);
171
190
  }
172
191
  const o = {};
173
- for (const prop in obj) {
174
- let objProp = obj[prop];
175
- if (prop === "extend" && isArray(objProp)) {
176
- objProp = mergeArray(objProp);
192
+ for (const prop2 in obj2) {
193
+ let objProp2 = obj2[prop2];
194
+ if (prop2 === "extend" && isArray(objProp2)) {
195
+ objProp2 = mergeArray(objProp2);
177
196
  }
178
- if (isArray(objProp)) {
179
- o[prop] = objProp.map(deepClone);
180
- } else if (isObject(objProp)) {
181
- o[prop] = deepClone(objProp);
197
+ if (isArray(objProp2)) {
198
+ o[prop2] = objProp2.map((v) => isObject(v) ? deepClone(v) : v);
199
+ } else if (isObject(objProp2)) {
200
+ o[prop2] = deepClone(objProp2);
182
201
  } else
183
- o[prop] = objProp;
202
+ o[prop2] = objProp2;
184
203
  }
185
204
  return o;
186
205
  };
206
+ var deepStringify = (obj2, stringified2 = {}) => {
207
+ console.log(obj2);
208
+ for (const prop2 in obj2) {
209
+ const objProp2 = obj2[prop2];
210
+ if (isFunction(objProp2)) {
211
+ stringified2[prop2] = objProp2.toString();
212
+ } else
213
+ stringified2[prop2] = objProp2;
214
+ if (isObject(objProp2))
215
+ deepStringify(stringified2[prop2], stringified2[prop2]);
216
+ }
217
+ return stringified2;
218
+ };
219
+ var deepDestringify = (obj, stringified = {}) => {
220
+ for (const prop in obj) {
221
+ const objProp = obj[prop];
222
+ if (isString(objProp)) {
223
+ if (objProp.slice(0, 1) === "(") {
224
+ try {
225
+ stringified[prop] = eval(objProp);
226
+ } catch (e) {
227
+ if (e)
228
+ stringified[prop] = objProp;
229
+ }
230
+ }
231
+ } else
232
+ stringified[prop] = objProp;
233
+ if (isObject(objProp))
234
+ deepDestringify(stringified[prop], stringified[prop]);
235
+ }
236
+ return stringified;
237
+ };
238
+ var overwrite = (element, params, options) => {
239
+ const { ref } = element;
240
+ const changes = {};
241
+ for (const e in params) {
242
+ if (e === "props")
243
+ continue;
244
+ const elementProp = element[e];
245
+ const paramsProp = params[e];
246
+ if (paramsProp) {
247
+ ref.__cache[e] = changes[e] = elementProp;
248
+ ref[e] = paramsProp;
249
+ }
250
+ }
251
+ return changes;
252
+ };
253
+ var diff = (obj2, original, cache) => {
254
+ const changes = cache || {};
255
+ for (const e in obj2) {
256
+ if (e === "ref")
257
+ continue;
258
+ const originalProp = original[e];
259
+ const objProp2 = obj2[e];
260
+ if (isObjectLike(originalProp) && isObjectLike(objProp2)) {
261
+ changes[e] = {};
262
+ diff(originalProp, objProp2, changes[e]);
263
+ } else if (objProp2 !== void 0) {
264
+ changes[e] = objProp2;
265
+ }
266
+ }
267
+ return changes;
268
+ };
269
+ var overwriteObj = (params, obj2) => {
270
+ const changes = {};
271
+ for (const e in params) {
272
+ const objProp2 = obj2[e];
273
+ const paramsProp = params[e];
274
+ if (paramsProp) {
275
+ obj2[e] = changes[e] = objProp2;
276
+ }
277
+ }
278
+ return changes;
279
+ };
280
+ var overwriteDeep = (params, obj2) => {
281
+ for (const e in params) {
282
+ const objProp2 = obj2[e];
283
+ const paramsProp = params[e];
284
+ if (isObjectLike(objProp2) && isObjectLike(paramsProp)) {
285
+ overwriteDeep(objProp2, paramsProp);
286
+ } else if (paramsProp !== void 0) {
287
+ obj2[e] = paramsProp;
288
+ }
289
+ }
290
+ return obj2;
291
+ };
292
+ var mergeIfExisted = (a, b) => {
293
+ if (isObjectLike(a) && isObjectLike(b))
294
+ return deepMerge(a, b);
295
+ return a || b;
296
+ };
187
297
  var mergeArray = (arr) => {
188
298
  return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {});
189
299
  };
300
+ var mergeAndCloneIfArray = (obj2) => {
301
+ return isArray(obj2) ? mergeArray(obj2) : deepClone(obj2);
302
+ };
303
+ var flattenRecursive = (param, prop2, stack = []) => {
304
+ const objectized = mergeAndCloneIfArray(param);
305
+ stack.push(objectized);
306
+ const extendOfExtend = objectized[prop2];
307
+ if (extendOfExtend)
308
+ flattenRecursive(extendOfExtend, prop2, stack);
309
+ delete objectized[prop2];
310
+ return stack;
311
+ };
312
+ var isEqualDeep = (param, element) => {
313
+ if (param === element)
314
+ return true;
315
+ if (!param || !element)
316
+ return false;
317
+ for (const prop2 in param) {
318
+ const paramProp = param[prop2];
319
+ const elementProp = element[prop2];
320
+ if (isObjectLike(paramProp)) {
321
+ const isEqual = isEqualDeep(paramProp, elementProp);
322
+ if (!isEqual)
323
+ return false;
324
+ } else {
325
+ const isEqual = paramProp === elementProp;
326
+ if (!isEqual)
327
+ return false;
328
+ }
329
+ }
330
+ return true;
331
+ };
190
332
 
191
333
  // ../../node_modules/@domql/utils/node.js
192
334
  var createID = function* () {
@@ -287,27 +429,27 @@ var isObjectLike2 = (arg) => {
287
429
  return false;
288
430
  return typeof arg === "object";
289
431
  };
290
- var merge2 = (obj, original) => {
432
+ var merge2 = (obj2, original) => {
291
433
  for (const e in original) {
292
- const objProp = obj[e];
434
+ const objProp2 = obj2[e];
293
435
  const originalProp = original[e];
294
- if (objProp === void 0) {
295
- obj[e] = originalProp;
436
+ if (objProp2 === void 0) {
437
+ obj2[e] = originalProp;
296
438
  }
297
439
  }
298
- return obj;
299
- };
300
- var deepMerge2 = (obj, obj2) => {
301
- for (const e in obj2) {
302
- const objProp = obj[e];
303
- const obj2Prop = obj2[e];
304
- if (objProp === void 0) {
305
- obj[e] = obj2Prop;
306
- } else if (isObjectLike2(objProp) && isObject2(obj2Prop)) {
307
- deepMerge2(objProp, obj2Prop);
440
+ return obj2;
441
+ };
442
+ var deepMerge2 = (obj2, obj22) => {
443
+ for (const e in obj22) {
444
+ const objProp2 = obj2[e];
445
+ const obj2Prop = obj22[e];
446
+ if (objProp2 === void 0) {
447
+ obj2[e] = obj2Prop;
448
+ } else if (isObjectLike2(objProp2) && isObject2(obj2Prop)) {
449
+ deepMerge2(objProp2, obj2Prop);
308
450
  }
309
451
  }
310
- return obj;
452
+ return obj2;
311
453
  };
312
454
  var arrayze = (val) => {
313
455
  if (isString2(val))
@@ -538,8 +680,8 @@ var setSequenceValue = (props, sequenceProps) => {
538
680
  var generateSubSequence = (props, sequenceProps) => {
539
681
  const { key, base, value, ratio, variable, index } = props;
540
682
  const next = value * ratio;
541
- const diff = next - value;
542
- const smallscale = diff / 1.618;
683
+ const diff2 = next - value;
684
+ const smallscale = diff2 / 1.618;
543
685
  const valueRounded = ~~value;
544
686
  const nextRounded = ~~next;
545
687
  const diffRounded = nextRounded - valueRounded;
@@ -903,13 +1045,13 @@ var getMediaColor = (value, property, globalTheme) => {
903
1045
  if (globalTheme)
904
1046
  return { [property]: getColor(value, `@${globalTheme}`) };
905
1047
  else {
906
- const obj = {};
1048
+ const obj2 = {};
907
1049
  for (const mediaName in val) {
908
1050
  const query = CONFIG2.MEDIA[mediaName.slice(1)];
909
1051
  const media = `@media screen and ${query}`;
910
- obj[media] = { [property]: getColor(value, mediaName) };
1052
+ obj2[media] = { [property]: getColor(value, mediaName) };
911
1053
  }
912
- return obj;
1054
+ return obj2;
913
1055
  }
914
1056
  } else {
915
1057
  if (CONFIG2.verbose)
@@ -928,10 +1070,10 @@ var setColor = (val, key, suffix) => {
928
1070
  };
929
1071
  }
930
1072
  if (isObject(val)) {
931
- const obj = {};
1073
+ const obj2 = {};
932
1074
  for (const variant in val)
933
- obj[variant] = setColor(val[variant], key, variant.slice(0, 1) === "@" ? variant.slice(1) : variant);
934
- return obj;
1075
+ obj2[variant] = setColor(val[variant], key, variant.slice(0, 1) === "@" ? variant.slice(1) : variant);
1076
+ return obj2;
935
1077
  }
936
1078
  const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : "");
937
1079
  const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val);
@@ -959,10 +1101,10 @@ var setGradient = (val, key, suffix) => {
959
1101
  };
960
1102
  }
961
1103
  if (isObject(val)) {
962
- const obj = {};
1104
+ const obj2 = {};
963
1105
  for (const variant in val)
964
- obj[variant] = setGradient(val[variant], key, variant.slice(0, 1) === "@" ? variant.slice(1) : variant);
965
- return obj;
1106
+ obj2[variant] = setGradient(val[variant], key, variant.slice(0, 1) === "@" ? variant.slice(1) : variant);
1107
+ return obj2;
966
1108
  }
967
1109
  const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : "");
968
1110
  if (CONFIG2.useVariable) {
@@ -1141,21 +1283,21 @@ var setMediaTheme = (val, key, suffix, prefers) => {
1141
1283
  };
1142
1284
  var recursiveTheme = (val) => {
1143
1285
  const CONFIG2 = getActiveConfig();
1144
- const obj = {};
1286
+ const obj2 = {};
1145
1287
  for (const param in val) {
1146
1288
  const symb = param.slice(0, 1);
1147
1289
  if (isObjectLike(val[param])) {
1148
1290
  if (symb === "@") {
1149
1291
  const query = CONFIG2.MEDIA[param.slice(1)];
1150
1292
  const media = `@media screen and ${query}`;
1151
- obj[media] = recursiveTheme(val[param]);
1293
+ obj2[media] = recursiveTheme(val[param]);
1152
1294
  } else if (symb === ":") {
1153
- obj[`&${param}`] = recursiveTheme(val[param]);
1295
+ obj2[`&${param}`] = recursiveTheme(val[param]);
1154
1296
  }
1155
1297
  } else
1156
- obj[param] = val[param];
1298
+ obj2[param] = val[param];
1157
1299
  }
1158
- return obj;
1300
+ return obj2;
1159
1301
  };
1160
1302
  var findModifierFromArray = (val, modifierArray) => {
1161
1303
  const currentMod = modifierArray.shift();
@@ -1217,9 +1359,9 @@ var setFontFamily = (val, key) => {
1217
1359
  var runThroughMedia = (props) => {
1218
1360
  const CONFIG2 = getActiveConfig();
1219
1361
  const { TYPOGRAPHY: TYPOGRAPHY2, MEDIA: MEDIA2 } = CONFIG2;
1220
- for (const prop in props) {
1221
- const mediaProps = props[prop];
1222
- if (prop.slice(0, 1) === "@") {
1362
+ for (const prop2 in props) {
1363
+ const mediaProps = props[prop2];
1364
+ if (prop2.slice(0, 1) === "@") {
1223
1365
  const { type, base, ratio, range, subSequence, h1Matches, unit } = props;
1224
1366
  merge2(mediaProps, {
1225
1367
  type,
@@ -1235,7 +1377,7 @@ var runThroughMedia = (props) => {
1235
1377
  vars: {}
1236
1378
  });
1237
1379
  generateSequence(mediaProps);
1238
- const mediaName = prop.slice(1);
1380
+ const mediaName = prop2.slice(1);
1239
1381
  applySequenceVars(mediaProps, mediaName);
1240
1382
  const query = MEDIA2[mediaName];
1241
1383
  TYPOGRAPHY2.styles[`@media screen and ${query}`] = {
@@ -1283,9 +1425,9 @@ var getFontSizeByKey = (value) => {
1283
1425
 
1284
1426
  // src/system/spacing.js
1285
1427
  var runThroughMedia2 = (sequenceProps) => {
1286
- for (const prop in sequenceProps) {
1287
- const mediaProps = sequenceProps[prop];
1288
- if (prop.slice(0, 1) === "@") {
1428
+ for (const prop2 in sequenceProps) {
1429
+ const mediaProps = sequenceProps[prop2];
1430
+ if (prop2.slice(0, 1) === "@") {
1289
1431
  const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps;
1290
1432
  merge2(mediaProps, {
1291
1433
  type,
@@ -1301,7 +1443,7 @@ var runThroughMedia2 = (sequenceProps) => {
1301
1443
  vars: {}
1302
1444
  });
1303
1445
  generateSequence(mediaProps);
1304
- const mediaName = prop.slice(1);
1446
+ const mediaName = prop2.slice(1);
1305
1447
  applySequenceVars(mediaProps, mediaName);
1306
1448
  }
1307
1449
  }
@@ -1523,7 +1665,6 @@ var SET_OPTIONS = {};
1523
1665
  var set = (recivedConfig, options = SET_OPTIONS) => {
1524
1666
  let CONFIG2 = getActiveConfig();
1525
1667
  const { version, verbose, useVariable, useReset, globalTheme, ...config } = recivedConfig;
1526
- console.log(CONFIG2);
1527
1668
  if (options.newConfig) {
1528
1669
  FACTORY["active"] = options.newConfig;
1529
1670
  CONFIG2 = getActiveConfig(options.newConfig);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.js", "../../../node_modules/@domql/globals/index.js", "../../../node_modules/@domql/utils/types.js", "../../../node_modules/@domql/utils/object.js", "../../../node_modules/@domql/utils/node.js", "../src/defaultConfig/index.js", "../src/defaultConfig/sequence.js", "../src/defaultConfig/unit.js", "../src/defaultConfig/typography.js", "../src/defaultConfig/font.js", "../src/utils/object.js", "../src/utils/color.js", "../src/utils/font.js", "../../../node_modules/@symbo.ls/utils/src/index.js", "../src/utils/sequence.js", "../src/utils/var.js", "../src/defaultConfig/font-family.js", "../src/defaultConfig/media.js", "../src/defaultConfig/spacing.js", "../src/defaultConfig/color.js", "../src/defaultConfig/theme.js", "../src/defaultConfig/icons.js", "../src/defaultConfig/timing.js", "../src/defaultConfig/document.js", "../src/defaultConfig/responsive.js", "../src/defaultConfig/cases.js", "../src/defaultConfig/animation.js", "../src/factory.js", "../src/system/color.js", "../src/system/theme.js", "../src/system/font.js", "../src/system/typography.js", "../src/system/spacing.js", "../src/system/timing.js", "../src/system/document.js", "../src/system/reset.js", "../src/set.js"],
4
- "sourcesContent": ["'use strict'\n\nexport * from './factory'\nexport * from './utils'\nexport * from './set'\nexport * from './defaultConfig'\n", "'use strict'\n\nconst global = globalThis\nconst self = globalThis\nconst window = globalThis\nconst document = window.document // eslint-disable-line\n\nexport { global, self, window, document }\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport { HTML_TAGS } from '@domql/tags'\n\nexport const isValidHtmlTag = arg => HTML_TAGS.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isBoolean = arg => arg === true || arg === false\n\nexport const isNull = arg => arg === null\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg) ||\n isBoolean(arg) ||\n isNull(arg)\n}\n\nexport const isUndefined = arg => {\n return arg === undefined\n}\n\nexport const TYPES = {\n boolean: isBoolean,\n array: isArray,\n object: isObject,\n string: isString,\n number: isNumber,\n null: isNull,\n function: isFunction,\n objectLike: isObjectLike,\n node: isNode,\n htmlElement: isHtmlElement,\n defined: isDefined\n}\n\nexport const is = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length > 0\n }\n}\n\nexport const isNot = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length === 0\n }\n}\n", "'use strict'\n\nimport { isFunction, isObjectLike, isObject, isArray } from './types'\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n // console.groupCollapsed('deepMerge:')\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n // console.groupEnd('deepMerge:')\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj) => {\n if (isArray(obj)) {\n return obj.map(deepClone)\n }\n const o = {}\n for (const prop in obj) {\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isArray(objProp)) {\n o[prop] = objProp.map(deepClone)\n } else if (isObject(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const { ref } = element\n const changes = {}\n\n for (const e in params) {\n if (e === 'props') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp\n ref[e] = paramsProp\n }\n }\n\n return changes\n}\n\nexport const diff = (obj, original, cache) => {\n const changes = cache || {}\n for (const e in obj) {\n if (e === 'ref') continue\n const originalProp = original[e]\n const objProp = obj[e]\n if (isObjectLike(originalProp) && isObjectLike(objProp)) {\n changes[e] = {}\n diff(originalProp, objProp, changes[e])\n } else if (objProp !== undefined) {\n changes[e] = objProp\n }\n }\n return changes\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwriteObj = (params, obj) => {\n const changes = {}\n\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n obj[e] = changes[e] = objProp\n }\n }\n\n return changes\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (params, obj) => {\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n", "'use strict'\n\nexport const cleanWithNode = extend => delete extend.node && extend\n\nexport const createID = (function * () {\n let index = 1\n while (index < index + 1) {\n yield index++\n }\n}())\n", "'use strict'\n\nexport * from './sequence'\nexport * from './unit'\nexport * from './typography'\nexport * from './font'\nexport * from './font-family'\nexport * from './media'\nexport * from './spacing'\nexport * from './color'\nexport * from './theme'\nexport * from './icons'\nexport * from './timing'\nexport * from './document'\nexport * from './responsive'\nexport * from './cases'\nexport * from './animation'\n\nexport const RESET = {}\n", "'use strict'\n\nexport const SEQUENCE = {\n 'minor-second': 1.067,\n 'major-second': 1.125,\n 'minor-third': 1.2,\n 'major-third': 1.25,\n 'perfect-fourth': 1.333,\n 'augmented-fourth': 1.414,\n 'perfect-fifth': 1.5,\n 'minor-sixth': 1.6,\n phi: 1.618, // golden-ratio\n 'major-sixth': 1.667,\n 'square-root-3': 1.732, // theodorus\n 'minor-seventh': 1.778,\n 'major-seventh': 1.875,\n octave: 2,\n 'square-root-5': 2.23, // pythagoras\n 'major-tenth': 2.5,\n 'major-eleventh': 2.667,\n 'major-twelfth': 3,\n pi: 3.14, // archimedes\n 'double-octave': 4\n}\n", "'use strict'\n\nexport const UNIT = {\n default: 'em'\n}\n", "'use strict'\n\nimport { SEQUENCE } from './sequence'\n\nconst defaultProps = {\n browserDefault: 16,\n base: 16,\n type: 'font-size',\n ratio: SEQUENCE['minor-third'],\n range: [-3, +12],\n h1Matches: +6,\n lineHeight: 1.5,\n unit: 'em',\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const TYPOGRAPHY = defaultProps\n", "'use strict'\n\nvar defFont = { // eslint-disable-line\n name: '',\n url: '',\n fontStyle: '',\n fontWeight: 500,\n fontStretch: 'normal',\n fontOpticalSizing: 'auto'\n}\n\nexport const FONT = {}\n", "'use strict'\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n return (typeof arg === 'object')\n}\n\nexport const merge = (obj, original) => {\n for (const e in original) {\n const objProp = obj[e]\n const originalProp = original[e]\n if (objProp === undefined) {\n obj[e] = originalProp\n }\n }\n return obj\n}\n\nexport const deepMerge = (obj, obj2) => {\n for (const e in obj2) {\n const objProp = obj[e]\n const obj2Prop = obj2[e]\n if (objProp === undefined) {\n obj[e] = obj2Prop\n } else if (isObjectLike(objProp) && isObject(obj2Prop)) {\n deepMerge(objProp, obj2Prop)\n }\n }\n return obj\n}\n\nexport const arrayze = val => {\n if (isString(val)) return val.split(' ')\n if (isObject(val)) return Object.keys(val).map(v => val[v])\n if (isArray(val)) return val\n}\n\nexport const isFunction = arg => typeof arg === 'function'\n", "'use strict'\n\nconst ENV = process.env.NODE_ENV\n\nexport const colorStringToRgbaArray = color => {\n if (color === '') return\n if (color.toLowerCase() === 'transparent') return [0, 0, 0, 0]\n\n // convert #RGB and #RGBA to #RRGGBB and #RRGGBBAA\n if (color[0] === '#') {\n if (color.length < 7) {\n color = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : '')\n } return [parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1]\n }\n\n // convert named colors\n if (color.indexOf('rgb') === -1) {\n // intentionally use unknown tag to lower chances of css rule override with !important\n const elem = document.body.appendChild(document.createElement('fictum'))\n // this flag tested on chrome 59, ff 53, ie9, ie10, ie11, edge 14\n const flag = 'rgb(1, 2, 3)'\n elem.style.color = flag\n // color set failed - some monstrous css rule is probably taking over the color of our object\n if (elem.style.color !== flag) return\n elem.style.color = color\n if (elem.style.color === flag || elem.style.color === '') return // color parse failed\n color = window.getComputedStyle(elem).color\n document.body.removeChild(elem)\n }\n\n // convert 'rgb(R,G,B)' to 'rgb(R,G,B,A)' which looks awful but will pass the regxep below\n if (color.indexOf('rgb') === 0) {\n if (color.indexOf('rgba') === -1) color = `${color}, 1`\n return color.match(/[\\.\\d]+/g).map(a => +a) // eslint-disable-line\n }\n}\n\nexport const mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA)\n colorB = colorStringToRgbaArray(colorB)\n return mixTwoRgba(colorA, colorB, range)\n}\n\nexport const hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return `rgb(${r},${g},${b})`\n}\n\nexport const hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return [r, g, b]\n}\n\nexport const rgbToHex = (r, g, b) => {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport const rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport const hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return `rgba(${r},${g},${b},${alpha})`\n}\n\nexport const mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = []\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(\n colorA[i] + (\n (colorB[i] - colorA[i]) * range\n )\n )\n }\n return `rgb(${arr})`\n}\n\nexport const changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl\n\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n )\n\n return [hue, saturation, newLightness]\n}\n\nexport const rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b); const n = a - Math.min(r, g, b); const f = (1 - Math.abs(a + a - n - 1))\n const h = n && ((a == r) ? (g - b) / n : ((a == g) ? 2 + (b - r) / n : 4 + (r - g) / n)) //eslint-disable-line\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2]\n}\n\nexport const hslToRgb = (h, s, l,\n a = s * Math.min(l, 1 - l),\n f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1), -1\n )\n) => [f(0), f(8), f(4)]\n\nexport const getColorShade = (col, amt) => {\n const num = parseInt(col, 16)\n\n let r = (num >> 16) + amt\n\n if (r > 255) r = 255\n else if (r < 0) r = 0\n\n let b = ((num >> 8) & 0x00FF) + amt\n\n if (b > 255) b = 255\n else if (b < 0) b = 0\n\n let g = (num & 0x0000FF) + amt\n\n if (g > 255) g = 255\n else if (g < 0) g = 0\n\n return (g | (b << 8) | (r << 16)).toString(16)\n}\n\nexport const mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = []\n for (let i = 0; i < 4; i++) {\n const round = (i === 3) ? x => x : Math.round\n arr[i] = round(\n (colorA[i] + (\n (colorB[i] - colorA[i]) * range\n ))\n )\n }\n return `rgba(${arr})`\n}\n\nexport const opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color)\n if (!arr) {\n if (ENV === 'test' || ENV === 'development') console.warn(color + 'color is not rgba')\n return\n }\n arr[3] = opacity\n return `rgba(${arr})`\n}\n", "'use strict'\n\nexport const getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key]) return LIBRARY[key].value\n if (LIBRARY.default) return LIBRARY[LIBRARY.default].value\n const hasValue = Object.keys(LIBRARY)[0]\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value\n}\n\nexport const getFontFormat = url => url.split(/[#?]/)[0].split('.').pop().trim()\n\nexport const setInCustomFontMedia = str => `@font-face { ${str} }`\n\nexport const setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`\n\nexport const setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`\n// src: url('${url}') format('${getFontFormat(url)}');\n\nexport const getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights)\n return keys.map(key => {\n const { url, fontWeight } = weights[key]\n return setCustomFont(name, url, fontWeight)\n })\n}\n\nexport const getFontFace = LIBRARY => {\n const keys = Object.keys(LIBRARY)\n return keys.map(key => getFontFaceEach(key, LIBRARY[key].value))\n}\n\nexport const getFontFaceEachString = (name, weights) => {\n const isArr = weights[0]\n if (isArr) return getFontFaceEach(name, weights).map(setInCustomFontMedia)\n return setCustomFontMedia(name, weights.url)\n}\n\nexport const getFontFaceString = LIBRARY => {\n const keys = Object.keys(LIBRARY)\n return keys.map(key => getFontFaceEachString(key, LIBRARY[key].value))\n}\n", "'use strict'\n\nexport * from './navigation'\nexport * from './scaling'\nexport * from './codify'\n\nexport const copyStringToClipboard = str => {\n var el = document.createElement('textarea')\n el.value = str\n el.setAttribute('readonly', '')\n el.style = { position: 'absolute', left: '-9999px' }\n document.body.appendChild(el)\n el.select()\n document.execCommand('copy')\n document.body.removeChild(el)\n}\n\nexport const toCamelCase = str => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase()\n }).replace(/\\s+/g, '')\n}\n\nexport const toTitleCase = str => str.replace(\n /\\w\\S*/g, txt => {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n }\n)\n\nexport const toDashCase = val => val\n .replace(/[A-Z]/g, (match, offset) => (offset > 0 ? '-' : '') + match.toLowerCase())\n .replace('.', '-')\n\nexport const toDescriptionCase = str => {\n const result = str.replace(/([A-Z])/g, ' $1')\n return result.charAt(0).toUpperCase() + result.slice(1)\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isString } from '@domql/utils'\nimport { toDashCase } from '@symbo.ls/utils'\n\nexport const numToLetterMap = {\n '-6': 'U',\n '-5': 'V',\n '-4': 'W',\n '-3': 'X',\n '-2': 'Y',\n '-1': 'Z',\n 0: 'A',\n 1: 'B',\n 2: 'C',\n 3: 'D',\n 4: 'E',\n 5: 'F',\n 6: 'G',\n 7: 'H',\n 8: 'I',\n 9: 'J',\n 10: 'K',\n 11: 'L',\n 12: 'M',\n 13: 'N',\n 14: 'O',\n 15: 'P',\n 16: 'Q',\n 17: 'R',\n 18: 'S',\n 19: 'T'\n}\n\nconst setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~(value),\n scaling,\n index,\n variable\n }\n sequenceProps.scales[key] = scaling\n sequenceProps.vars[variable] = scaling + sequenceProps.unit\n}\n\nexport const generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props\n\n const next = value * ratio\n const diff = next - value\n const smallscale = diff / 1.618\n\n const valueRounded = ~~(value)\n const nextRounded = ~~(next)\n const diffRounded = nextRounded - valueRounded\n\n let arr = []\n const first = next - smallscale\n const second = value + smallscale\n const middle = (first + second) / 2\n if (diffRounded > 16) arr = [first, middle, second]\n else arr = [first, second]\n\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1000) / 1000\n const newVar = variable + (k + 1)\n\n const props = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n }\n\n return setSequenceValue(props, sequenceProps)\n })\n}\n\nconst switchSequenceOnNegative = (key, base, ratio) => {\n // const values = Object.values(SEQUENCE)\n // const index = values.indexOf(ratio)\n // const diffRatio = ratio / SPACING.ratio\n // const total = values[values.length - 1] - values[0]\n // const avg = total / 2\n // const diff = avg - ratio\n // const scale = total / ratio\n // const finalDiff = avg + avg / diffRatio\n\n // if (key < 0) return base * Math.pow(avg, key)\n return base * Math.pow(ratio, key)\n}\n\nexport const generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps\n const n = Math.abs(range[0]) + Math.abs(range[1])\n const prefix = '--' + (type && type.replace('.', '-')) + '-'\n\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i\n const letterKey = numToLetterMap[key]\n const value = switchSequenceOnNegative(key, base, ratio)\n const scaling = ~~(value / base * 100) / 100\n const variable = prefix + letterKey\n\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n }\n\n setSequenceValue(props, sequenceProps)\n\n if (subSequence) generateSubSequence(props, sequenceProps)\n }\n return sequenceProps\n}\n\nexport const getSequenceValue = (value = 'A', sequenceProps) => {\n const CONFIG = getActiveConfig()\n const { UNIT } = CONFIG\n\n const {\n sequence,\n unit = UNIT.default,\n useVariable\n } = sequenceProps\n\n if (isString(value) && value.slice(0, 2) === '--') return `var(${value})`\n\n const prefix = `--${toDashCase(sequenceProps.type.replace('.', '-'))}-`\n\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value)\n\n if (\n value === 'none' ||\n value === 'auto' ||\n value === 'unset' ||\n value === 'inherit' ||\n value === 'fit-content' ||\n value === 'min-content' ||\n value === 'max-content' ||\n value.includes('calc') ||\n !startsWithDashOrLetter\n ) return value\n\n const letterVal = value.toUpperCase()\n const isNegative = letterVal.slice(0, 1) === '-' ? '-' : ''\n let absValue = isNegative ? letterVal.slice(1) : letterVal\n\n let mediaName = ''\n if (absValue.includes('-')) {\n mediaName = '-' + absValue.split('-')[1].toLowerCase()\n absValue = absValue.split('-')[0]\n }\n\n const varValue = v => `var(${prefix}${v}${mediaName})`\n if (absValue.includes('+')) {\n const args = absValue.split('+')\n const [first, second] = args\n const joint = `${varValue(first)} + ${varValue(second)}`\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`\n } else if (absValue.includes('-')) {\n const args = absValue.split('-')\n const [first, second] = args\n const joint = `${varValue(first)} - ${varValue(second)}`\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`\n }\n\n // if subsequence is not set but value is applied\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG.verbose) console.warn(absValue, '- value is not found because `subSequence` is set to false')\n absValue = absValue.slice(0, 1)\n }\n\n if (useVariable || CONFIG.useVariable) {\n const varValue = `var(${prefix}${absValue}${mediaName})`\n return isNegative ? `calc(${varValue} * -1)` : varValue\n }\n\n const sequenceItem = sequence ? sequence[absValue] : null\n if (!sequenceItem) return console.warn('can\\'t find', sequence, absValue)\n\n if (unit === 'ms' || unit === 's') {\n return isNegative + sequenceItem.val + unit\n }\n\n return isNegative + sequenceItem.scaling + unit\n}\n\nexport const getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== 'string') {\n console.warn(propertyName, value, 'is not a string')\n return ({})\n }\n if (value === '-' || value === '') return ({})\n return { [propertyName]: getSequenceValue(value, sequenceProps) }\n}\n\nexport const findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index]\n\nexport const findHeadings = propertyNames => {\n const { h1Matches, sequence } = propertyNames\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i)\n return sequence[findLetter]\n })\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isObjectLike } from '@domql/utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line\n\nexport const setVariables = (result, key) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS } = CONFIG\n if (isObjectLike(result.value)) {\n // for (const key in result.value) {\n // }\n } else {\n CSS_VARS[result.var] = result.value\n }\n}\n\nexport const applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG = getActiveConfig()\n const { UNIT, MEDIA, TIMING, CSS_VARS } = CONFIG\n\n const unit = props.unit || UNIT.default\n const { sequence, scales } = props\n\n for (const key in sequence) {\n const item = sequence[key]\n const value = (props.type === TIMING.type ? sequence[key].val : scales[key]) + unit\n\n if (mediaName) {\n const query = MEDIA[mediaName]\n if (!query) {\n if (CONFIG.verbose) console.warn('Can\\'t find query ', query)\n }\n let underMediaQuery = CSS_VARS[`@media ${query}`]\n if (!underMediaQuery) underMediaQuery = CSS_VARS[`@media ${query}`] = {}\n underMediaQuery[item.variable] = `var(${item.variable + '-' + mediaName})`\n CSS_VARS[item.variable + '-' + mediaName] = value\n } else {\n if (options.useDefault === false) {\n CSS_VARS[item.variable] = value\n } else {\n CSS_VARS[item.variable + '-default'] = value\n CSS_VARS[item.variable] = `var(${item.variable + '-default'})`\n }\n }\n }\n}\n", "'use strict'\n\nimport { getFontFace } from '../utils'\n\nvar defaultFont = { // eslint-disable-line\n name: '',\n family: '',\n type: ''\n}\n\nexport const FONT_FAMILY = {}\nexport const FONT_FAMILY_TYPES = {\n serif: 'Helvetica, Arial, sans-serif, --system-default',\n 'sans-serif': 'Times New Roman, Georgia, serif, --system-default',\n monospace: 'Courier New, monospace, --system-default'\n}\nexport const FONT_FACE = getFontFace(FONT_FAMILY)\n", "'use strict'\n\nexport const MEDIA = {\n tv: '(min-width: 2780px)',\n\n screenL: '(max-width: 1920px)',\n screenM: '(max-width: 1680px)',\n screenS: '(max-width: 1440px)',\n tabletL: '(max-width: 1366px)',\n tabletM: '(max-width: 1280px)',\n tabletS: '(max-width: 1024px)',\n mobileL: '(max-width: 768px)',\n mobileM: '(max-width: 560px)',\n mobileS: '(max-width: 480px)',\n mobileXS: '(max-width: 375px)',\n\n light: '(prefers-color-scheme: light)',\n dark: '(prefers-color-scheme: dark)',\n\n print: 'print'\n}\n", "'use strict'\n\nimport { SEQUENCE, TYPOGRAPHY } from '.'\n\nconst defaultProps = {\n base: TYPOGRAPHY.base,\n type: 'spacing',\n ratio: SEQUENCE.phi,\n range: [-5, +15],\n subSequence: true,\n unit: 'em',\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const SPACING = defaultProps\n", "'use strict'\n\nvar proto = { // eslint-disable-line\n name: '',\n value: '',\n themes: {}\n}\n\nexport const COLOR = {}\nexport const GRADIENT = {}\n", "'use strict'\n\nconst themeA = { // eslint-disable-line no-unused-vars\n text: 'blue',\n background: 'white',\n border: 'black', // .opacity(0.2),\n active: {},\n helpers: [],\n themes: {},\n inverse: {} // schemeAInverse\n}\n\nexport const THEME = {}\n", "'use strict'\n\nexport const ICONS = {}\n", "'use strict'\n\nimport { SEQUENCE } from '.'\n\nconst defaultProps = {\n default: 150,\n base: 150,\n type: 'timing',\n ratio: SEQUENCE['perfect-fourth'],\n range: [-3, +12],\n unit: 'ms',\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const TIMING = defaultProps\n", "'use strict'\n\nexport const DOCUMENT = {}\n", "'use strict'\n\nexport const BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n}\n\nexport const DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n}\n", "'use strict'\n\nexport const CASES = {}\n", "'use strict'\n\nexport const ANIMATION = {}\n", "'use strict'\n\nimport { deepClone, isDefined } from '@domql/utils'\nimport * as CONF from './defaultConfig'\n\nexport const CSS_VARS = {}\nexport const CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...CONF\n}\n\nconst cachedConfig = deepClone(CONFIG)\n\nexport const FACTORY = {\n active: '0',\n 0: CONFIG\n}\n\nexport const activateConfig = (def) => {\n if (isDefined(def)) { FACTORY.active = def }\n return FACTORY[def || FACTORY.active]\n}\n\nexport const getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig)\n return FACTORY[def]\n }\n return FACTORY[def || FACTORY.active]\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isObject, isArray, isString } from '@domql/utils'\n\nimport {\n colorStringToRgbaArray,\n rgbToHSL,\n hexToRgbArray,\n rgbArrayToHex,\n hslToRgb,\n getColorShade\n} from '../utils'\n\nexport const getColor = (value, key) => {\n const CONFIG = getActiveConfig()\n if (!isString(value)) {\n if (CONFIG.verbose) console.warn(value, '- type for color is not valid')\n return\n }\n\n if (value.slice(0, 2) === '--') return `var(${value})`\n\n if (key && value[key]) value = value[key]\n const [name, alpha, tone] = isArray(value) ? value : value.split(' ')\n const { COLOR, GRADIENT } = CONFIG\n\n let val = (COLOR[name] || GRADIENT[name])\n\n if (!val) {\n if (CONFIG.verbose) console.warn('Can\\'t find color ', name)\n return value\n }\n\n if (key) {\n if (val[key]) val = val[key]\n else if (CONFIG.verbose) console.warn(value, ' - does not have ', key)\n }\n\n // TODO: support variables\n // if (alpha) return `rgba(var(${val[shade || ''].var}), ${modifier})`\n\n let rgb = val.rgb\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(', ').map(v => parseFloat(v)))\n if (tone.slice(0, 1) === '-' || tone.slice(0, 1) === '+') {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(', ')\n } else {\n const [r, g, b] = [...rgb.split(', ').map(v => parseInt(v))]\n const hsl = rgbToHSL(r, g, b)\n const [h, s, l] = hsl // eslint-disable-line\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255)\n rgb = newRgb\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` }\n } else rgb = val[tone].rgb\n }\n if (alpha) return `rgba(${rgb}, ${alpha})`\n return CONFIG.useVariable ? `var(${val.var})` : `rgb(${rgb})`\n } else return CONFIG.useVariable ? `var(${val.var})` : val.value\n}\n\nexport const getMediaColor = (value, property, globalTheme) => {\n const CONFIG = getActiveConfig()\n if (!globalTheme) globalTheme = CONFIG.globalTheme\n if (!isString(value)) {\n if (CONFIG.verbose) console.warn(value, '- type for color is not valid')\n return\n }\n\n if (value.slice(0, 2) === '--') return { [property]: `var(${value})` }\n\n const [name] = isArray(value) ? value : value.split(' ')\n\n const { COLOR, GRADIENT } = CONFIG\n const val = COLOR[name] || GRADIENT[name]\n const isObj = isObject(val)\n\n if (isObj && val.value) return { [property]: getColor(value, globalTheme) }\n else if (isObj) {\n if (globalTheme) return { [property]: getColor(value, `@${globalTheme}`) }\n else {\n const obj = {}\n for (const mediaName in val) {\n const query = CONFIG.MEDIA[mediaName.slice(1)]\n const media = `@media screen and ${query}`\n obj[media] = { [property]: getColor(value, mediaName) }\n }\n return obj\n }\n } else {\n if (CONFIG.verbose) console.warn('Can\\'t find color', value)\n return { [property]: value }\n }\n}\n\nexport const setColor = (val, key, suffix) => {\n const CONFIG = getActiveConfig()\n\n if (isString(val) && val.slice(0, 2) === '--') val = getColor(val.slice(2))\n\n if (isArray(val)) {\n return {\n '@light': setColor(val[0], key, 'light'),\n '@dark': setColor(val[1], key, 'dark')\n }\n }\n\n if (isObject(val)) {\n const obj = {}\n for (const variant in val) obj[variant] = setColor(val[variant], key, variant.slice(0, 1) === '@' ? variant.slice(1) : variant)\n return obj\n }\n\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : '')\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val)\n const alpha = parseFloat(a.toFixed(2))\n const rgb = `${r}, ${g}, ${b}`\n const value = `rgba(${rgb}, ${alpha})`\n\n if (CONFIG.useVariable) { CONFIG.CSS_VARS[CSSVar] = value }\n\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n }\n}\n\nexport const setGradient = (val, key, suffix) => {\n const CONFIG = getActiveConfig()\n if (isString(val) && val.slice(0, 2) === '--') val = getColor(val.slice(2))\n\n if (isArray(val)) {\n return {\n '@light': setGradient(val[0], key, 'light'),\n '@dark': setGradient(val[0], key, 'dark')\n }\n }\n\n if (isObject(val)) {\n const obj = {}\n for (const variant in val) obj[variant] = setGradient(val[variant], key, variant.slice(0, 1) === '@' ? variant.slice(1) : variant)\n return obj\n }\n\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : '')\n\n if (CONFIG.useVariable) {\n CONFIG.CSS_VARS[CSSVar] = val.value || val\n }\n\n return {\n var: CSSVar,\n value: val.value || val\n }\n}\n", "'use strict'\n\nimport { getColor } from './color'\nimport { getActiveConfig } from '../factory'\n\nimport {\n isObject,\n isString,\n isObjectLike,\n isArray\n} from '@domql/utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line\n\nconst setThemeValue = theme => {\n const value = {}\n const { state, media, helpers, ...rest } = theme\n const keys = Object.keys(rest)\n keys.map(key => {\n const conditions = ['color', 'Color', 'background', 'border']\n const isColor = conditions.some(k => key.includes(k))\n return (value[key] = isColor ? getColor(theme[key]) : theme[key])\n })\n return value\n}\n\nconst getThemeValue = theme => {\n if (theme.value) return theme.value\n theme.value = setThemeValue(theme)\n return theme.value\n}\n\nexport const getTheme = (value, modifier) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useVariable) return getMediaTheme(value, modifier)\n const { THEME } = CONFIG\n\n if (isString(value)) {\n const [theme, subtheme] = value.split(' ')\n const isOurTheme = THEME[theme]\n if (isOurTheme) {\n if (!subtheme && !modifier) return getThemeValue(isOurTheme)\n value = [theme, subtheme || modifier]\n }\n }\n\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0]\n const subThemeName = value[1]\n const { helpers, media, state } = THEME[themeName]\n\n if (media && media[subThemeName]) return getThemeValue(media[subThemeName])\n if (helpers && helpers[subThemeName]) return getThemeValue(helpers[subThemeName])\n if (state && state[subThemeName]) return getThemeValue(state[subThemeName])\n } else if (isObject(value)) return setThemeValue(value)\n}\n\nconst setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant)\n } else if (variant === true) {\n const { color, background } = value\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n }\n }\n}\n\nconst setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant)\n themeValue[`&:${key}`] = result\n if (isObject(variant) && !variant.value) variant.value = result\n}\n\nconst setSelectors = (theme, value) => {\n const { state } = theme\n if (!state) return\n const keys = Object.keys(state)\n keys.map(key => {\n const variant = state[key]\n setPseudo(theme, key, variant, value)\n return theme\n })\n return theme\n}\n\nconst setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant)\n themeValue[`@media (prefers-color-scheme: ${key})`] = result\n if (isObject(variant) && !variant.value) variant.value = result\n}\n\nconst setMedia = (theme, value) => {\n const { media } = theme\n if (!media) return\n const keys = Object.keys(media)\n keys.map(key => {\n const variant = media[key]\n if (key === 'dark' || key === 'light') setPrefersScheme(theme, key, variant, value)\n if (key === 'inverse') setInverseTheme(theme, variant, value)\n return theme\n })\n return theme\n}\n\nconst setHelpers = (theme, value) => {\n const CONFIG = getActiveConfig()\n const { helpers } = theme\n if (!helpers) return\n const keys = Object.keys(helpers)\n keys.map(key => {\n const helper = helpers[key]\n if (isString(helper)) helpers[key] = CONFIG.THEME[helper]\n else getThemeValue(helpers[key])\n return theme\n })\n return theme\n}\n\nexport const setTheme = (val, key) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useVariable) return setMediaTheme(val, key)\n\n const { state, media, helpers } = val\n const value = setThemeValue(val, key)\n const CSSvar = `--theme-${key}`\n\n setSelectors(val, value)\n setMedia(val, value)\n setHelpers(val, value)\n\n return { var: CSSvar, value, state, media, helpers }\n}\n\nconst keySetters = { // eslint-disable-line\n '@': (theme, value) => setMedia(theme, value),\n ':': (theme, value) => setSelectors(theme, value),\n '.': (theme, value) => setHelpers(theme, value)\n}\n\nexport const setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS } = CONFIG\n const theme = { value: val }\n\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1)\n const value = val[param]\n if (symb === '@' || symb === ':' || symb === '.') {\n const hasPrefers = symb === '@' && param\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers)\n } else {\n const color = getColor(value, prefers)\n const metaSuffixes = [...new Set([prefers, suffix].filter(v => v).map(v => v.slice(1)))]\n const varmetaSuffixName = metaSuffixes.length ? '-' + metaSuffixes.join('-') : ''\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`\n if (CONFIG.useVariable) {\n CSS_VARS[CSSVar] = color\n theme[param] = `var(${CSSVar})`\n } else {\n theme[param] = color\n }\n theme[`.${param}`] = { [param]: theme[param] }\n }\n }\n\n if (theme['background'] || theme['color'] || theme['backgroundColor']) {\n theme['.inversed'] = {\n color: theme['background'] || theme['backgroundColor'],\n background: theme['color']\n }\n }\n }\n\n if (isString(val) && val.slice(0, 2) === '--') {\n const { THEME } = CONFIG\n const value = THEME[val.slice(2)]\n const getReferenced = getMediaTheme(value)\n return getReferenced\n }\n\n return theme\n}\n\nconst recursiveTheme = val => {\n const CONFIG = getActiveConfig()\n const obj = {}\n for (const param in val) {\n const symb = param.slice(0, 1)\n if (isObjectLike(val[param])) {\n if (symb === '@') {\n const query = CONFIG.MEDIA[param.slice(1)]\n const media = `@media screen and ${query}`\n obj[media] = recursiveTheme(val[param])\n } else if (symb === ':') {\n obj[`&${param}`] = recursiveTheme(val[param])\n }\n } else obj[param] = val[param]\n }\n return obj\n}\n\nconst findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift()\n if (val[currentMod]) return findModifierFromArray(val[currentMod], modifierArray)\n return val\n}\n\nconst findModifier = (val, modifier) => {\n if (isArray(modifier)) return findModifierFromArray(val, modifier)\n else if (isString(modifier) && val[modifier]) return val[modifier]\n else return val\n}\n\nconst checkForReference = (val, callback) => {\n if (isString(val) && val.slice(0, 2) === '--') return getMediaTheme(val.slice(2))\n return val\n}\n\nconst checkThemeReference = (val) => checkForReference(val, checkThemeReference) // eslint-disable-line\n\nexport const getMediaTheme = (val, mod) => {\n const CONFIG = getActiveConfig()\n if (isString(val) && val.slice(0, 2) === '--') val = getMediaTheme(val.slice(2))\n\n if (!val || !isString(val)) {\n if (CONFIG.verbose) console.warn(val, '- theme is not string')\n return\n }\n\n const [name, ...modifier] = isArray(val) ? val : val.split(' ')\n let value = CONFIG.THEME[name]\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod)\n }\n\n const r = recursiveTheme(value)\n return r\n}\n", "'use strict'\n\nimport { isObject } from '@domql/utils'\nimport { getActiveConfig } from '../factory'\n\nimport {\n arrayze,\n getDefaultOrFirstKey,\n getFontFaceEach,\n setCustomFontMedia\n} from '../utils'\n\n// const ENV = process.env.NODE_ENV\n\nexport const setFont = (val, key) => {\n const CSSvar = `--font-${key}`\n const fontFace = val[0]\n ? getFontFaceEach(key, val)\n : setCustomFontMedia(key, val.url)\n return { var: CSSvar, value: val, fontFace }\n}\n\nexport const getFontFamily = (key, factory) => {\n const CONFIG = getActiveConfig()\n const { FONT_FAMILY } = CONFIG\n return getDefaultOrFirstKey(factory || FONT_FAMILY, key)\n}\n\nexport const setFontFamily = (val, key) => {\n const CONFIG = getActiveConfig()\n const { FONT_FAMILY, FONT_FAMILY_TYPES } = CONFIG\n let { value, type } = val\n if (val.isDefault) FONT_FAMILY.default = key\n\n if (isObject(value)) value = arrayze(value)\n\n const CSSvar = `--font-family-${key}`\n const str = `${value.join(', ')}, ${FONT_FAMILY_TYPES[type]}`\n return { var: CSSvar, value: str, arr: value, type }\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\n\nimport {\n applySequenceVars,\n findHeadings,\n generateSequence,\n getSequenceValuePropertyPair,\n merge\n} from '../utils'\n\nexport const runThroughMedia = props => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY, MEDIA } = CONFIG\n\n for (const prop in props) {\n const mediaProps = props[prop]\n if (prop.slice(0, 1) === '@') {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props\n\n merge(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n })\n\n generateSequence(mediaProps)\n\n const mediaName = prop.slice(1)\n applySequenceVars(mediaProps, mediaName)\n\n const query = MEDIA[mediaName]\n TYPOGRAPHY.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY.browserDefault + unit\n }\n }\n }\n}\n\nexport const applyHeadings = (props) => {\n const CONFIG = getActiveConfig()\n if (props.h1Matches) {\n const unit = props.unit\n const HEADINGS = findHeadings(props)\n const { styles } = props\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`\n const headerStyle = styles[headerName]\n styles[headerName] = {\n fontSize: CONFIG.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - (k * 100)\n }\n }\n }\n}\n\nexport const applyTypographySequence = () => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY } = CONFIG\n\n generateSequence(TYPOGRAPHY)\n applyHeadings(TYPOGRAPHY)\n applySequenceVars(TYPOGRAPHY)\n runThroughMedia(TYPOGRAPHY)\n}\n\nexport const getFontSizeByKey = value => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY } = CONFIG\n return getSequenceValuePropertyPair(\n value,\n 'fontSize',\n TYPOGRAPHY\n )\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\n\nimport { isString } from '@domql/utils'\nimport {\n applySequenceVars,\n arrayze,\n generateSequence,\n getSequenceValuePropertyPair,\n merge\n} from '../utils'\n\nconst runThroughMedia = sequenceProps => {\n for (const prop in sequenceProps) {\n const mediaProps = sequenceProps[prop]\n if (prop.slice(0, 1) === '@') {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps\n\n merge(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n })\n\n generateSequence(mediaProps)\n\n const mediaName = prop.slice(1)\n applySequenceVars(mediaProps, mediaName)\n }\n }\n}\n\nexport const applySpacingSequence = () => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n generateSequence(SPACING)\n applySequenceVars(SPACING)\n runThroughMedia(SPACING)\n}\n\nconst getSequence = (sequenceProps) => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n if (!sequenceProps) return SPACING\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps)\n}\n\nexport const getSpacingByKey = (\n value,\n propertyName = 'padding',\n sequenceProps\n) => {\n const sequence = getSequence(sequenceProps)\n\n const stack = arrayze(value)\n if (!stack) return\n\n if (isString(value) && value.includes('calc')) {\n return { [propertyName]: value }\n }\n\n if (stack.length > 1) {\n let suffix = ''\n if (propertyName === 'borderWidth') {\n propertyName = 'border'\n suffix = 'Width'\n }\n\n const directions = {\n 2: ['Block', 'Inline'],\n 3: ['BlockStart', 'Inline', 'BlockEnd'],\n 4: ['BlockStart', 'InlineEnd', 'BlockEnd', 'InlineStart']\n }\n\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n )\n\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key))\n }\n\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n )\n}\n\nexport const getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n\n const { spacingRatio, unit } = props\n const value = val || props[propertyName]\n\n if (spacingRatio) {\n let sequenceProps = SPACING[spacingRatio]\n\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING\n\n sequenceProps = SPACING[spacingRatio] = merge({\n ratio: spacingRatio,\n type: type + '-' + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING.ratio,\n unit: SPACING.unit\n })\n }\n\n applySequenceVars(sequenceProps, null, { useDefault: false })\n\n return getSpacingByKey(value, propertyName, sequenceProps)\n }\n return getSpacingByKey(value, propertyName)\n}\n", "'use strict'\n\nimport { toCamelCase } from '@symbo.ls/utils'\nimport { getActiveConfig } from '../factory'\nimport {\n applySequenceVars,\n generateSequence,\n getSequenceValuePropertyPair\n} from '../utils'\n\nexport const applyTimingSequence = () => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n generateSequence(TIMING)\n applySequenceVars(TIMING)\n}\n\nexport const getTimingFunction = value => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n return TIMING[value] || TIMING[toCamelCase(value)] || value\n}\n\nexport const getTimingByKey = (value, property = 'timing') => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING\n )\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { getDefaultOrFirstKey, merge } from '../utils'\n\nexport const applyDocument = () => {\n const CONFIG = getActiveConfig()\n const { DOCUMENT, FONT_FAMILY, THEME, TYPOGRAPHY } = CONFIG\n return merge(DOCUMENT, {\n theme: THEME.document,\n fontFamily: getDefaultOrFirstKey(FONT_FAMILY),\n fontSize: TYPOGRAPHY.base,\n lineHeight: TYPOGRAPHY.lineHeight\n })\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { getMediaTheme } from '.'\nimport { deepMerge, merge } from '@domql/utils' // eslint-disable-line no-unused-vars\n\nexport const applyReset = (reset = {}) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS, RESET, TYPOGRAPHY, DOCUMENT } = CONFIG\n if (RESET) {\n if (RESET[':root']) {\n const configReset = RESET\n const configStyles = TYPOGRAPHY.styles\n\n configReset.body = {\n ...getMediaTheme('document', `@${CONFIG.globalTheme}`),\n ...configStyles.body\n }\n configReset.h1 = configStyles.h1\n configReset.h2 = configStyles.h2\n configReset.h3 = configStyles.h3\n configReset.h4 = configStyles.h4\n configReset.h5 = configStyles.h5\n configReset.h6 = configStyles.h6\n }\n\n const { body, ...styles } = TYPOGRAPHY.styles\n\n return deepMerge(merge(RESET, reset), {\n html: {\n position: 'absolute',\n overflow: 'hidden',\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n margin: '0',\n WebkitFontSmoothing: 'antialiased',\n transform: 'translate3d(0, 0, 1px)',\n scrollBehavior: 'smooth',\n\n fontSize: TYPOGRAPHY.browserDefault + 'px',\n\n fontFamily: DOCUMENT.fontFamily,\n lineHeight: DOCUMENT.lineHeight\n },\n\n body: {\n boxSizing: 'border-box',\n height: '100%',\n margin: 0,\n fontFamily: DOCUMENT.fontFamily,\n\n fontSize: TYPOGRAPHY.base / TYPOGRAPHY.browserDefault + CONFIG.UNIT.default,\n\n ...getMediaTheme('document', `@${CONFIG.globalTheme}`),\n\n ...styles,\n ...body\n },\n\n // form elements\n fieldset: {\n border: 0,\n padding: 0,\n margin: 0\n },\n\n 'select, input': {\n fontFamily: DOCUMENT.fontFamily\n }\n })\n }\n}\n", "'use strict'\n\nimport { FACTORY, getActiveConfig } from './factory' // eslint-disable-line no-unused-vars\nimport {\n setColor,\n setGradient,\n setFont,\n setFontFamily,\n setTheme,\n applyTypographySequence,\n applySpacingSequence,\n applyReset,\n applyTimingSequence,\n applyDocument\n} from './system'\n\nimport { isFunction } from './utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line no-unused-vars\n\nconst setCases = (val, key) => {\n if (isFunction(val)) return val()\n return val\n}\n\nconst setSameValue = (val, key) => val\n\nexport const SETTERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: setSameValue,\n icons: setSameValue,\n reset: setSameValue,\n unit: setSameValue,\n animation: setSameValue\n}\n\n/**\n *\n * @param {Object} FACTORY_NAME Defines which factory it goes to\n * @param {*} value Value of the property\n * @param {String} key Key, or the name of the property\n * @returns {Object} Factory\n */\nexport const setValue = (FACTORY_NAME, value, key) => {\n const CONFIG = getActiveConfig()\n const factoryName = FACTORY_NAME.toLowerCase()\n const FACTORY = CONFIG[FACTORY_NAME]\n\n if (SETTERS[factoryName]) {\n const result = SETTERS[factoryName](value, key)\n FACTORY[key] = result\n return FACTORY\n }\n if (CONFIG.verbose) console.warn('Can not find', factoryName, 'method in scratch')\n}\n\nexport const setEach = (factoryName, props) => {\n const CONFIG = getActiveConfig()\n const FACTORY_NAME = factoryName.toUpperCase()\n const keys = Object.keys(props)\n keys.map(key => setValue(FACTORY_NAME, props[key], key))\n\n return CONFIG[FACTORY_NAME]\n}\n\nconst SET_OPTIONS = {}\n\nexport const set = (recivedConfig, options = SET_OPTIONS) => {\n let CONFIG = getActiveConfig()\n const { version, verbose, useVariable, useReset, globalTheme, ...config } = recivedConfig\n \n console.log(CONFIG)\n if (options.newConfig) {\n FACTORY['active'] = options.newConfig\n CONFIG = getActiveConfig(options.newConfig)\n }\n\n if (verbose !== undefined) CONFIG.verbose = verbose\n if (useVariable !== undefined) CONFIG.useVariable = useVariable\n if (useReset !== undefined) CONFIG.useReset = useReset\n if (globalTheme !== undefined) CONFIG.globalTheme = globalTheme\n if (CONFIG.verbose) console.log(CONFIG)\n\n const keys = Object.keys(config)\n keys.map(key => setEach(key, config[key]))\n\n // apply generic configs\n applyTypographySequence()\n applySpacingSequence()\n applyTimingSequence()\n applyDocument()\n applyReset()\n\n return CONFIG\n}\n\nexport * from './system'\n"],
5
- "mappings": "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",
6
- "names": ["deepMerge", "isArray", "isFunction", "isObject", "isObjectLike", "isString", "merge", "window", "document", "isString", "isArray", "isObject", "isObjectLike", "merge", "deepMerge", "isFunction", "props", "CONFIG", "UNIT", "varValue", "CONFIG", "CSS_VARS", "UNIT", "MEDIA", "TIMING", "defaultProps", "defaultProps", "CONFIG", "COLOR", "GRADIENT", "CONFIG", "THEME", "CONFIG", "CSS_VARS", "THEME", "CONFIG", "CONFIG", "FONT_FAMILY", "FONT_FAMILY_TYPES", "CONFIG", "TYPOGRAPHY", "MEDIA", "merge", "runThroughMedia", "merge", "CONFIG", "SPACING", "CONFIG", "TIMING", "CONFIG", "DOCUMENT", "FONT_FAMILY", "THEME", "TYPOGRAPHY", "merge", "CONFIG", "CSS_VARS", "RESET", "TYPOGRAPHY", "DOCUMENT", "isFunction", "CONFIG", "FACTORY"]
4
+ "sourcesContent": ["'use strict'\n\nexport * from './factory'\nexport * from './utils'\nexport * from './set'\nexport * from './defaultConfig'\n", "'use strict'\n\nconst global = globalThis\nconst self = globalThis\nconst window = globalThis\nconst document = window.document // eslint-disable-line\n\nexport { global, self, window, document }\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport { HTML_TAGS } from '@domql/tags'\n\nexport const isValidHtmlTag = arg => HTML_TAGS.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isBoolean = arg => arg === true || arg === false\n\nexport const isNull = arg => arg === null\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg) ||\n isBoolean(arg) ||\n isNull(arg)\n}\n\nexport const isUndefined = arg => {\n return arg === undefined\n}\n\nexport const TYPES = {\n boolean: isBoolean,\n array: isArray,\n object: isObject,\n string: isString,\n number: isNumber,\n null: isNull,\n function: isFunction,\n objectLike: isObjectLike,\n node: isNode,\n htmlElement: isHtmlElement,\n defined: isDefined\n}\n\nexport const is = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length > 0\n }\n}\n\nexport const isNot = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length === 0\n }\n}\n", "'use strict'\n\nimport { isFunction, isObjectLike, isObject, isArray, isString } from './types'\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n // console.groupCollapsed('deepMerge:')\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n // console.groupEnd('deepMerge:')\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj) => {\n if (isArray(obj)) {\n return obj.map(deepClone)\n }\n const o = {}\n for (const prop in obj) {\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isArray(objProp)) {\n o[prop] = objProp.map(v => isObject(v) ? deepClone(v) : v)\n } else if (isObject(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Stringify object\n */\nexport const deepStringify = (obj, stringified = {}) => {\n console.log(obj)\n for (const prop in obj) {\n const objProp = obj[prop]\n if (isFunction(objProp)) {\n stringified[prop] = objProp.toString()\n } else stringified[prop] = objProp\n if (isObject(objProp)) deepStringify(stringified[prop], stringified[prop])\n }\n return stringified\n}\n\n/**\n * Detringify object\n */\nexport const deepDestringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop]\n if (isString(objProp)) {\n if (objProp.slice(0, 1) === '(') {\n try {\n stringified[prop] = eval(objProp) // eslint-disable-line\n } catch (e) { if (e) stringified[prop] = objProp }\n }\n } else stringified[prop] = objProp\n if (isObject(objProp)) deepDestringify(stringified[prop], stringified[prop])\n }\n return stringified\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const { ref } = element\n const changes = {}\n\n for (const e in params) {\n if (e === 'props') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp\n ref[e] = paramsProp\n }\n }\n\n return changes\n}\n\nexport const diff = (obj, original, cache) => {\n const changes = cache || {}\n for (const e in obj) {\n if (e === 'ref') continue\n const originalProp = original[e]\n const objProp = obj[e]\n if (isObjectLike(originalProp) && isObjectLike(objProp)) {\n changes[e] = {}\n diff(originalProp, objProp, changes[e])\n } else if (objProp !== undefined) {\n changes[e] = objProp\n }\n }\n return changes\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwriteObj = (params, obj) => {\n const changes = {}\n\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n obj[e] = changes[e] = objProp\n }\n }\n\n return changes\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (params, obj) => {\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n", "'use strict'\n\nexport const cleanWithNode = extend => delete extend.node && extend\n\nexport const createID = (function * () {\n let index = 1\n while (index < index + 1) {\n yield index++\n }\n}())\n", "'use strict'\n\nexport * from './sequence'\nexport * from './unit'\nexport * from './typography'\nexport * from './font'\nexport * from './font-family'\nexport * from './media'\nexport * from './spacing'\nexport * from './color'\nexport * from './theme'\nexport * from './icons'\nexport * from './timing'\nexport * from './document'\nexport * from './responsive'\nexport * from './cases'\nexport * from './animation'\n\nexport const RESET = {}\n", "'use strict'\n\nexport const SEQUENCE = {\n 'minor-second': 1.067,\n 'major-second': 1.125,\n 'minor-third': 1.2,\n 'major-third': 1.25,\n 'perfect-fourth': 1.333,\n 'augmented-fourth': 1.414,\n 'perfect-fifth': 1.5,\n 'minor-sixth': 1.6,\n phi: 1.618, // golden-ratio\n 'major-sixth': 1.667,\n 'square-root-3': 1.732, // theodorus\n 'minor-seventh': 1.778,\n 'major-seventh': 1.875,\n octave: 2,\n 'square-root-5': 2.23, // pythagoras\n 'major-tenth': 2.5,\n 'major-eleventh': 2.667,\n 'major-twelfth': 3,\n pi: 3.14, // archimedes\n 'double-octave': 4\n}\n", "'use strict'\n\nexport const UNIT = {\n default: 'em'\n}\n", "'use strict'\n\nimport { SEQUENCE } from './sequence'\n\nconst defaultProps = {\n browserDefault: 16,\n base: 16,\n type: 'font-size',\n ratio: SEQUENCE['minor-third'],\n range: [-3, +12],\n h1Matches: +6,\n lineHeight: 1.5,\n unit: 'em',\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const TYPOGRAPHY = defaultProps\n", "'use strict'\n\nvar defFont = { // eslint-disable-line\n name: '',\n url: '',\n fontStyle: '',\n fontWeight: 500,\n fontStretch: 'normal',\n fontOpticalSizing: 'auto'\n}\n\nexport const FONT = {}\n", "'use strict'\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n return (typeof arg === 'object')\n}\n\nexport const merge = (obj, original) => {\n for (const e in original) {\n const objProp = obj[e]\n const originalProp = original[e]\n if (objProp === undefined) {\n obj[e] = originalProp\n }\n }\n return obj\n}\n\nexport const deepMerge = (obj, obj2) => {\n for (const e in obj2) {\n const objProp = obj[e]\n const obj2Prop = obj2[e]\n if (objProp === undefined) {\n obj[e] = obj2Prop\n } else if (isObjectLike(objProp) && isObject(obj2Prop)) {\n deepMerge(objProp, obj2Prop)\n }\n }\n return obj\n}\n\nexport const arrayze = val => {\n if (isString(val)) return val.split(' ')\n if (isObject(val)) return Object.keys(val).map(v => val[v])\n if (isArray(val)) return val\n}\n\nexport const isFunction = arg => typeof arg === 'function'\n", "'use strict'\n\nconst ENV = process.env.NODE_ENV\n\nexport const colorStringToRgbaArray = color => {\n if (color === '') return\n if (color.toLowerCase() === 'transparent') return [0, 0, 0, 0]\n\n // convert #RGB and #RGBA to #RRGGBB and #RRGGBBAA\n if (color[0] === '#') {\n if (color.length < 7) {\n color = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : '')\n } return [parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1]\n }\n\n // convert named colors\n if (color.indexOf('rgb') === -1) {\n // intentionally use unknown tag to lower chances of css rule override with !important\n const elem = document.body.appendChild(document.createElement('fictum'))\n // this flag tested on chrome 59, ff 53, ie9, ie10, ie11, edge 14\n const flag = 'rgb(1, 2, 3)'\n elem.style.color = flag\n // color set failed - some monstrous css rule is probably taking over the color of our object\n if (elem.style.color !== flag) return\n elem.style.color = color\n if (elem.style.color === flag || elem.style.color === '') return // color parse failed\n color = window.getComputedStyle(elem).color\n document.body.removeChild(elem)\n }\n\n // convert 'rgb(R,G,B)' to 'rgb(R,G,B,A)' which looks awful but will pass the regxep below\n if (color.indexOf('rgb') === 0) {\n if (color.indexOf('rgba') === -1) color = `${color}, 1`\n return color.match(/[\\.\\d]+/g).map(a => +a) // eslint-disable-line\n }\n}\n\nexport const mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA)\n colorB = colorStringToRgbaArray(colorB)\n return mixTwoRgba(colorA, colorB, range)\n}\n\nexport const hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return `rgb(${r},${g},${b})`\n}\n\nexport const hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return [r, g, b]\n}\n\nexport const rgbToHex = (r, g, b) => {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport const rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport const hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return `rgba(${r},${g},${b},${alpha})`\n}\n\nexport const mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = []\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(\n colorA[i] + (\n (colorB[i] - colorA[i]) * range\n )\n )\n }\n return `rgb(${arr})`\n}\n\nexport const changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl\n\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n )\n\n return [hue, saturation, newLightness]\n}\n\nexport const rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b); const n = a - Math.min(r, g, b); const f = (1 - Math.abs(a + a - n - 1))\n const h = n && ((a == r) ? (g - b) / n : ((a == g) ? 2 + (b - r) / n : 4 + (r - g) / n)) //eslint-disable-line\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2]\n}\n\nexport const hslToRgb = (h, s, l,\n a = s * Math.min(l, 1 - l),\n f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1), -1\n )\n) => [f(0), f(8), f(4)]\n\nexport const getColorShade = (col, amt) => {\n const num = parseInt(col, 16)\n\n let r = (num >> 16) + amt\n\n if (r > 255) r = 255\n else if (r < 0) r = 0\n\n let b = ((num >> 8) & 0x00FF) + amt\n\n if (b > 255) b = 255\n else if (b < 0) b = 0\n\n let g = (num & 0x0000FF) + amt\n\n if (g > 255) g = 255\n else if (g < 0) g = 0\n\n return (g | (b << 8) | (r << 16)).toString(16)\n}\n\nexport const mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = []\n for (let i = 0; i < 4; i++) {\n const round = (i === 3) ? x => x : Math.round\n arr[i] = round(\n (colorA[i] + (\n (colorB[i] - colorA[i]) * range\n ))\n )\n }\n return `rgba(${arr})`\n}\n\nexport const opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color)\n if (!arr) {\n if (ENV === 'test' || ENV === 'development') console.warn(color + 'color is not rgba')\n return\n }\n arr[3] = opacity\n return `rgba(${arr})`\n}\n", "'use strict'\n\nexport const getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key]) return LIBRARY[key].value\n if (LIBRARY.default) return LIBRARY[LIBRARY.default].value\n const hasValue = Object.keys(LIBRARY)[0]\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value\n}\n\nexport const getFontFormat = url => url.split(/[#?]/)[0].split('.').pop().trim()\n\nexport const setInCustomFontMedia = str => `@font-face { ${str} }`\n\nexport const setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`\n\nexport const setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`\n// src: url('${url}') format('${getFontFormat(url)}');\n\nexport const getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights)\n return keys.map(key => {\n const { url, fontWeight } = weights[key]\n return setCustomFont(name, url, fontWeight)\n })\n}\n\nexport const getFontFace = LIBRARY => {\n const keys = Object.keys(LIBRARY)\n return keys.map(key => getFontFaceEach(key, LIBRARY[key].value))\n}\n\nexport const getFontFaceEachString = (name, weights) => {\n const isArr = weights[0]\n if (isArr) return getFontFaceEach(name, weights).map(setInCustomFontMedia)\n return setCustomFontMedia(name, weights.url)\n}\n\nexport const getFontFaceString = LIBRARY => {\n const keys = Object.keys(LIBRARY)\n return keys.map(key => getFontFaceEachString(key, LIBRARY[key].value))\n}\n", "'use strict'\n\nexport * from './navigation'\nexport * from './scaling'\nexport * from './codify'\n\nexport const copyStringToClipboard = str => {\n var el = document.createElement('textarea')\n el.value = str\n el.setAttribute('readonly', '')\n el.style = { position: 'absolute', left: '-9999px' }\n document.body.appendChild(el)\n el.select()\n document.execCommand('copy')\n document.body.removeChild(el)\n}\n\nexport const toCamelCase = str => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase()\n }).replace(/\\s+/g, '')\n}\n\nexport const toTitleCase = str => str.replace(\n /\\w\\S*/g, txt => {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n }\n)\n\nexport const toDashCase = val => val\n .replace(/[A-Z]/g, (match, offset) => (offset > 0 ? '-' : '') + match.toLowerCase())\n .replace('.', '-')\n\nexport const toDescriptionCase = str => {\n const result = str.replace(/([A-Z])/g, ' $1')\n return result.charAt(0).toUpperCase() + result.slice(1)\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isString } from '@domql/utils'\nimport { toDashCase } from '@symbo.ls/utils'\n\nexport const numToLetterMap = {\n '-6': 'U',\n '-5': 'V',\n '-4': 'W',\n '-3': 'X',\n '-2': 'Y',\n '-1': 'Z',\n 0: 'A',\n 1: 'B',\n 2: 'C',\n 3: 'D',\n 4: 'E',\n 5: 'F',\n 6: 'G',\n 7: 'H',\n 8: 'I',\n 9: 'J',\n 10: 'K',\n 11: 'L',\n 12: 'M',\n 13: 'N',\n 14: 'O',\n 15: 'P',\n 16: 'Q',\n 17: 'R',\n 18: 'S',\n 19: 'T'\n}\n\nconst setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~(value),\n scaling,\n index,\n variable\n }\n sequenceProps.scales[key] = scaling\n sequenceProps.vars[variable] = scaling + sequenceProps.unit\n}\n\nexport const generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props\n\n const next = value * ratio\n const diff = next - value\n const smallscale = diff / 1.618\n\n const valueRounded = ~~(value)\n const nextRounded = ~~(next)\n const diffRounded = nextRounded - valueRounded\n\n let arr = []\n const first = next - smallscale\n const second = value + smallscale\n const middle = (first + second) / 2\n if (diffRounded > 16) arr = [first, middle, second]\n else arr = [first, second]\n\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1000) / 1000\n const newVar = variable + (k + 1)\n\n const props = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n }\n\n return setSequenceValue(props, sequenceProps)\n })\n}\n\nconst switchSequenceOnNegative = (key, base, ratio) => {\n // const values = Object.values(SEQUENCE)\n // const index = values.indexOf(ratio)\n // const diffRatio = ratio / SPACING.ratio\n // const total = values[values.length - 1] - values[0]\n // const avg = total / 2\n // const diff = avg - ratio\n // const scale = total / ratio\n // const finalDiff = avg + avg / diffRatio\n\n // if (key < 0) return base * Math.pow(avg, key)\n return base * Math.pow(ratio, key)\n}\n\nexport const generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps\n const n = Math.abs(range[0]) + Math.abs(range[1])\n const prefix = '--' + (type && type.replace('.', '-')) + '-'\n\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i\n const letterKey = numToLetterMap[key]\n const value = switchSequenceOnNegative(key, base, ratio)\n const scaling = ~~(value / base * 100) / 100\n const variable = prefix + letterKey\n\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n }\n\n setSequenceValue(props, sequenceProps)\n\n if (subSequence) generateSubSequence(props, sequenceProps)\n }\n return sequenceProps\n}\n\nexport const getSequenceValue = (value = 'A', sequenceProps) => {\n const CONFIG = getActiveConfig()\n const { UNIT } = CONFIG\n\n const {\n sequence,\n unit = UNIT.default,\n useVariable\n } = sequenceProps\n\n if (isString(value) && value.slice(0, 2) === '--') return `var(${value})`\n\n const prefix = `--${toDashCase(sequenceProps.type.replace('.', '-'))}-`\n\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value)\n\n if (\n value === 'none' ||\n value === 'auto' ||\n value === 'unset' ||\n value === 'inherit' ||\n value === 'fit-content' ||\n value === 'min-content' ||\n value === 'max-content' ||\n value.includes('calc') ||\n !startsWithDashOrLetter\n ) return value\n\n const letterVal = value.toUpperCase()\n const isNegative = letterVal.slice(0, 1) === '-' ? '-' : ''\n let absValue = isNegative ? letterVal.slice(1) : letterVal\n\n let mediaName = ''\n if (absValue.includes('-')) {\n mediaName = '-' + absValue.split('-')[1].toLowerCase()\n absValue = absValue.split('-')[0]\n }\n\n const varValue = v => `var(${prefix}${v}${mediaName})`\n if (absValue.includes('+')) {\n const args = absValue.split('+')\n const [first, second] = args\n const joint = `${varValue(first)} + ${varValue(second)}`\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`\n } else if (absValue.includes('-')) {\n const args = absValue.split('-')\n const [first, second] = args\n const joint = `${varValue(first)} - ${varValue(second)}`\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`\n }\n\n // if subsequence is not set but value is applied\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG.verbose) console.warn(absValue, '- value is not found because `subSequence` is set to false')\n absValue = absValue.slice(0, 1)\n }\n\n if (useVariable || CONFIG.useVariable) {\n const varValue = `var(${prefix}${absValue}${mediaName})`\n return isNegative ? `calc(${varValue} * -1)` : varValue\n }\n\n const sequenceItem = sequence ? sequence[absValue] : null\n if (!sequenceItem) return console.warn('can\\'t find', sequence, absValue)\n\n if (unit === 'ms' || unit === 's') {\n return isNegative + sequenceItem.val + unit\n }\n\n return isNegative + sequenceItem.scaling + unit\n}\n\nexport const getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== 'string') {\n console.warn(propertyName, value, 'is not a string')\n return ({})\n }\n if (value === '-' || value === '') return ({})\n return { [propertyName]: getSequenceValue(value, sequenceProps) }\n}\n\nexport const findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index]\n\nexport const findHeadings = propertyNames => {\n const { h1Matches, sequence } = propertyNames\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i)\n return sequence[findLetter]\n })\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isObjectLike } from '@domql/utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line\n\nexport const setVariables = (result, key) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS } = CONFIG\n if (isObjectLike(result.value)) {\n // for (const key in result.value) {\n // }\n } else {\n CSS_VARS[result.var] = result.value\n }\n}\n\nexport const applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG = getActiveConfig()\n const { UNIT, MEDIA, TIMING, CSS_VARS } = CONFIG\n\n const unit = props.unit || UNIT.default\n const { sequence, scales } = props\n\n for (const key in sequence) {\n const item = sequence[key]\n const value = (props.type === TIMING.type ? sequence[key].val : scales[key]) + unit\n\n if (mediaName) {\n const query = MEDIA[mediaName]\n if (!query) {\n if (CONFIG.verbose) console.warn('Can\\'t find query ', query)\n }\n let underMediaQuery = CSS_VARS[`@media ${query}`]\n if (!underMediaQuery) underMediaQuery = CSS_VARS[`@media ${query}`] = {}\n underMediaQuery[item.variable] = `var(${item.variable + '-' + mediaName})`\n CSS_VARS[item.variable + '-' + mediaName] = value\n } else {\n if (options.useDefault === false) {\n CSS_VARS[item.variable] = value\n } else {\n CSS_VARS[item.variable + '-default'] = value\n CSS_VARS[item.variable] = `var(${item.variable + '-default'})`\n }\n }\n }\n}\n", "'use strict'\n\nimport { getFontFace } from '../utils'\n\nvar defaultFont = { // eslint-disable-line\n name: '',\n family: '',\n type: ''\n}\n\nexport const FONT_FAMILY = {}\nexport const FONT_FAMILY_TYPES = {\n serif: 'Helvetica, Arial, sans-serif, --system-default',\n 'sans-serif': 'Times New Roman, Georgia, serif, --system-default',\n monospace: 'Courier New, monospace, --system-default'\n}\nexport const FONT_FACE = getFontFace(FONT_FAMILY)\n", "'use strict'\n\nexport const MEDIA = {\n tv: '(min-width: 2780px)',\n\n screenL: '(max-width: 1920px)',\n screenM: '(max-width: 1680px)',\n screenS: '(max-width: 1440px)',\n tabletL: '(max-width: 1366px)',\n tabletM: '(max-width: 1280px)',\n tabletS: '(max-width: 1024px)',\n mobileL: '(max-width: 768px)',\n mobileM: '(max-width: 560px)',\n mobileS: '(max-width: 480px)',\n mobileXS: '(max-width: 375px)',\n\n light: '(prefers-color-scheme: light)',\n dark: '(prefers-color-scheme: dark)',\n\n print: 'print'\n}\n", "'use strict'\n\nimport { SEQUENCE, TYPOGRAPHY } from '.'\n\nconst defaultProps = {\n base: TYPOGRAPHY.base,\n type: 'spacing',\n ratio: SEQUENCE.phi,\n range: [-5, +15],\n subSequence: true,\n unit: 'em',\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const SPACING = defaultProps\n", "'use strict'\n\nvar proto = { // eslint-disable-line\n name: '',\n value: '',\n themes: {}\n}\n\nexport const COLOR = {}\nexport const GRADIENT = {}\n", "'use strict'\n\nconst themeA = { // eslint-disable-line no-unused-vars\n text: 'blue',\n background: 'white',\n border: 'black', // .opacity(0.2),\n active: {},\n helpers: [],\n themes: {},\n inverse: {} // schemeAInverse\n}\n\nexport const THEME = {}\n", "'use strict'\n\nexport const ICONS = {}\n", "'use strict'\n\nimport { SEQUENCE } from '.'\n\nconst defaultProps = {\n default: 150,\n base: 150,\n type: 'timing',\n ratio: SEQUENCE['perfect-fourth'],\n range: [-3, +12],\n unit: 'ms',\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const TIMING = defaultProps\n", "'use strict'\n\nexport const DOCUMENT = {}\n", "'use strict'\n\nexport const BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n}\n\nexport const DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n}\n", "'use strict'\n\nexport const CASES = {}\n", "'use strict'\n\nexport const ANIMATION = {}\n", "'use strict'\n\nimport { deepClone, isDefined } from '@domql/utils'\nimport * as CONF from './defaultConfig'\n\nexport const CSS_VARS = {}\nexport const CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...CONF\n}\n\nconst cachedConfig = deepClone(CONFIG)\n\nexport const FACTORY = {\n active: '0',\n 0: CONFIG\n}\n\nexport const activateConfig = (def) => {\n if (isDefined(def)) { FACTORY.active = def }\n return FACTORY[def || FACTORY.active]\n}\n\nexport const getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig)\n return FACTORY[def]\n }\n return FACTORY[def || FACTORY.active]\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isObject, isArray, isString } from '@domql/utils'\n\nimport {\n colorStringToRgbaArray,\n rgbToHSL,\n hexToRgbArray,\n rgbArrayToHex,\n hslToRgb,\n getColorShade\n} from '../utils'\n\nexport const getColor = (value, key) => {\n const CONFIG = getActiveConfig()\n if (!isString(value)) {\n if (CONFIG.verbose) console.warn(value, '- type for color is not valid')\n return\n }\n\n if (value.slice(0, 2) === '--') return `var(${value})`\n\n if (key && value[key]) value = value[key]\n const [name, alpha, tone] = isArray(value) ? value : value.split(' ')\n const { COLOR, GRADIENT } = CONFIG\n\n let val = (COLOR[name] || GRADIENT[name])\n\n if (!val) {\n if (CONFIG.verbose) console.warn('Can\\'t find color ', name)\n return value\n }\n\n if (key) {\n if (val[key]) val = val[key]\n else if (CONFIG.verbose) console.warn(value, ' - does not have ', key)\n }\n\n // TODO: support variables\n // if (alpha) return `rgba(var(${val[shade || ''].var}), ${modifier})`\n\n let rgb = val.rgb\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(', ').map(v => parseFloat(v)))\n if (tone.slice(0, 1) === '-' || tone.slice(0, 1) === '+') {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(', ')\n } else {\n const [r, g, b] = [...rgb.split(', ').map(v => parseInt(v))]\n const hsl = rgbToHSL(r, g, b)\n const [h, s, l] = hsl // eslint-disable-line\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255)\n rgb = newRgb\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` }\n } else rgb = val[tone].rgb\n }\n if (alpha) return `rgba(${rgb}, ${alpha})`\n return CONFIG.useVariable ? `var(${val.var})` : `rgb(${rgb})`\n } else return CONFIG.useVariable ? `var(${val.var})` : val.value\n}\n\nexport const getMediaColor = (value, property, globalTheme) => {\n const CONFIG = getActiveConfig()\n if (!globalTheme) globalTheme = CONFIG.globalTheme\n if (!isString(value)) {\n if (CONFIG.verbose) console.warn(value, '- type for color is not valid')\n return\n }\n\n if (value.slice(0, 2) === '--') return { [property]: `var(${value})` }\n\n const [name] = isArray(value) ? value : value.split(' ')\n\n const { COLOR, GRADIENT } = CONFIG\n const val = COLOR[name] || GRADIENT[name]\n const isObj = isObject(val)\n\n if (isObj && val.value) return { [property]: getColor(value, globalTheme) }\n else if (isObj) {\n if (globalTheme) return { [property]: getColor(value, `@${globalTheme}`) }\n else {\n const obj = {}\n for (const mediaName in val) {\n const query = CONFIG.MEDIA[mediaName.slice(1)]\n const media = `@media screen and ${query}`\n obj[media] = { [property]: getColor(value, mediaName) }\n }\n return obj\n }\n } else {\n if (CONFIG.verbose) console.warn('Can\\'t find color', value)\n return { [property]: value }\n }\n}\n\nexport const setColor = (val, key, suffix) => {\n const CONFIG = getActiveConfig()\n\n if (isString(val) && val.slice(0, 2) === '--') val = getColor(val.slice(2))\n\n if (isArray(val)) {\n return {\n '@light': setColor(val[0], key, 'light'),\n '@dark': setColor(val[1], key, 'dark')\n }\n }\n\n if (isObject(val)) {\n const obj = {}\n for (const variant in val) obj[variant] = setColor(val[variant], key, variant.slice(0, 1) === '@' ? variant.slice(1) : variant)\n return obj\n }\n\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : '')\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val)\n const alpha = parseFloat(a.toFixed(2))\n const rgb = `${r}, ${g}, ${b}`\n const value = `rgba(${rgb}, ${alpha})`\n\n if (CONFIG.useVariable) { CONFIG.CSS_VARS[CSSVar] = value }\n\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n }\n}\n\nexport const setGradient = (val, key, suffix) => {\n const CONFIG = getActiveConfig()\n if (isString(val) && val.slice(0, 2) === '--') val = getColor(val.slice(2))\n\n if (isArray(val)) {\n return {\n '@light': setGradient(val[0], key, 'light'),\n '@dark': setGradient(val[0], key, 'dark')\n }\n }\n\n if (isObject(val)) {\n const obj = {}\n for (const variant in val) obj[variant] = setGradient(val[variant], key, variant.slice(0, 1) === '@' ? variant.slice(1) : variant)\n return obj\n }\n\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : '')\n\n if (CONFIG.useVariable) {\n CONFIG.CSS_VARS[CSSVar] = val.value || val\n }\n\n return {\n var: CSSVar,\n value: val.value || val\n }\n}\n", "'use strict'\n\nimport { getColor } from './color'\nimport { getActiveConfig } from '../factory'\n\nimport {\n isObject,\n isString,\n isObjectLike,\n isArray\n} from '@domql/utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line\n\nconst setThemeValue = theme => {\n const value = {}\n const { state, media, helpers, ...rest } = theme\n const keys = Object.keys(rest)\n keys.map(key => {\n const conditions = ['color', 'Color', 'background', 'border']\n const isColor = conditions.some(k => key.includes(k))\n return (value[key] = isColor ? getColor(theme[key]) : theme[key])\n })\n return value\n}\n\nconst getThemeValue = theme => {\n if (theme.value) return theme.value\n theme.value = setThemeValue(theme)\n return theme.value\n}\n\nexport const getTheme = (value, modifier) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useVariable) return getMediaTheme(value, modifier)\n const { THEME } = CONFIG\n\n if (isString(value)) {\n const [theme, subtheme] = value.split(' ')\n const isOurTheme = THEME[theme]\n if (isOurTheme) {\n if (!subtheme && !modifier) return getThemeValue(isOurTheme)\n value = [theme, subtheme || modifier]\n }\n }\n\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0]\n const subThemeName = value[1]\n const { helpers, media, state } = THEME[themeName]\n\n if (media && media[subThemeName]) return getThemeValue(media[subThemeName])\n if (helpers && helpers[subThemeName]) return getThemeValue(helpers[subThemeName])\n if (state && state[subThemeName]) return getThemeValue(state[subThemeName])\n } else if (isObject(value)) return setThemeValue(value)\n}\n\nconst setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant)\n } else if (variant === true) {\n const { color, background } = value\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n }\n }\n}\n\nconst setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant)\n themeValue[`&:${key}`] = result\n if (isObject(variant) && !variant.value) variant.value = result\n}\n\nconst setSelectors = (theme, value) => {\n const { state } = theme\n if (!state) return\n const keys = Object.keys(state)\n keys.map(key => {\n const variant = state[key]\n setPseudo(theme, key, variant, value)\n return theme\n })\n return theme\n}\n\nconst setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant)\n themeValue[`@media (prefers-color-scheme: ${key})`] = result\n if (isObject(variant) && !variant.value) variant.value = result\n}\n\nconst setMedia = (theme, value) => {\n const { media } = theme\n if (!media) return\n const keys = Object.keys(media)\n keys.map(key => {\n const variant = media[key]\n if (key === 'dark' || key === 'light') setPrefersScheme(theme, key, variant, value)\n if (key === 'inverse') setInverseTheme(theme, variant, value)\n return theme\n })\n return theme\n}\n\nconst setHelpers = (theme, value) => {\n const CONFIG = getActiveConfig()\n const { helpers } = theme\n if (!helpers) return\n const keys = Object.keys(helpers)\n keys.map(key => {\n const helper = helpers[key]\n if (isString(helper)) helpers[key] = CONFIG.THEME[helper]\n else getThemeValue(helpers[key])\n return theme\n })\n return theme\n}\n\nexport const setTheme = (val, key) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useVariable) return setMediaTheme(val, key)\n\n const { state, media, helpers } = val\n const value = setThemeValue(val, key)\n const CSSvar = `--theme-${key}`\n\n setSelectors(val, value)\n setMedia(val, value)\n setHelpers(val, value)\n\n return { var: CSSvar, value, state, media, helpers }\n}\n\nconst keySetters = { // eslint-disable-line\n '@': (theme, value) => setMedia(theme, value),\n ':': (theme, value) => setSelectors(theme, value),\n '.': (theme, value) => setHelpers(theme, value)\n}\n\nexport const setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS } = CONFIG\n const theme = { value: val }\n\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1)\n const value = val[param]\n if (symb === '@' || symb === ':' || symb === '.') {\n const hasPrefers = symb === '@' && param\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers)\n } else {\n const color = getColor(value, prefers)\n const metaSuffixes = [...new Set([prefers, suffix].filter(v => v).map(v => v.slice(1)))]\n const varmetaSuffixName = metaSuffixes.length ? '-' + metaSuffixes.join('-') : ''\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`\n if (CONFIG.useVariable) {\n CSS_VARS[CSSVar] = color\n theme[param] = `var(${CSSVar})`\n } else {\n theme[param] = color\n }\n theme[`.${param}`] = { [param]: theme[param] }\n }\n }\n\n if (theme['background'] || theme['color'] || theme['backgroundColor']) {\n theme['.inversed'] = {\n color: theme['background'] || theme['backgroundColor'],\n background: theme['color']\n }\n }\n }\n\n if (isString(val) && val.slice(0, 2) === '--') {\n const { THEME } = CONFIG\n const value = THEME[val.slice(2)]\n const getReferenced = getMediaTheme(value)\n return getReferenced\n }\n\n return theme\n}\n\nconst recursiveTheme = val => {\n const CONFIG = getActiveConfig()\n const obj = {}\n for (const param in val) {\n const symb = param.slice(0, 1)\n if (isObjectLike(val[param])) {\n if (symb === '@') {\n const query = CONFIG.MEDIA[param.slice(1)]\n const media = `@media screen and ${query}`\n obj[media] = recursiveTheme(val[param])\n } else if (symb === ':') {\n obj[`&${param}`] = recursiveTheme(val[param])\n }\n } else obj[param] = val[param]\n }\n return obj\n}\n\nconst findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift()\n if (val[currentMod]) return findModifierFromArray(val[currentMod], modifierArray)\n return val\n}\n\nconst findModifier = (val, modifier) => {\n if (isArray(modifier)) return findModifierFromArray(val, modifier)\n else if (isString(modifier) && val[modifier]) return val[modifier]\n else return val\n}\n\nconst checkForReference = (val, callback) => {\n if (isString(val) && val.slice(0, 2) === '--') return getMediaTheme(val.slice(2))\n return val\n}\n\nconst checkThemeReference = (val) => checkForReference(val, checkThemeReference) // eslint-disable-line\n\nexport const getMediaTheme = (val, mod) => {\n const CONFIG = getActiveConfig()\n if (isString(val) && val.slice(0, 2) === '--') val = getMediaTheme(val.slice(2))\n\n if (!val || !isString(val)) {\n if (CONFIG.verbose) console.warn(val, '- theme is not string')\n return\n }\n\n const [name, ...modifier] = isArray(val) ? val : val.split(' ')\n let value = CONFIG.THEME[name]\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod)\n }\n\n const r = recursiveTheme(value)\n return r\n}\n", "'use strict'\n\nimport { isObject } from '@domql/utils'\nimport { getActiveConfig } from '../factory'\n\nimport {\n arrayze,\n getDefaultOrFirstKey,\n getFontFaceEach,\n setCustomFontMedia\n} from '../utils'\n\n// const ENV = process.env.NODE_ENV\n\nexport const setFont = (val, key) => {\n const CSSvar = `--font-${key}`\n const fontFace = val[0]\n ? getFontFaceEach(key, val)\n : setCustomFontMedia(key, val.url)\n return { var: CSSvar, value: val, fontFace }\n}\n\nexport const getFontFamily = (key, factory) => {\n const CONFIG = getActiveConfig()\n const { FONT_FAMILY } = CONFIG\n return getDefaultOrFirstKey(factory || FONT_FAMILY, key)\n}\n\nexport const setFontFamily = (val, key) => {\n const CONFIG = getActiveConfig()\n const { FONT_FAMILY, FONT_FAMILY_TYPES } = CONFIG\n let { value, type } = val\n if (val.isDefault) FONT_FAMILY.default = key\n\n if (isObject(value)) value = arrayze(value)\n\n const CSSvar = `--font-family-${key}`\n const str = `${value.join(', ')}, ${FONT_FAMILY_TYPES[type]}`\n return { var: CSSvar, value: str, arr: value, type }\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\n\nimport {\n applySequenceVars,\n findHeadings,\n generateSequence,\n getSequenceValuePropertyPair,\n merge\n} from '../utils'\n\nexport const runThroughMedia = props => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY, MEDIA } = CONFIG\n\n for (const prop in props) {\n const mediaProps = props[prop]\n if (prop.slice(0, 1) === '@') {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props\n\n merge(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n })\n\n generateSequence(mediaProps)\n\n const mediaName = prop.slice(1)\n applySequenceVars(mediaProps, mediaName)\n\n const query = MEDIA[mediaName]\n TYPOGRAPHY.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY.browserDefault + unit\n }\n }\n }\n}\n\nexport const applyHeadings = (props) => {\n const CONFIG = getActiveConfig()\n if (props.h1Matches) {\n const unit = props.unit\n const HEADINGS = findHeadings(props)\n const { styles } = props\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`\n const headerStyle = styles[headerName]\n styles[headerName] = {\n fontSize: CONFIG.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - (k * 100)\n }\n }\n }\n}\n\nexport const applyTypographySequence = () => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY } = CONFIG\n\n generateSequence(TYPOGRAPHY)\n applyHeadings(TYPOGRAPHY)\n applySequenceVars(TYPOGRAPHY)\n runThroughMedia(TYPOGRAPHY)\n}\n\nexport const getFontSizeByKey = value => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY } = CONFIG\n return getSequenceValuePropertyPair(\n value,\n 'fontSize',\n TYPOGRAPHY\n )\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\n\nimport { isString } from '@domql/utils'\nimport {\n applySequenceVars,\n arrayze,\n generateSequence,\n getSequenceValuePropertyPair,\n merge\n} from '../utils'\n\nconst runThroughMedia = sequenceProps => {\n for (const prop in sequenceProps) {\n const mediaProps = sequenceProps[prop]\n if (prop.slice(0, 1) === '@') {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps\n\n merge(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n })\n\n generateSequence(mediaProps)\n\n const mediaName = prop.slice(1)\n applySequenceVars(mediaProps, mediaName)\n }\n }\n}\n\nexport const applySpacingSequence = () => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n generateSequence(SPACING)\n applySequenceVars(SPACING)\n runThroughMedia(SPACING)\n}\n\nconst getSequence = (sequenceProps) => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n if (!sequenceProps) return SPACING\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps)\n}\n\nexport const getSpacingByKey = (\n value,\n propertyName = 'padding',\n sequenceProps\n) => {\n const sequence = getSequence(sequenceProps)\n\n const stack = arrayze(value)\n if (!stack) return\n\n if (isString(value) && value.includes('calc')) {\n return { [propertyName]: value }\n }\n\n if (stack.length > 1) {\n let suffix = ''\n if (propertyName === 'borderWidth') {\n propertyName = 'border'\n suffix = 'Width'\n }\n\n const directions = {\n 2: ['Block', 'Inline'],\n 3: ['BlockStart', 'Inline', 'BlockEnd'],\n 4: ['BlockStart', 'InlineEnd', 'BlockEnd', 'InlineStart']\n }\n\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n )\n\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key))\n }\n\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n )\n}\n\nexport const getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n\n const { spacingRatio, unit } = props\n const value = val || props[propertyName]\n\n if (spacingRatio) {\n let sequenceProps = SPACING[spacingRatio]\n\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING\n\n sequenceProps = SPACING[spacingRatio] = merge({\n ratio: spacingRatio,\n type: type + '-' + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING.ratio,\n unit: SPACING.unit\n })\n }\n\n applySequenceVars(sequenceProps, null, { useDefault: false })\n\n return getSpacingByKey(value, propertyName, sequenceProps)\n }\n return getSpacingByKey(value, propertyName)\n}\n", "'use strict'\n\nimport { toCamelCase } from '@symbo.ls/utils'\nimport { getActiveConfig } from '../factory'\nimport {\n applySequenceVars,\n generateSequence,\n getSequenceValuePropertyPair\n} from '../utils'\n\nexport const applyTimingSequence = () => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n generateSequence(TIMING)\n applySequenceVars(TIMING)\n}\n\nexport const getTimingFunction = value => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n return TIMING[value] || TIMING[toCamelCase(value)] || value\n}\n\nexport const getTimingByKey = (value, property = 'timing') => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING\n )\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { getDefaultOrFirstKey, merge } from '../utils'\n\nexport const applyDocument = () => {\n const CONFIG = getActiveConfig()\n const { DOCUMENT, FONT_FAMILY, THEME, TYPOGRAPHY } = CONFIG\n return merge(DOCUMENT, {\n theme: THEME.document,\n fontFamily: getDefaultOrFirstKey(FONT_FAMILY),\n fontSize: TYPOGRAPHY.base,\n lineHeight: TYPOGRAPHY.lineHeight\n })\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { getMediaTheme } from '.'\nimport { deepMerge, merge } from '@domql/utils' // eslint-disable-line no-unused-vars\n\nexport const applyReset = (reset = {}) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS, RESET, TYPOGRAPHY, DOCUMENT } = CONFIG\n if (RESET) {\n if (RESET[':root']) {\n const configReset = RESET\n const configStyles = TYPOGRAPHY.styles\n\n configReset.body = {\n ...getMediaTheme('document', `@${CONFIG.globalTheme}`),\n ...configStyles.body\n }\n configReset.h1 = configStyles.h1\n configReset.h2 = configStyles.h2\n configReset.h3 = configStyles.h3\n configReset.h4 = configStyles.h4\n configReset.h5 = configStyles.h5\n configReset.h6 = configStyles.h6\n }\n\n const { body, ...styles } = TYPOGRAPHY.styles\n\n return deepMerge(merge(RESET, reset), {\n html: {\n position: 'absolute',\n overflow: 'hidden',\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n margin: '0',\n WebkitFontSmoothing: 'antialiased',\n transform: 'translate3d(0, 0, 1px)',\n scrollBehavior: 'smooth',\n\n fontSize: TYPOGRAPHY.browserDefault + 'px',\n\n fontFamily: DOCUMENT.fontFamily,\n lineHeight: DOCUMENT.lineHeight\n },\n\n body: {\n boxSizing: 'border-box',\n height: '100%',\n margin: 0,\n fontFamily: DOCUMENT.fontFamily,\n\n fontSize: TYPOGRAPHY.base / TYPOGRAPHY.browserDefault + CONFIG.UNIT.default,\n\n ...getMediaTheme('document', `@${CONFIG.globalTheme}`),\n\n ...styles,\n ...body\n },\n\n // form elements\n fieldset: {\n border: 0,\n padding: 0,\n margin: 0\n },\n\n 'select, input': {\n fontFamily: DOCUMENT.fontFamily\n }\n })\n }\n}\n", "'use strict'\n\nimport { FACTORY, getActiveConfig } from './factory' // eslint-disable-line no-unused-vars\nimport {\n setColor,\n setGradient,\n setFont,\n setFontFamily,\n setTheme,\n applyTypographySequence,\n applySpacingSequence,\n applyReset,\n applyTimingSequence,\n applyDocument\n} from './system'\n\nimport { isFunction } from './utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line no-unused-vars\n\nconst setCases = (val, key) => {\n if (isFunction(val)) return val()\n return val\n}\n\nconst setSameValue = (val, key) => val\n\nexport const SETTERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: setSameValue,\n icons: setSameValue,\n reset: setSameValue,\n unit: setSameValue,\n animation: setSameValue\n}\n\n/**\n *\n * @param {Object} FACTORY_NAME Defines which factory it goes to\n * @param {*} value Value of the property\n * @param {String} key Key, or the name of the property\n * @returns {Object} Factory\n */\nexport const setValue = (FACTORY_NAME, value, key) => {\n const CONFIG = getActiveConfig()\n const factoryName = FACTORY_NAME.toLowerCase()\n const FACTORY = CONFIG[FACTORY_NAME]\n\n if (SETTERS[factoryName]) {\n const result = SETTERS[factoryName](value, key)\n FACTORY[key] = result\n return FACTORY\n }\n if (CONFIG.verbose) console.warn('Can not find', factoryName, 'method in scratch')\n}\n\nexport const setEach = (factoryName, props) => {\n const CONFIG = getActiveConfig()\n const FACTORY_NAME = factoryName.toUpperCase()\n const keys = Object.keys(props)\n keys.map(key => setValue(FACTORY_NAME, props[key], key))\n\n return CONFIG[FACTORY_NAME]\n}\n\nconst SET_OPTIONS = {}\n\nexport const set = (recivedConfig, options = SET_OPTIONS) => {\n let CONFIG = getActiveConfig()\n const { version, verbose, useVariable, useReset, globalTheme, ...config } = recivedConfig\n \n if (options.newConfig) {\n FACTORY['active'] = options.newConfig\n CONFIG = getActiveConfig(options.newConfig)\n }\n\n if (verbose !== undefined) CONFIG.verbose = verbose\n if (useVariable !== undefined) CONFIG.useVariable = useVariable\n if (useReset !== undefined) CONFIG.useReset = useReset\n if (globalTheme !== undefined) CONFIG.globalTheme = globalTheme\n if (CONFIG.verbose) console.log(CONFIG)\n\n const keys = Object.keys(config)\n keys.map(key => setEach(key, config[key]))\n\n // apply generic configs\n applyTypographySequence()\n applySpacingSequence()\n applyTimingSequence()\n applyDocument()\n applyReset()\n\n return CONFIG\n}\n\nexport * from './system'\n"],
5
+ "mappings": "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",
6
+ "names": ["deepMerge", "isArray", "isFunction", "isObject", "isObjectLike", "isString", "merge", "window", "document", "obj", "objProp", "prop", "stringified", "isString", "isArray", "isObject", "isObjectLike", "merge", "obj", "objProp", "deepMerge", "obj2", "isFunction", "diff", "props", "CONFIG", "UNIT", "varValue", "CONFIG", "CSS_VARS", "UNIT", "MEDIA", "TIMING", "defaultProps", "defaultProps", "CONFIG", "COLOR", "GRADIENT", "obj", "CONFIG", "THEME", "CONFIG", "CSS_VARS", "THEME", "obj", "CONFIG", "CONFIG", "FONT_FAMILY", "FONT_FAMILY_TYPES", "CONFIG", "TYPOGRAPHY", "MEDIA", "prop", "merge", "runThroughMedia", "prop", "merge", "CONFIG", "SPACING", "CONFIG", "TIMING", "CONFIG", "DOCUMENT", "FONT_FAMILY", "THEME", "TYPOGRAPHY", "merge", "CONFIG", "CSS_VARS", "RESET", "TYPOGRAPHY", "DOCUMENT", "isFunction", "CONFIG", "FACTORY"]
7
7
  }
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.17",
5
+ "version": "2.10.20",
6
6
  "files": [
7
7
  "src",
8
8
  "dist"
@@ -61,5 +61,5 @@
61
61
  "outputFormat": "commonjs",
62
62
  "includeNodeModules": true
63
63
  },
64
- "gitHead": "f828840a39e0561f4bd3597d1b77bae52427e90c"
64
+ "gitHead": "2916a041146a954910251d5d73dd5e912858d562"
65
65
  }
package/src/set.js CHANGED
@@ -77,7 +77,6 @@ export const set = (recivedConfig, options = SET_OPTIONS) => {
77
77
  let CONFIG = getActiveConfig()
78
78
  const { version, verbose, useVariable, useReset, globalTheme, ...config } = recivedConfig
79
79
 
80
- console.log(CONFIG)
81
80
  if (options.newConfig) {
82
81
  FACTORY['active'] = options.newConfig
83
82
  CONFIG = getActiveConfig(options.newConfig)