{"version":3,"file":"elpro-css-styles.cjs.mjs","sources":["../../src/utils/index.js","../../src/utils/unitlessKeys.js","../../src/serialize/serialize.cssToArray.js","../../src/serialize/serialize.object.js","../../src/hash/createHash.js"],"sourcesContent":["// ......................................\r\n////  compose\r\n// ......................................\r\n\r\nexport const compose =\r\n  (...fns) =>\r\n  (arg) =>\r\n    fns.reduceRight((acc, fn) => (fn ? fn(acc) : acc), arg);\r\n\r\n// ......................................\r\n////  partition\r\n// ......................................\r\n\r\nconst accept = ([x, ...xs], fn, index = 0) => {\r\n  if (undef(x)) return [];\r\n  if (fn(x, index)) {\r\n    return [x, ...accept(xs, fn, (index += 1))];\r\n  } else {\r\n    return [...accept(xs, fn, (index += 1))];\r\n  }\r\n};\r\n\r\nconst reject = ([x, ...xs], fn, index = 0) => {\r\n  if (undef(x)) return [];\r\n  if (!fn(x, index)) {\r\n    return [x, ...reject(xs, fn, (index += 1))];\r\n  } else {\r\n    return [...reject(xs, fn, (index += 1))];\r\n  }\r\n};\r\n\r\n// ......................................\r\n////  partition\r\n// ......................................\r\n\r\nexport const partition = (xs, fn) => [accept(xs, fn), reject(xs, fn)];\r\n\r\nexport const def = (x) => typeof x !== 'undefined' && x !== null;\r\nexport const undef = (x) => !def(x);\r\n\r\n//--- pattern\r\nexport const labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\r\nexport const lineBreakPattern = /(\\r\\n|\\n|\\r)/gm;\r\nexport const removeCommentPattern = /\\/\\*[\\s\\S]*?\\*\\//g;\r\nexport const inLineCommentsPattern = /(\\/\\/).*?__\\$__/gm;\r\n\r\n\r\n//--- regex\r\nexport const newRegexExp = (pattern, flag = '') => {\r\n  const regex = new RegExp(pattern, flag);\r\n  regex.lastIndex = 0;\r\n  return regex;\r\n};\r\nexport const regExp = {\r\n  regex: (pattern, flag) => newRegexExp(pattern, flag),\r\n  match: (str, pattern, flag) => str.match(regExp.regex(pattern, flag)) || [],\r\n  test: (str, pattern, flag) => regExp.regex(pattern, flag).test(str),\r\n  exec: (str, pattern, flag) => regExp.regex(pattern, flag).exec(str) || [],\r\n};\r\n\r\n//--- object\r\nexport const ownkey = (obj) => Object.keys(obj)[0];\r\nexport const ownValue = (obj) => Object.values(obj)[0];\r\nexport const arrayOwnProperties = (obj) =>\r\n  isArray(obj) ? obj : Object.keys(obj).map((m) => ({ [m]: obj[m] }));\r\n\r\n//--- remove\r\nexport const removeDoubleSpace = (x) =>\r\n  isArray(x)\r\n    ? x.map((str) => str.replace(/\\s{2,}/g, ' '))\r\n    : x.replace(/\\s{2,}/g, ' ');\r\nexport const removeLabel = (str) => str.replace(labelPattern, '');\r\nexport const removeSpace = (str) => str.split(/\\s+/).join('');\r\nexport const removeLineBreak = (str) => str.replaceAll(lineBreakPattern, '');\r\n\r\n//--- is\r\nexport const isArray = (x) => Array.isArray(x);\r\nexport const isObject = (x) =>\r\n  x != null && !Array.isArray(x) && typeof x === 'object';\r\nexport const isString = (x) => def(x) && typeof x === 'string';\r\nexport const isFunc = (x) => def(x) && typeof x === 'function';\r\nexport const isBrowser = typeof document !== 'undefined';\r\nexport const isPlainObject = (x) =>\r\n  x !== null &&\r\n  typeof x === 'object' &&\r\n  x.constructor.name === Object.name &&\r\n  !('props' in x && x.$$typeof);\r\nexport const isFalsish = (x) =>\r\n  x === undefined || x === null || x === false || x === '';\r\n\r\n//---  Memoize\r\n\r\nexport const memoize = (func, src) => {\r\n  const cache = {};\r\n  return (...args) => {\r\n    const key = JSON.stringify(args);\r\n    if (!cache[key]) {\r\n      cache[key] = func(...args);\r\n    }\r\n    console.log('memodized...', `[ ${src} ]`);\r\n    return cache[key];\r\n  };\r\n};\r\n","\nexport const unitlessKeys = {\n    animationIterationCount: 1,\n    aspectRatio: 1,\n    borderImageOutset: 1,\n    borderImageSlice: 1,\n    borderImageWidth: 1,\n    boxFlex: 1,\n    boxFlexGroup: 1,\n    boxOrdinalGroup: 1,\n    columnCount: 1,\n    columns: 1,\n    flex: 1,\n    flexGrow: 1,\n    flexPositive: 1,\n    flexShrink: 1,\n    flexNegative: 1,\n    flexOrder: 1,\n    gridRow: 1,\n    gridRowEnd: 1,\n    gridRowSpan: 1,\n    gridRowStart: 1,\n    gridColumn: 1,\n    gridColumnEnd: 1,\n    gridColumnSpan: 1,\n    gridColumnStart: 1,\n    msGridRow: 1,\n    msGridRowSpan: 1,\n    msGridColumn: 1,\n    msGridColumnSpan: 1,\n    fontWeight: 1,\n    lineHeight: 1,\n    opacity: 1,\n    order: 1,\n    orphans: 1,\n    tabSize: 1,\n    widows: 1,\n    zIndex: 1,\n    zoom: 1,\n    WebkitLineClamp: 1,\n  \n    // SVG-related properties\n    fillOpacity: 1,\n    floodOpacity: 1,\n    stopOpacity: 1,\n    strokeDasharray: 1,\n    strokeDashoffset: 1,\n    strokeMiterlimit: 1,\n    strokeOpacity: 1,\n    strokeWidth: 1,\n  };\n\n\n  \n  /* https://www.quackit.com/css/at-rules/ */\n  \nexport const CSSPseudo = [\n  ':active',\n  '::after',\n  '::backdrop ',\n  '::before',\n  ':checked',\n  ':default',\n  ':dir',\n  ':disabled',\n  ':empty',\n  ':enabled',\n  ':first-child',\n  ':first-of-type',\n  ':focus',\n  ':fullscreen ',\n  ':hover',\n  ':in-range',\n  ':indeterminate',\n  ':invalid',\n  ':lang',\n  ' :last-child',\n  ':last-of-type',\n  ':not',\n  ':nth-child',\n  ':nth-last-child',\n  ':nth-last-of-type',\n  ':nth-of-type',\n  ':only-child',\n  ':only-of-type',\n  ':optional',\n  ':out-of-range',\n  '::placeholder',\n  ':read-only',\n  ':read-write',\n  ':required',\n  ':root',\n  '::selection',\n  ':scope',\n  ':target',\n  ':valid',\n  ':visited',\n];\n\nexport const CSSatRules =[\n  '@bottom-center',\n  '@bottom-left',\n  '@bottom-left-corner',\n  '@bottom-right',\n  '@bottom-right-corner',\n  '@charset',\n  '@counter-style',\n  '@document',\n  '@font-face',\n  '@font-feature-values',\n  '@import',\n  '@left-bottom',\n  '@left-middle',\n  '@left-top',\n  '@keyframes',\n  '@media',\n  '@namespace',\n  '@page',\n  '@right-bottom',\n  '@right-middle',\n  '@right-top',\n  '@supports',\n  '@top-center',\n  '@top-left',\n  '@top-left-corner',\n  '@top-right',\n  '@top-right-corner', \n]\n\nexport const CSSatRulesDescriptors = [\n  \"additive-symbols\",\n  \"bleed\",\n  \"fallback\",\n  \"font-family\",\n  \"font-feature-settings\",\n  \"font-style\",\n  \"font-weight\",\n  \"font-stretch\",\n  \"font-variant\",\n  \"marks\",\n  \"negative\",\n  \"pad\",\n  \"prefix\",\n  \"range\",\n  \"speak-as\",\n  \"src\",\n  \"suffix\",\n  \"symbols\",\n  \"system\",\n  \"unicode-range\"\n]","import { compose } from '../utils';\n\nconst parseCssArray =\n  (fn) =>\n  ([head, ...tail], result = []) => {\n    let index = 0;\n    if (!head) {\n      return result;\n    }\n    let array = [head, ...tail];\n    const current = head; //.trim()\n    const next = tail[0];\n\n    const [cssString, nextArray] = fn(current, next, index, array);\n\n    // console.log({ current, next, array, cssString, nextArray });\n    result.push(cssString);\n    tail = nextArray ? nextArray : tail;\n\n    return parseCssArray(fn)(tail, result);\n  };\n\n// ......................................\n////  accumulateMultValues\n// ......................................\n\nconst accumulateMultValues = ([head, ...tail], fn, result = []) => {\n  if (!head) {\n    return result;\n  }\n  if (fn(head)) {\n    return accumulateMultValues([], fn, [...result, head]);\n  }\n  return accumulateMultValues(tail, fn, [...result, head]);\n};\n\n// ......................................\n////  declFn\n// ......................................\n\nconst filterArray = (index, limiter, array) => {\n  return array.filter((_, i) => i < index || i > index + limiter);\n};\n\n/*--- declarations with multiple values e.g. border: 2mm rgba(211, 220,50,.8);*/\nconst declFn = (current, next, index, array) => {\n  if (next && current.endsWith(':')) {\n    const slice = array.slice(index + 1);\n    const accumulated = accumulateMultValues(slice, (x) =>\n      x.trim().endsWith(';')\n    );\n\n    const cssString = `${current} ${accumulated.join(' ')}`;\n    const filteredArray = filterArray(index, accumulated.length, array);\n\n    return [cssString, filteredArray];\n  }\n  return [current];\n};\n\n// ......................................\n////  classnamesFn\n// ......................................\n\n/*--- \n classnames with multiple names\n  e.g. .class-1 .class-2 , element attribules .... || @keyframes\n */\nconst classnamesFn = (current, next, index, array) => {\n  //--- ignore atrules for example @media because it doesn't have multiple classes\n  if (\n    current.startsWith('.') ||\n    current.startsWith('&.') ||\n    current.startsWith('&:') ||\n    current.includes('@')\n  ) {\n    if (next && next !== '{') {\n      const slice = array.slice(index + 1);\n      const accumulated = accumulateMultValues(slice, (x) =>\n        x.trim().endsWith('{')\n      ).slice(0, -1);\n\n      const cssString = `${current} ${accumulated.join(' ')}`;\n\n      const filteredArray = filterArray(index, accumulated.length, array);\n      return [cssString, filteredArray];\n    }\n    //--- single clasname\n    return [current];\n  }\n\n  return [current];\n};\n\n// ......................................\n////  stringToArray\n// ......................................\n\nconst stringToArray = (str) =>\n  str\n    .split(' ')\n    .filter(Boolean)\n    .filter((f) => !f.includes('undefined'));\n\n// ......................................\n////  sanitizeArray\n// ......................................\n\nconst sanitizeArray = compose(\n  parseCssArray(classnamesFn),\n  parseCssArray(declFn),\n  stringToArray\n);\n\n// ......................................\n////  css To Array\n// ......................................\n\nexport const cssToArray = (str) => {\n\n  return sanitizeArray(str);\n};\n","import { isFalsish, isFunc, isPlainObject } from '../utils';\nimport { unitlessKeys } from '../utils/unitlessKeys';\nimport { serializeString } from './serialize.string';\n\n\n\nconst isUpper = (c) => c >= 'A' && c <= 'Z';\n\n\n// ......................................\n//// add Unit If Needed\n// ......................................\n\nfunction addUnitIfNeeded(name, value) {\n  if (value == null || typeof value === 'boolean' || value === '') {\n    return '';\n  }\n  if (\n    typeof value === 'number' &&\n    value !== 0 &&\n    !(name in unitlessKeys) &&\n    !name.startsWith('--')\n  ) {\n    return `${value}px`;\n  }\n\n  return String(value).trim();\n}\n\n\n// ......................................\n//// hyphenate\n// ......................................\n\nexport  function hyphenate(string) {\n  let output = '';\n\n  for (let i = 0; i < string.length; i++) {\n    const c = string[i];\n    // Check for CSS variable prefix\n    if (i === 1 && c === '-' && string[0] === '-') {\n      return string;\n    }\n\n    if (isUpper(c)) {\n      output += '-' + c.toLowerCase();\n    } else {\n      output += c;\n    }\n  }\n\n  return output.startsWith('ms-') ? '-' + output : output;\n}\n\n\n// ......................................\n////  obj To CssString\n// ......................................\n\nexport const objToCssString = (obj) => {\n  const rules = [];\n\n  for (const key in obj) {\n    const val = obj[key];\n    if (!obj.hasOwnProperty(key) || isFalsish(val)) continue;\n\n    if ((Array.isArray(val) ) || isFunc(val)) {\n      rules.push(`${hyphenate(key)}:`, val, ';');\n    } else if (isPlainObject(val)) {\n      rules.push(`${key} {`, ...objToCssString(val), '}');\n    } else { \n      rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, val)};`);\n    }\n  }\n\n  return rules.join('');\n};\n\n// ......................................\n////  serialize Object\n// ......................................\n\nexport const serializeObject = (args, classnameRoot) => {\n return serializeString (objToCssString(args), classnameRoot)\n};\n\n\n\n","import { objToCssString } from '../serialize/serialize.object';\nimport { memoize, removeSpace } from '../utils';\n\nexport function murmur2(str) {\n  if (!str) return '0';\n  var h = 0;\n  // Mix 4 bytes at a time into the hash\n  var k,\n    i = 0,\n    len = str.length;\n  for (; len >= 4; ++i, len -= 4) {\n    k =\n      (str.charCodeAt(i) & 0xff) |\n      ((str.charCodeAt(++i) & 0xff) << 8) |\n      ((str.charCodeAt(++i) & 0xff) << 16) |\n      ((str.charCodeAt(++i) & 0xff) << 24);\n\n    k =\n      /* Math.imul(k, m): */\n      (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0xe995) << 16);\n    k ^= /* k >>> r: */ k >>> 24;\n\n    h =\n      /* Math.imul(k, m): */\n      ((k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0xe995) << 16)) ^\n      /* Math.imul(h, m): */\n      ((h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0xe995) << 16));\n  }\n\n  // Handle the last few bytes of the input array\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n        /* Math.imul(h, m): */\n        (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0xe995) << 16);\n  }\n\n  // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n  h ^= h >>> 13;\n  h =\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0xe995) << 16);\n\n  return ((h ^ (h >>> 15)) >>> 0).toString(36);\n}\n\n// ......................................\n////  createHash\n// ......................................\n\nconst _createHash = (string) => {\n  let charArray = string.split('');\n  const hash = charArray.reduce((hash, char) => {\n    return hash + char.charCodeAt(0) || hash;\n  }, 0);\n  return hash < 0 ? (hash * -1).toString() : hash.toString();\n};\n\nconst hashInObject = (value) => {\n  const hashKey = _createHash(removeSpace(Object.keys(value).join('')));\n  const hashValue = _createHash(removeSpace(Object.values(value).join('')));\n  const hash = `${hashKey}-${hashValue}`;\n  return hash.toString();\n};\n\nconst completeHash = (value) => {\n  if (typeof value === 'object') {\n    const hash = hashInObject(value);\n    const target = objToCssString(value);\n    return {\n      uniqueKey: murmur2(removeSpace(target)),\n      context: hash,\n      value,\n    };\n  }\n  const hash = hashInObject({ css: value });\n  const target = value;\n  return {\n    uniqueKey: murmur2(removeSpace(target)),\n    context: hash,\n    value,\n  };\n};\n\nconst createHashMemoized = memoize((string) => {\n  return murmur2(string);\n}, 'hash');\n\n// ......................................\n////  createHash\n// ......................................\n\nexport const createHash = (value, opt = false) => {\n  if (!value) {\n    return '';\n  }\n  if (!opt) {\n    const string = typeof value === 'string' ? value : objToCssString(value);\n    return createHashMemoized(removeSpace(string));\n  }\n  return completeHash(value);\n};\n\nexport const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h, x) => {\n  let i = x.length;\n\n  while (i) {\n    h = (h * 33) ^ x.charCodeAt(--i);\n  }\n\n  return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x) => {\n  return phash(SEED, x);\n};\n"],"names":["compose","_len","arguments","length","fns","Array","_key","arg","reduceRight","acc","fn","def","x","removeSpace","str","split","join","isFunc","isPlainObject","_typeof","constructor","name","Object","$$typeof","isFalsish","undefined","memoize","func","src","cache","_len2","args","_key2","key","JSON","stringify","apply","console","log","concat","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","parseCssArray","_ref","_ref2","_toArray","head","tail","slice","result","index","array","_toConsumableArray","current","next","_fn","_fn2","_slicedToArray","cssString","nextArray","push","accumulateMultValues","_ref3","_ref4","filterArray","limiter","filter","_","i","declFn","endsWith","accumulated","trim","filteredArray","classnamesFn","startsWith","includes","stringToArray","Boolean","f","isUpper","c","addUnitIfNeeded","value","String","hyphenate","string","output","toLowerCase","objToCssString","obj","rules","val","hasOwnProperty","isArray","murmur2","h","k","len","charCodeAt","toString","_createHash","charArray","hash","reduce","char","hashInObject","hashKey","keys","hashValue","values","completeHash","target","uniqueKey","context","css","createHashMemoized","createHash","opt"],"mappings":"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"}