@symbo.ls/scratch 2.10.60 → 2.10.71

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
@@ -106,6 +106,7 @@ __export(src_exports, {
106
106
  rgbToHex: () => rgbToHex,
107
107
  runThroughMedia: () => runThroughMedia,
108
108
  set: () => set,
109
+ setActiveConfig: () => setActiveConfig,
109
110
  setColor: () => setColor,
110
111
  setCustomFont: () => setCustomFont,
111
112
  setCustomFontMedia: () => setCustomFontMedia,
@@ -192,6 +193,30 @@ var clone = (obj2) => {
192
193
  }
193
194
  return o;
194
195
  };
196
+ var deepCloneExclude = (obj2, exclude = []) => {
197
+ if (isArray(obj2)) {
198
+ return obj2.map((x) => deepCloneExclude(x, exclude));
199
+ }
200
+ const o = {};
201
+ for (const k in obj2) {
202
+ if (exclude.indexOf(k) > -1)
203
+ continue;
204
+ let v = obj2[k];
205
+ if (k === "extend" && isArray(v)) {
206
+ v = mergeArrayExclude(v, exclude);
207
+ }
208
+ if (isArray(v)) {
209
+ o[k] = v.map((x) => deepCloneExclude(x, exclude));
210
+ } else if (isObject(v)) {
211
+ o[k] = deepCloneExclude(v, exclude);
212
+ } else
213
+ o[k] = v;
214
+ }
215
+ return o;
216
+ };
217
+ var mergeArrayExclude = (arr, excl = []) => {
218
+ return arr.reduce((acc, curr) => deepMerge(acc, deepCloneExclude(curr, excl)), {});
219
+ };
195
220
  var deepClone = (obj2) => {
196
221
  if (isArray(obj2)) {
197
222
  return obj2.map(deepClone);
@@ -216,10 +241,14 @@ var deepStringify = (obj2, stringified2 = {}) => {
216
241
  const objProp2 = obj2[prop2];
217
242
  if (isFunction(objProp2)) {
218
243
  stringified2[prop2] = objProp2.toString();
244
+ } else if (isObject(objProp2)) {
245
+ stringified2[prop2] = {};
246
+ deepStringify(objProp2[prop2], stringified2[prop2]);
247
+ } else if (isArray(objProp2)) {
248
+ stringified2[prop2] = [];
249
+ objProp2.map((v, i) => deepStringify(v, stringified2[prop2][i]));
219
250
  } else
220
251
  stringified2[prop2] = objProp2;
221
- if (isObject(objProp2))
222
- deepStringify(stringified2[prop2], stringified2[prop2]);
223
252
  }
224
253
  return stringified2;
225
254
  };
@@ -339,11 +368,13 @@ var isEqualDeep = (param, element) => {
339
368
  };
340
369
 
341
370
  // ../../node_modules/@domql/utils/node.js
342
- var createID = function* () {
343
- let index = 1;
344
- while (index < index + 1) {
345
- yield index++;
371
+ var createID = function() {
372
+ let index = 0;
373
+ function newId() {
374
+ index++;
375
+ return index;
346
376
  }
377
+ return newId;
347
378
  }();
348
379
 
349
380
  // src/defaultConfig/index.js
@@ -854,7 +885,6 @@ var applySequenceVars = (props, mediaName, options = {}) => {
854
885
  };
855
886
 
856
887
  // src/utils/sprite.js
857
- var parser = new DOMParser();
858
888
  var generateSprite = (icons) => {
859
889
  let sprite = '<svg aria-hidden="true" width="0" height="0" style="position:absolute">';
860
890
  for (let key in icons) {
@@ -1028,6 +1058,9 @@ var getActiveConfig = (def) => {
1028
1058
  }
1029
1059
  return FACTORY[def || FACTORY.active];
1030
1060
  };
1061
+ var setActiveConfig = (def) => {
1062
+ return FACTORY.active = FACTORY[def];
1063
+ };
1031
1064
 
1032
1065
  // src/system/color.js
1033
1066
  var getColor = (value, key) => {
@@ -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", "../../utils/src/index.js", "../src/utils/sequence.js", "../src/utils/var.js", "../src/utils/sprite.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/defaultConfig/svg.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/svg.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, 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 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 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 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 (prop === 'src') {\n // console.log(typeof stringified[prop])\n // console.log(prop, stringified[prop])\n // }\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.includes('=>') || objProp.includes('function') || objProp[0] === '(') {\n // console.groupCollapsed(prop)\n // console.log(obj)\n // console.log(objProp)\n try {\n const evalProp = eval(objProp) // eslint-disable-line\n // console.log(evalProp)\n stringified[prop] = evalProp\n } catch (e) { if (e) stringified[prop] = objProp }\n // console.groupEnd(prop)\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'\nexport * from './svg'\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 templates: {},\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'\nexport * from './date'\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 }).replaceAll(/\\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 { isString } from \"@domql/utils\"\n\nconst parser = new DOMParser()\n\nexport const generateSprite = (icons) => {\n let sprite =\n '<svg aria-hidden=\"true\" width=\"0\" height=\"0\" style=\"position:absolute\">'\n\n for (let key in icons) {\n sprite += icons[key]\n }\n\n sprite += \"</svg>\"\n\n return sprite\n}\n\nconst parseRootAttributes = (htmlString) => {\n if (!isString(htmlString)) {\n return console.warn(`parseRootAttributes: ${htmlString} is not a string`)\n }\n \n let match = htmlString.match(/<svg\\s+(.*?)>/);\n if (!match || !match[1]) {\n return {};\n }\n\n let attrString = match[1];\n let attrs = attrString.match(/(\\S+)=[\"']?((?:.(?![\"']?\\s+(?:\\S+)=|\\s*\\/?[>\"']))+.)[\"']?/gm);\n return attrs.reduce((acc, attr) => {\n let [key, value] = attr.split(\"=\");\n acc[key] = value.replace(/['\"]/g, \"\");\n return acc;\n }, {});\n}\n\nexport const convertSvgToSymbol = (key, code) => {\n const extractAttrs = parseRootAttributes(code)\n const { width, height } = extractAttrs\n \n const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`\n const xmlns = 'http://www.w3.org/2000/svg'\n\n let symbol = code.replace(\"<svg\", \n `<symbol id=\"${key}\" xmlns=\"${xmlns}\" viewBox=\"${viewBox}\"`\n )\n symbol = symbol.replace(/width=\"[^\\\"]*/, \"\")\n symbol = symbol.replace(/height=\"[^\\\"]*/, \"\")\n symbol = symbol.replace(\"</svg\", \"</symbol\")\n return symbol\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\nexport const SVG = {}\nexport const SVG_DATA = {}\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, prefers)\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 templates: {},\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.templates[`@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 { templates } = props\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`\n const headerStyle = templates[headerName]\n templates[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 templates: {},\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 templates: {},\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 { generateSprite, convertSvgToSymbol } from \"../utils\"\nimport { getActiveConfig } from '../factory'\n\nconst DEF_OPTIONS = {\n document: document\n}\n\nexport const setSVG = (val, key) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useSvgSprite) {\n return convertSvgToSymbol(key, val)\n } return val\n}\n\nexport const appendSVGSprite = (LIBRARY, options = DEF_OPTIONS) => {\n const CONFIG = getActiveConfig()\n const svgSpriteDOM = document.createElement('template')\n\n\n const lib = Object.keys(LIBRARY).length ? {} : CONFIG.SVG\n for (let key in LIBRARY) lib[key] = CONFIG.SVG[key]\n \n const SVGsprite = generateSprite(lib)\n svgSpriteDOM.innerHTML = SVGsprite\n\n const doc = options.document || document\n doc.body.appendChild(svgSpriteDOM.content)\n}\n\nexport const setIcon = (val, key) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useIconSprite) {\n return setSVG(val, key)\n } return val\n}\n\nexport const appendIconsSprite = (LIBRARY, options = DEF_OPTIONS) => {\n const CONFIG = getActiveConfig()\n const iconsSpriteDOM = document.createElement('template')\n \n const lib = Object.keys(LIBRARY).length ? {} : CONFIG.ICONS\n for (let key in LIBRARY) lib[key] = CONFIG.ICONS[key]\n \n const SVGsprite = generateSprite(lib)\n iconsSpriteDOM.innerHTML = SVGsprite\n\n const doc = options.document || document\n doc.body.appendChild(iconsSpriteDOM.content)\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 configTemplates = TYPOGRAPHY.templates\n\n configReset.body = {\n ...getMediaTheme('document', `@${CONFIG.globalTheme}`),\n ...configTemplates.body\n }\n configReset.h1 = configTemplates.h1\n configReset.h2 = configTemplates.h2\n configReset.h3 = configTemplates.h3\n configReset.h4 = configTemplates.h4\n configReset.h5 = configTemplates.h5\n configReset.h6 = configTemplates.h6\n }\n\n const { body, ...templates } = TYPOGRAPHY.templates\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 ...(CONFIG.useDocumentTheme ? getMediaTheme('document', `@${CONFIG.globalTheme}`) : {}),\n\n ...templates,\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 setIcon,\n setSVG,\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 VALUE_TRANSFORMERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n icons: setIcon,\n svg: setSVG,\n svg_data: setSameValue,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: 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 (VALUE_TRANSFORMERS[factoryName]) {\n const result = VALUE_TRANSFORMERS[factoryName](value, key)\n FACTORY[key] = result\n return FACTORY\n }\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 {\n version,\n verbose,\n useVariable,\n useReset,\n useSvgSprite,\n useFontImport,\n useIconSprite,\n globalTheme,\n useDocumentTheme,\n ...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 (useFontImport !== undefined) CONFIG.useFontImport = useFontImport\n if (useSvgSprite !== undefined) CONFIG.useSvgSprite = useSvgSprite\n if (useIconSprite !== undefined) CONFIG.useIconSprite = useIconSprite\n if (useDocumentTheme !== undefined) CONFIG.useDocumentTheme = useDocumentTheme\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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",
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 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 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// Clone anything deeply but exclude keys given in 'exclude'\nexport const deepCloneExclude = (obj, exclude = []) => {\n if (isArray(obj)) {\n return obj.map(x => deepCloneExclude(x, exclude))\n }\n\n const o = {}\n for (const k in obj) {\n if (exclude.indexOf(k) > -1) continue\n\n let v = obj[k]\n\n if (k === 'extend' && isArray(v)) {\n v = mergeArrayExclude(v, exclude)\n }\n\n if (isArray(v)) {\n o[k] = v.map(x => deepCloneExclude(x, exclude))\n } else if (isObject(v)) {\n o[k] = deepCloneExclude(v, exclude)\n } else o[k] = v\n }\n\n return o\n}\n\n// Merge array, but exclude keys listed in 'excl'\nexport const mergeArrayExclude = (arr, excl = []) => {\n return arr.reduce((acc, curr) => deepMerge(acc, deepCloneExclude(curr, excl)), {})\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 for (const prop in obj) {\n const objProp = obj[prop]\n if (isFunction(objProp)) {\n stringified[prop] = objProp.toString()\n } else if (isObject(objProp)) {\n stringified[prop] = {}\n deepStringify(objProp[prop], stringified[prop])\n } else if (isArray(objProp)) {\n stringified[prop] = []\n objProp.map((v, i) => deepStringify(v, stringified[prop][i]))\n } else stringified[prop] = objProp\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.includes('=>') || objProp.includes('function') || objProp[0] === '(') {\n try {\n const evalProp = eval(objProp) // eslint-disable-line\n stringified[prop] = evalProp\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 = 0\n\n function newId () {\n index++\n return index\n }\n\n return newId\n})()\n\nexport const createSnapshotId = createID\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'\nexport * from './svg'\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 templates: {},\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'\nexport * from './date'\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 }).replaceAll(/\\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 { isString } from \"@domql/utils\"\n\nexport const generateSprite = (icons) => {\n let sprite =\n '<svg aria-hidden=\"true\" width=\"0\" height=\"0\" style=\"position:absolute\">'\n\n for (let key in icons) {\n sprite += icons[key]\n }\n\n sprite += \"</svg>\"\n\n return sprite\n}\n\nconst parseRootAttributes = (htmlString) => {\n if (!isString(htmlString)) {\n return console.warn(`parseRootAttributes: ${htmlString} is not a string`)\n }\n \n let match = htmlString.match(/<svg\\s+(.*?)>/);\n if (!match || !match[1]) {\n return {};\n }\n\n let attrString = match[1];\n let attrs = attrString.match(/(\\S+)=[\"']?((?:.(?![\"']?\\s+(?:\\S+)=|\\s*\\/?[>\"']))+.)[\"']?/gm);\n return attrs.reduce((acc, attr) => {\n let [key, value] = attr.split(\"=\");\n acc[key] = value.replace(/['\"]/g, \"\");\n return acc;\n }, {});\n}\n\nexport const convertSvgToSymbol = (key, code) => {\n const extractAttrs = parseRootAttributes(code)\n const { width, height } = extractAttrs\n \n const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`\n const xmlns = 'http://www.w3.org/2000/svg'\n\n let symbol = code.replace(\"<svg\", \n `<symbol id=\"${key}\" xmlns=\"${xmlns}\" viewBox=\"${viewBox}\"`\n )\n symbol = symbol.replace(/width=\"[^\\\"]*/, \"\")\n symbol = symbol.replace(/height=\"[^\\\"]*/, \"\")\n symbol = symbol.replace(\"</svg\", \"</symbol\")\n return symbol\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\nexport const SVG = {}\nexport const SVG_DATA = {}\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\nexport const setActiveConfig = (def) => {\n return FACTORY.active = FACTORY[def]\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, prefers)\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 templates: {},\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.templates[`@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 { templates } = props\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`\n const headerStyle = templates[headerName]\n templates[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 templates: {},\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 templates: {},\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 { generateSprite, convertSvgToSymbol } from \"../utils\"\nimport { getActiveConfig } from '../factory'\n\nconst DEF_OPTIONS = {\n document: document\n}\n\nexport const setSVG = (val, key) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useSvgSprite) {\n return convertSvgToSymbol(key, val)\n } return val\n}\n\nexport const appendSVGSprite = (LIBRARY, options = DEF_OPTIONS) => {\n const CONFIG = getActiveConfig()\n const svgSpriteDOM = document.createElement('template')\n\n\n const lib = Object.keys(LIBRARY).length ? {} : CONFIG.SVG\n for (let key in LIBRARY) lib[key] = CONFIG.SVG[key]\n \n const SVGsprite = generateSprite(lib)\n svgSpriteDOM.innerHTML = SVGsprite\n\n const doc = options.document || document\n doc.body.appendChild(svgSpriteDOM.content)\n}\n\nexport const setIcon = (val, key) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useIconSprite) {\n return setSVG(val, key)\n } return val\n}\n\nexport const appendIconsSprite = (LIBRARY, options = DEF_OPTIONS) => {\n const CONFIG = getActiveConfig()\n const iconsSpriteDOM = document.createElement('template')\n \n const lib = Object.keys(LIBRARY).length ? {} : CONFIG.ICONS\n for (let key in LIBRARY) lib[key] = CONFIG.ICONS[key]\n \n const SVGsprite = generateSprite(lib)\n iconsSpriteDOM.innerHTML = SVGsprite\n\n const doc = options.document || document\n doc.body.appendChild(iconsSpriteDOM.content)\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 configTemplates = TYPOGRAPHY.templates\n\n configReset.body = {\n ...getMediaTheme('document', `@${CONFIG.globalTheme}`),\n ...configTemplates.body\n }\n configReset.h1 = configTemplates.h1\n configReset.h2 = configTemplates.h2\n configReset.h3 = configTemplates.h3\n configReset.h4 = configTemplates.h4\n configReset.h5 = configTemplates.h5\n configReset.h6 = configTemplates.h6\n }\n\n const { body, ...templates } = TYPOGRAPHY.templates\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 ...(CONFIG.useDocumentTheme ? getMediaTheme('document', `@${CONFIG.globalTheme}`) : {}),\n\n ...templates,\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 setIcon,\n setSVG,\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 VALUE_TRANSFORMERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n icons: setIcon,\n svg: setSVG,\n svg_data: setSameValue,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: 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 (VALUE_TRANSFORMERS[factoryName]) {\n const result = VALUE_TRANSFORMERS[factoryName](value, key)\n FACTORY[key] = result\n return FACTORY\n }\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 {\n version,\n verbose,\n useVariable,\n useReset,\n useSvgSprite,\n useFontImport,\n useIconSprite,\n globalTheme,\n useDocumentTheme,\n ...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 (useFontImport !== undefined) CONFIG.useFontImport = useFontImport\n if (useSvgSprite !== undefined) CONFIG.useSvgSprite = useSvgSprite\n if (useIconSprite !== undefined) CONFIG.useIconSprite = useIconSprite\n if (useDocumentTheme !== undefined) CONFIG.useDocumentTheme = useDocumentTheme\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
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", "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.60",
5
+ "version": "2.10.71",
6
6
  "files": [
7
7
  "src",
8
8
  "dist"
@@ -62,5 +62,5 @@
62
62
  "outputFormat": "commonjs",
63
63
  "includeNodeModules": true
64
64
  },
65
- "gitHead": "97cdca33752e544e05a1bcb6e549ed7c4737106d"
65
+ "gitHead": "95d80dfe4570094c1f17f73ef1e2729397c4ad54"
66
66
  }
package/src/factory.js CHANGED
@@ -31,3 +31,7 @@ export const getActiveConfig = (def) => {
31
31
  }
32
32
  return FACTORY[def || FACTORY.active]
33
33
  }
34
+
35
+ export const setActiveConfig = (def) => {
36
+ return FACTORY.active = FACTORY[def]
37
+ }
@@ -2,8 +2,6 @@
2
2
 
3
3
  import { isString } from "@domql/utils"
4
4
 
5
- const parser = new DOMParser()
6
-
7
5
  export const generateSprite = (icons) => {
8
6
  let sprite =
9
7
  '<svg aria-hidden="true" width="0" height="0" style="position:absolute">'