{"version":3,"file":"elpro-css-styles.cjs.mjs","sources":["../../src/utils/index.js","../../src/cache/index.js","../../src/utils/unitlessKeys.js","../../src/sanitize/sanitize.critical.chars.js","../../src/sanitize/sanitize.prettify.js","../../src/sanitize/sanitize.js","../../src/serialize/serialize.cssToArray.js","../../src/serialize/serialize.replace.js","../../src/serialize/serialize.tokenizer.js","../../src/serialize/serialize.string.js","../../src/serialize/serialize.object.js","../../src/hash/createHash.js","../../src/serialize/serialize.js","../../src/style-sheet/style-sheet-insertRules.js","../../src/css/create.rules.js","../../src/css/create-instance.js","../../src/css/index.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","import { newRegexExp,  ownValue,  ownkey, regExp, removeDoubleSpace, removeLabel } from '../utils';\n\nconst isBrowser = typeof document !== 'undefined';\n\nexport const insertDocument = (cache) => {\n  const date = new Date();\n  cache.document = {\n    isBrowser,\n    environment: isBrowser ? 'client' : 'server',\n    created_at: date.toLocaleString('pt-BR', {\n      timeZone: 'America/Sao_Paulo',\n    }),\n    id: `${cache.key}-${date.getTime() + Math.random()}`,\n  };\n};\n\n//---\nconst stylesToCssString = (styles) => {\n  return styles.reduce((acc, prev) => {\n    const key = ownkey(prev);\n    const classname = key.startsWith('.') ? key : `.${key}`;\n    const value = ownValue(prev);\n    const css = ` ${classname} { ${removeLabel(value)} }`;\n    acc += css;\n    return acc.trim();\n  }, '');\n};\n\nexport const registerStyles = (cache, serialized) => {\n  if (!serialized.styles) {\n    return cache;\n  }\n\n  //--- 'serialized.name' contains classnameHash\n  cache.registered = {\n    ...cache.registered,\n    [serialized.name]: removeDoubleSpace(stylesToCssString(serialized.styles)),\n  };\n};\n\n// ......................................\n////  insert Styles\n// ......................................\n\nexport const insertStyles = (cache, serialized) => {\n  const name = serialized.name;\n  const propKey = name.startsWith('.') ? name.slice(1) : name;\n  const classnameHash = propKey.replace(`${cache.key}-`, '');\n  serialized.styles.forEach((element) => {\n    const key = ownkey(element);\n    const value = ownValue(element);\n    cache.insert(cache, {\n      name: classnameHash,\n      styles: { [key]: value },\n    });\n  });\n\n  registerStyles(cache, {\n    name: classnameHash,\n    styles: serialized.styles,\n  });\n\n  insertDocument(cache);\n  return cache;\n};\n\n// ......................................\n////  insert Styles Server\n// ......................................\n\nexport const insertStylesServer = (cache, serialized) => {\n  let insert = [];\n  registerStyles(cache, serialized);\n  serialized.styles.forEach((element) => {\n    const key = Object.keys(element)[0];\n    insert.push({\n      name: key.startsWith('.') ? key.slice(1) : key,\n      styles: element,\n    });\n  });\n\n  insertDocument(cache);\n  const _cache = cache.insert(cache, {\n    name: serialized.name,\n    styles: insert,\n  });\n  return _cache;\n};\n\n/*---e.g. [\"elpro\", \"_E_\", \".elpro-165cwbw\", \"elpro-165cwbw\" ]*/\nconst getClassnameHash = (attr) => {\n  const arr = attr.split(' ');\n  const key = arr[0];\n  const str = arr[2] || arr[1];\n  const hash = str\n    .replace(`${key}-`, '')\n    .match(/[0-9a-z]+/)[0]\n    .trim();\n\n  return hash;\n};\n\n// ......................................\n////  Global cache\n// ......................................\n\n//--- Global cache\nlet insertedStyled = isBrowser ? {} : [];\nlet insertedCss = isBrowser ? {} : [];\n\n// ......................................\n////  processCreateCacheStyle\n// ......................................\n\nconst processCreateCacheStyle = (key, inserted, src) => {\n  let registered = {};\n  let insert;\n  let compact = false;\n  const nodesToHydrate = [];\n\n  if (isBrowser) {\n    const ssrStyles = document.querySelectorAll(\n      `style[data-e-style^=\"${key} \"]`\n      );\n\n    let classnameHash = undefined;\n\n    Array.prototype.forEach.call(ssrStyles, (node, i) => {\n      const dataAttribute = node.getAttribute('data-e-style');\n\n      const cssText = node.innerHTML;\n      classnameHash = getClassnameHash(dataAttribute);\n \n      //--- for 'Process Instance' to identify whether it exists in cache or not\n      registered[classnameHash] = registered[classnameHash]\n        ? (registered[classnameHash] += ` ${cssText}`)\n        : ` ${cssText}`;\n      registered[classnameHash] = registered[classnameHash].trim();\n      inserted = { ...inserted, [classnameHash]: true };\n\n      compact = true;\n      nodesToHydrate.push(node);\n    });\n    // client\n    insert = (cache, serialized) => {\n      if (!cache.inserted[serialized.name]) {\n        compact = true;\n        inserted = { ...cache.inserted, [serialized.name]: true };\n        cache.inserted = inserted;\n        //--- saving to global cache\n        if (key === 'css') {\n          insertedCss = cache.inserted;\n        } else {\n          insertedStyled = cache.inserted;\n        }\n        return cache;\n      }\n    };\n  } else {\n    // server\n    insert = (cache, serialized) => {\n      if (!cache.compact) {\n        //--- prevents duplicate insertion\n        const hasCach = cache.inserted.findIndex(\n          (elel) => elel.name === serialized.name\n        );\n        if (hasCach >= 0) {\n          return cache;\n        }\n\n        inserted = serialized.styles.flat();\n        cache.inserted = [...cache.inserted, ...inserted];\n        //--- saving to global cache\n        if (key === 'css') {\n          insertedCss = cache.inserted;\n        } else {\n          insertedStyled = cache.inserted;\n        }\n\n        return cache;\n      }\n    };\n  }\n\n  const cache = {\n    src,\n    document: {},\n    key: key,\n    compact,\n    sheet: { tags: nodesToHydrate },\n    registered: registered,\n    inserted: inserted,\n    insert,\n  };\n  insertDocument(cache);\n\n  return cache;\n};\n\n// ......................................\n////  createCacheStyle\n// ......................................\n\nconst createCacheStyle = (options, src) => {\n  const key = options && options.key ? options.key : 'css';\n  return src === '_CSS'\n    ? processCreateCacheStyle(key, insertedCss, src)\n    : processCreateCacheStyle(key, insertedStyled, src);\n};\n\nexport default createCacheStyle;\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]","\nimport { removeDoubleSpace, removeLineBreak } from \"../utils\";\n\n// ......................................\n////  critical Decl Char\n// ......................................\n\n/*--- prevents replacing class names with colons\n      e.g. &.classname p:not(.classic)\n*/\nconst preventClassnameColons = (str) => {\n    const index = str.indexOf('{');\n    const noReplaceable = str.substring(0, index);\n    const replaceable = str.substring(index);\n    return `${noReplaceable}${replaceable\n      .replaceAll(':', ':  ')\n      .replaceAll(';', ';  ')}`;\n  };\n  \n  const replacementCriticalDecl = (match, p1, p2, p3) => {\n    if (match.includes('{')) {\n      return preventClassnameColons(match);\n    }\n    return match.replaceAll(':', ':  ').replaceAll(';', ';  ');\n  };\n  \n  // ......................................\n  ////  critical Class Char\n  // ......................................\n  \n  const criticalDeclChar = (str) => {\n    return str.replaceAll(/[a-z\\-\\s]+:.*?;/gm, replacementCriticalDecl);\n  };\n  \n  // ......................................\n  ////  critical Class Char\n  // ......................................\n  \n  const criticalClassChar = (str) => {\n    return str\n      .replaceAll(/\\{|\\}/g, ' $& ')\n      .replaceAll('&', '  &');\n  };\n  \n  // ......................................\n  ////  sanitize Critical Chars\n  // ......................................\n  \n  export const sanitizeCriticalChars = (str) => {\n    const string = removeDoubleSpace(\n      removeLineBreak(str).trim()\n    );\n  \n    return criticalDeclChar(criticalClassChar(string));\n  };","import { regExp, removeDoubleSpace, removeSpace } from '../utils';\n\n// ......................................\n////  prettify Attributes\n// ......................................\n\nconst attributePattern = /\\(.*?\\)|\\[.*?\\]/gm;\n\nconst replacementPrettifyAttrs = (match, p1, p2) => {\n  if (match.includes('[')) {\n    return removeSpace(match);\n    //--- match.includes('(')\n  } else {\n    //--- hyphenated compound words  e.g. min-width:\n    if (regExp.test(match, /[a-z]-[a-z]/gm)) {\n      return removeSpace(match);\n    }\n    // no replace\n    return match;\n  }\n};\n\n/*--- prevents substitution in case of declaration value\n   e.g. translate3d(0, 100, 0)  , calc(100% - 30px) \n   and in case of classes with attributes or atrules\n   e.g. @media (min-width:760px)\n   */\nconst prettifyAttributes = (str) => {\n  return str.replaceAll(attributePattern, replacementPrettifyAttrs);\n};\n\n\n// ......................................\n////  prettify Atrules\n// ......................................\n\nconst replacementPrettifyAtrules = (match, p1, p2) => {\nreturn removeSpace(match).replace('{', ' {')\n}\n\nconst prettifyAtrules = (str) => {\n  return str.replaceAll(/@.*?\\{/gm, replacementPrettifyAtrules);\n};\n\n// ......................................\n////  prettify\n// ......................................\n\nexport const prettify = (str) => {\n  const string = removeDoubleSpace(str)\n    .replaceAll(' ;', ';')\n    .replaceAll(' :', ':')\n    .replaceAll(' (', '(')\n    .replaceAll('( ', '(')\n    .replaceAll(' )', ')')\n    .replaceAll(' [', '[')\n    .replaceAll('[ ', '[')\n    .replaceAll(' ]', ']')\n    .replaceAll(/(;){1,}/gm, '; ')\n    .replaceAll(/;\\s{1,};/gm, '; ')\n    .replaceAll('};', '}');\n\n  const attrPrettified = prettifyAttributes(string);\n  const atrulesPrettified =prettifyAtrules(attrPrettified)   \n  return removeDoubleSpace(atrulesPrettified).trim();\n};\n","import { isArray, removeDoubleSpace } from '../utils';\nimport { sanitizeCriticalChars } from './sanitize.critical.chars';\nimport { prettify } from './sanitize.prettify';\n\n// ......................................\n////  sanitizeString\n// ......................................\n\nconst sanitizeString = (str) => {\n  const sanitized = sanitizeCriticalChars(str);\n \n  const string = prettify(sanitized);\n\n  return string\n};\n\n// ......................................\n////  sanitize\n// ......................................\n\nexport const sanitize = (x) => {\n  if (!x) {\n    return isArray(x) ? [] : '';\n  }\n\n  return isArray(x) ? x.map((_x) => sanitizeString(_x)) : sanitizeString(x);\n};\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 { partition, regExp, removeDoubleSpace } from '../utils';\n\n\n// ......................................\n////    Mult Slectors\n// ......................................\n\nconst multSlectors = (props) => {\n  // console.log({props});\n  const [classnameRoot, nameRoot, ...ignore] = props;\n  //--- multiSelectors\n  if (nameRoot.includes(',')) {\n    const split = nameRoot.split(',');\n    const [h, ...t] = split;\n    const replaceH = h.includes('&')\n      ? `${h.replaceAll('&', classnameRoot)}`\n      : `${classnameRoot} ${h}`;\n\n    const replaceT = t.map((m) =>\n      m.includes('&')\n        ? `, ${m.replaceAll('&', classnameRoot)}`\n        : `, ${classnameRoot} ${m}`\n    );\n    const multiSelectors = removeDoubleSpace(\n      `${replaceH}${replaceT.join(' ')}`\n    ).trim();\n\n    return multiSelectors;\n  }\n};\n\n// ......................................\n////   replace Props Mult Slectors\n// ......................................\n\nconst replacePropsMultSlectors = (props) => {\n  const [propsRoot, propsMult] = partition(\n    props,\n    (elel, indx) => !elel.includes(',')\n  );\n  const propsRootReplaced = replaceProps.sigleSelectors(propsRoot).join(' ');\n\n  const propsMultReplaced = [multSlectors([propsRootReplaced, ...propsMult])];\n\n  return [propsRootReplaced, propsMultReplaced];\n};\n\n// ......................................\n////   replace Props\n// ......................................\n\nlet count = 0;\nconst sigleSelectors = (props, result = '') => {\n  count += 1;\n  if (props.length === 1) {\n    return props;\n  }\n\n  const [a, b, ...tail] = props;\n\n  if (count === 20 || !a || !b) {\n    return [result];\n  }\n\n  const replace = b.includes('&') ? b.replaceAll('&', a) : `${a} ${b}`;\n\n  return sigleSelectors([replace, ...tail], replace);\n};\n\n// ......................................\n////   replace Props\n// ......................................\n\nconst replaceSigleSelectors = (props) => {\n  return sigleSelectors(props);\n};\n\nexport const replaceProps = {\n  sigleSelectors: (props) => replaceSigleSelectors(props),\n  multSlectors: (props) => replacePropsMultSlectors(props),\n};\n\n// ......................................\n////   replaceName\n// ......................................\n\nexport const replaceName = (name, classname) => {\n  const ampersandName = Array.isArray(classname)\n    ? classname.join(' ')\n    : classname;\n  if (name.includes('&:')) {\n    return `${ampersandName.replaceAll('&', '')}${name.replace(\n      '&',\n      ''\n    )}`.trim();\n  }\n  return name.replaceAll('&', '').trim();\n};\n","// ......................................\n////  extract To Chunks\n// ......................................\n\nexport const extractToChunks = (array, fn) => {\n  let nameIndex = 0;\n  let name = undefined;\n  let open = [];\n  let close = [];\n  let closure = false;\n  let indexArray = 0;\n\n  array.forEach((element, index) => {\n    if (!closure) {\n      if (fn(element, index, array)) {\n        nameIndex = index;\n        name = element;\n      }\n      if (name) {\n        if (element.includes('{')) {\n          open.push(index);\n        }\n        if (element.includes('}')) {\n          close.push(index);\n        }\n      }\n      //--- closure class\n      if (open.length > 0) {\n        if (open.length === close.length) {\n          closure = true;\n          indexArray = index;\n        }\n      }\n    }\n  });\n  open = open[0];\n  close = close[close.length - 1];\n\n  return {\n    array,\n    index: indexArray,\n    name,\n    nameIndex,\n    open,\n    close,\n    props: [name],\n    value: array.filter((_, index) => index > open && index < close),\n    remaining: array.filter((_, index) => index < nameIndex || index > close),\n  };\n};\n\n// ......................................\n////  create Tokens\n// ......................................\n\nconst createTokens = (array, indexArray = -1, result = [], cssArray) => {\n  indexArray += 1;\n  const [head, ...tail] = array;\n  if (!head) {\n    return result;\n  }\n\n  const next = tail[0] ? tail[0] : '';\n\n  if (next.includes('{')) {\n    const classname = head;\n    const chunks = extractToChunks(\n      array,\n      (element, index, array) => element === classname\n    );\n    \n    result = [...result, chunks];\n    return createTokens(chunks.remaining, -1, result, cssArray);\n  }\n  return createTokens(tail, indexArray, result, cssArray);\n};\n\n// ......................................\n////  tokenizer\n// ......................................\n\nexport const tokenizer = (cssArray) => {\n  let result = [];\n  const tokens = createTokens(cssArray, -1, [], cssArray);\n\n  return tokens;\n};\n","import sanitize from '../sanitize';\nimport { memoize, partition } from '../utils';\n\nimport { cssToArray } from './serialize.cssToArray';\nimport { replaceProps, replaceName } from './serialize.replace';\nimport { extractToChunks, tokenizer } from './serialize.tokenizer';\n\n// ......................................\n////  hasChildren\n// ......................................\n\nexport const hasChildren = (obj) => {\n  return obj.children.length ? true : false;\n};\n\n// ......................................\n////   tokenizer Root Children Child\n// ......................................\n\nlet count = 0;\nconst tokenizerRootChildrenChild = (child, props, result = []) => {\n  if (count === 30) {\n    return result;\n  }\n\n  const value = child.value;\n  const tokenized = tokenizer(value);\n  const rootChildren = createRoot(tokenized, value, props);\n  props = [...props, child.name].flat();\n\n  //--- children\n  if (hasChildren(rootChildren)) {\n    return tokenized\n      .map((m) => {\n        return tokenizerRootChildrenChild(\n          m,\n          props,\n          [\n            ...result,\n            {\n              ...rootChildren,\n              type: '',\n              name: child.name,\n              props: props,\n            },\n          ].flat()\n        );\n      })\n      .flat();\n  } else {\n    //--- root\n    return [\n      ...result.flat(),\n      {\n        ...rootChildren,\n        type: '',\n        name: child.name,\n        props: props,\n      },\n    ].flat();\n  }\n};\n\nconst getNameAtrules = (props) => {\n  return props.filter((f) => f.includes('@'))[0];\n};\n\n// ......................................\n////  tokenizerRootChildren\n// ......................................\n\nconst tokenizerRootChildren = (child, tokenized, rootChildren) => {\n  const children = tokenized\n    .map((m) => tokenizerRootChildrenChild(m, rootChildren.props))\n    .flat();\n\n  return [\n    ...children.map((child) => {\n      const props = child.props.flat();\n      const name = props.join(' ').includes('@')\n        ? getNameAtrules(props)\n        : child.name;\n      return {\n        ...child,\n        props,\n        name: name,\n        type: 'children-root-children',\n      };\n    }),\n  ];\n};\n\n// ......................................\n////  processChildren\n// ......................................\n\nconst processChildren = (child, classnameRoot) => {\n  const { value, name } = child;\n  const classname = [`${classnameRoot}`, name];\n\n  if (\n    name.includes('@') &&\n    !name.includes('@media') &&\n    !name.includes('@document')\n  ) {\n    return [\n      {\n        children: [],\n        name: name,\n        props: classname, //[classnameRoot],\n        type: 'children-root-atrule',\n        value: child.value,\n      },\n    ];\n  }\n\n  //--- root with children\n  const tokenized = tokenizer(value);\n  const rootChildren = createRoot(tokenized, value, classname);\n  // console.log({child, tokenized, rootChildren, value});\n  if (hasChildren(rootChildren)) {\n    const rootChildrenChild = tokenizerRootChildren(\n      child,\n      tokenized,\n      rootChildren\n    );\n\n    const props = rootChildren.props.flat();\n    const name = child.name;\n\n    return [\n      {\n        ...rootChildren,\n        children: [],\n        name: name,\n        props: props,\n        type: 'children-root',\n      },\n      ...rootChildrenChild,\n    ].flat();\n  } else {\n    //--- root without children\n    const props = rootChildren.props.flat();\n    const _name = child.name;\n\n    return [\n      {\n        ...rootChildren,\n        name: _name,\n        props: props,\n        type: 'children-root',\n      },\n    ].flat();\n  }\n};\n\n// ......................................\n////  value Root\n// ......................................\n\nconst valueRoot = (tokenized, init) =>\n  tokenized.reduce((acc, tokens) => {\n    acc = acc.replaceAll(`${tokens.name} { ${tokens.value.join(' ')} }`, '');\n    return acc;\n  }, init);\n\n// ......................................\n////   create Root\n// ......................................\n\nconst createRoot = (tokenized, array, props) => {\n  const init = array.join(' ');\n  props = props.flat();\n  const name = props[props.length - 1];\n  const value = valueRoot(tokenized, init).split(' ').filter(Boolean);\n\n  return {\n    children: tokenized.map((child) => processChildren(child, name)).flat(),\n    name: name,\n    props: props,\n    type: 'root',\n    value: value,\n  };\n};\n\n// ......................................\n////  parseProps\n// ......................................\n\nconst parseProps = (childrens, classnameRoot) => {\n  return childrens.reduce((acc, child) => {\n    const propsArray = child.props.map((str) => str.trim());\n\n    if (propsArray.length === 1) {\n      return [...acc, child];\n    }\n\n    if (child.name.includes('@')) {\n      const props = replaceProps.sigleSelectors(\n        propsArray.filter((f) => !f.includes('@'))\n      );\n\n      const name = child.name; //replaceName(child.name, classnameRoot);\n\n      return [...acc, { ...child, props, name }];\n    }\n\n    //--- mult selectors\n    if (child.name.includes(',')) {\n      const [propsRoot, propsMult] = replaceProps.multSlectors(propsArray);\n\n      const props = propsMult;\n      const name = replaceName(child.name, propsRoot);\n\n      return [...acc, { ...child, props, name }];\n    }\n\n    //--- sigle selectors\n    const props = replaceProps.sigleSelectors(propsArray);\n    const name = replaceName(child.name, classnameRoot);\n\n    return [...acc, { ...child, props, name }];\n  }, []);\n};\n\n// ......................................\n////  flat Atrules\n// ......................................\n\nconst flatAtrules = (atrules) => {\n  const childrenValue = atrules.reduce((acc, prev) => {\n    const name = prev.name;\n    const classname = prev.props.join(' ');\n    const value = prev.value.join(' ');\n    const str = `${classname} { ${value} } `;\n    acc[name] = acc[name]\n      ? (acc[name] += [...new Set([str])])\n      : (acc[name] = [...new Set([str])]);\n    return acc;\n  }, {});\n\n  return Object.entries(childrenValue).map(([name, value]) => {\n    const atruleValue = Array.isArray(value)\n      ? value.map((v) => v.trim())\n      : [value.trim()];\n    return {\n      children: [],\n      name,\n      props: [],\n      type: '@media',\n      value: atruleValue,\n    };\n  });\n};\n\n// ......................................\n////  flat Atrules\n// ......................................\n\nconst compiledChildren = (children, classnameRoot) => {\n  const compiled = parseProps(children, classnameRoot);\n  const [atrulesClassnames, regularClassnames] = partition(\n    compiled,\n    (elel, indx) => elel.name.includes('@') && !elel.name.includes('@keyframes')\n  );\n\n  return [...regularClassnames, ...flatAtrules(atrulesClassnames)];\n};\n\n// ......................................\n////  compile\n// ......................................\n\nconst compile = (cssArray, classnameRoot) => {\n  //--- an array of existing classes in css template strings\n  const tokenized = tokenizer(cssArray);\n\n  //--- root class created with classnameRoot\n  const root = createRoot(tokenized, cssArray, [`.${classnameRoot}`]);\n\n  //--- classes belonging to root class\n  const childrens = compiledChildren(root.children, classnameRoot);\n\n  const compiled = [{ ...root, children: [] }, ...childrens];\n\n  return compiled;\n};\n\n// ......................................\n////  compiled (memoize)\n// ......................................\n\nconst compiled = memoize((cssString, classnameRoot) => {\n  const string = sanitize(cssString);\n\n  const cssArray = cssToArray(string);\n  const _compile = compile(cssArray, [classnameRoot]);\n\n  return _compile;\n}, 'compile');\n\n// ......................................\n////  serialize String\n// ......................................\n\nexport const serializeString = (cssString, classnameRoot = 'css') => {\n  return compiled(cssString, classnameRoot);\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","import {\n  arrayOwnProperties,\n  regExp,\n  removeDoubleSpace,\n} from '../utils/index.js';\nimport { serializeObject } from './serialize.object.js';\nimport { serializeString } from './serialize.string.js';\n\n// ......................................\n////  prettier\n// ......................................\n\nconst prettierString = (str) => removeDoubleSpace(str).trim();\n\nexport const prettier = (obj) => {\n  return Object.entries(obj).reduce((acc, [key, value]) => {\n    return {\n      ...acc,\n      [prettierString(key)]: prettierString(value),\n    };\n  }, {});\n};\n\nconst getLabelHash = (str) => {\n  const match = str.split(' ');\n  return match[0];\n};\n\n// ......................................\n////  resolver Atrules\n// ......................................\n\n// const _resolverAtrules = ([current, ...tail], result = {}) => {\n//   if (!current) {\n//     return result;\n//   }\n//   const [key, value] = current;\n\n//   const match = regExp.match(key, /@(.*?)\\)/gm, '');\n//   const matchString = key.replace(match[0], '').replaceAll(' :', ':');\n\n//   const stringKey = removeDoubleSpace(matchString.trim());\n\n//   if (stringKey.includes('@')) {\n//     return _resolverAtrules([[stringKey, value], ...tail], result);\n//   } else {\n//     const labelHash = getLabelHash(key);\n//     const str = ` ${stringKey} { label: ${labelHash}; ${value} } `;\n\n//     result[match[0]] = result[match[0]]\n//       ? (result[match[0]] += str)\n//       : (result[match[0]] = str);\n//     return _resolverAtrules(tail, result);\n//   }\n// };\n\n// ......................................\n////  resolver Keyframes\n// ......................................\n\nconst resolverKeyframes = (array) => {\n  return array.reduce((acc, [key, value]) => {\n    if (!value) {\n      return acc;\n    }\n    const propArray = key.split(' ');\n    const prop = `${propArray[propArray.length - 2]}`;\n    const rulename = `${propArray[propArray.length - 1]}`;\n    const labelHash = getLabelHash(key);\n    const str = `label: ${labelHash}; ${value} `;\n\n    acc[`@keyframes ${rulename}`] = acc[`@keyframes ${rulename}`]\n      ? (acc[`@keyframes ${rulename}`] += str)\n      : (acc[`@keyframes ${rulename}`] = str);\n    return acc;\n  }, {});\n};\n\n// ......................................\n////  resolver Rulename\n// ......................................\n\nconst resolverRulename = (array) => {\n  return array.reduce((acc, [key, value]) => {\n    const labelHash = getLabelHash(key);\n    const k = key.includes('@') ? key.match(/@.*/gm)[0].trim() : key;\n    return { ...acc, [k]: `label: ${labelHash}; ${value}` };\n  }, {});\n};\n\nconst resolverAtrules = (atrules) => {\n\n  return atrules.reduce((acc, [key, value]) => {\n    const labelHash = getLabelHash(value);\n    return {\n      ...acc,\n      [key]: `label: ${labelHash}; ${value}`,\n    };\n  }, {});\n};\n\n// ......................................\n////  resolver\n// ......................................\n\nconst resolver = (styles) => {\n\n  const serialized = styles.reduce((acc, prev) => {\n    const key = prev.name.includes('@') ? prev.name : prev.props.join(' ');\n    const value = prev.value.join(' ');\n   \n    return {\n      ...acc,\n      [key]: value,\n    };\n  }, {});\n\n  //--- rules\n  const rules = Object.entries(serialized).reduce(\n    (acc, [key, value]) => {\n  \n      const prop = regExp.test(key, /@(.*?)\\)/gm, '')\n        ? 'atrule'\n        : regExp.test(key, /@keyframes/gm, '')\n        ? 'keyframes'\n        : 'rulename';\n\n      acc[prop] = { ...acc[prop], [key]: value };\n      return acc;\n    },\n    {\n      rulename: {},\n      atrule: {},\n      keyframes: {},\n    }\n  );\n\n  const rulenames = resolverRulename(Object.entries(rules.rulename));\n  const atrules = resolverAtrules(Object.entries(rules.atrule));\n  const keyframes = resolverKeyframes(Object.entries(rules.keyframes));\n  \n  return prettier({ ...rulenames, ...atrules, ...keyframes });\n};\n\n// ......................................\n////  serializeResolver\n// ......................................\n\nconst serializeResolver = (styles) => arrayOwnProperties(resolver(styles));\n\n// ......................................\n////  serialize\n// ......................................\n\nexport const serialize = (args, classnameRoot) => {\n\n  return typeof args === 'string'\n    ? {\n        name: classnameRoot,\n        styles: serializeResolver(serializeString(args, classnameRoot)),\n      }\n    : {\n        name: classnameRoot,\n        styles: serializeResolver(serializeObject(args, classnameRoot)),\n      };\n};\n","const isBrowser = typeof document !== 'undefined';\n\n// ......................................\n////  create Style Element\n// ......................................\n\nconst createElement = (cache, name) => {\n  let node = document.createElement('style');\n  node.setAttribute('data-e-style', `${cache.key} ${name}`);\n  if (cache.nonce !== undefined) {\n    node.setAttribute('nonce', cache.nonce);\n  }\n  document.head.appendChild(node);\n  node.setAttribute('data-s', '');\n  return node;\n};\n\nconst insertRules = (sheet, cache, name) => {\n  const node = createElement(cache, name);\n  node.appendChild(document.createTextNode(sheet));\n};\n\nconst styleSheet = (cache, name, styleSheets) => {\n  styleSheets.map((sheet) => insertRules(sheet, cache, name));\n};\n\n// ......................................\n////  create Style sheet\n// ......................................\n\nexport const insertStyleSheet = (cache, styleSheets) => {\n  if (isBrowser) {\n    let arr = [];\n    const ssrStyles = document.querySelectorAll(\n      `style[data-e-style^=\"${cache.key} \"]`\n    );\n    Array.prototype.forEach.call(ssrStyles, (node, i) => {\n      const array = node.innerHTML.split(' ');\n      const _name = array[0] ? array[0].trim() : array[0];\n      arr.push(`${_name}`);\n    });\n\n    if (arr.includes(`.${styleSheets.name}`)) {\n      return;\n    }\n\n    styleSheet(cache, styleSheets.name, styleSheets.styles);\n  }\n};\n","import {\n  isObject,\n  removeDoubleSpace,\n  removeCommentPattern,\n  inLineCommentsPattern,\n} from '../utils';\n\n// ......................................\n////   Patterns\n// ......................................\n\n// ......................................\n////  remove Comment\n// ......................................\n\nconst replacementInLineComments = (str) => (match, p1, p2, p3) => {\n  const preserveHTTP = str.substring(p2 - 10, p2);\n  return preserveHTTP.includes('http') ? match : '';\n};\n\n//---  e.g. // ...COMMENTS\nconst removeInLineComments = (str) => {\n  return str.replaceAll(inLineCommentsPattern, replacementInLineComments(str));\n};\n\n//---  e.g. /* COMMENTS */\nconst removeMultLineComments = (str) => {\n  return str.replaceAll(removeCommentPattern, '');\n};\n\n// ......................................\n////  remove Comment\n// ......................................\n\n//---  single-line or multi-line\nexport const removeComments = (str) => {\n  /*--- remove all comments  */\n  return removeInLineComments(removeMultLineComments(`__$__${str}__$__`));\n};\n\n// ......................................\n////  insert Marks\n// ......................................\n\nconst removeMarks = (str, marks) => {\n  return str.replaceAll(marks, '');\n};\n\nconst breakLine = (str, mark) => {\n  return str\n    .replaceAll('\\n', '  \\n  ')\n    .replaceAll('\\\\n', '  \\\\n  ')\n    .replaceAll('\\n', mark)\n    .replaceAll('\\r', mark)\n    .replaceAll('\\\\n', mark);\n};\n\nconst insertMarks = (args) => {\n  return Array.isArray(args)\n    ? args.map((str) => breakLine(str, '__$__'))\n    : breakLine(args, '__$__');\n};\n\nconst createValuesMarks = (values) => {\n  return values.flat().map((v) => (typeof v === 'function' ? '__F__' : v));\n};\n\nconst finalizeRules = (str) => {\n  return removeDoubleSpace(removeMarks(removeComments(str), '__$__')).trim();\n};\n\nconst interpolations = (args, values) => {\n  const argsMarks = insertMarks(args);\n  const strRaw = String.raw({ raw: argsMarks }, ...values);\n\n  return finalizeRules(strRaw);\n};\n\n// ......................................\n////  create Rules\n// ......................................\n\nexport const createRules = (args, ...values) => {\n  values = Array.isArray(values) ? values.flat() : [values].flat();\n  if (!args) {\n    return '';\n  }\n  if (values.flat().length) {\n    if (isObject(args)) {\n      return args;\n    } else {\n      const valuesMarks = createValuesMarks(values);\n      const rules = interpolations(args, valuesMarks);\n      return rules;\n    }\n  } else {\n    const rules = interpolations(args, values);\n    return rules;\n  }\n};\n","\nimport createCacheStyle, {\n  insertStyles,\n  insertStylesServer,\n} from '../cache';\nimport { createHash } from '../hash/createHash';\nimport { serialize } from '../serialize/serialize';\nimport { insertStyleSheet } from '../style-sheet/style-sheet-insertRules';\n\nimport { ownValue , ownkey, removeDoubleSpace, removeLabel} from '../utils';\nimport { createRules } from './create.rules';\n\n// ......................................\n////  utils\n// ......................................\n\nconst isBrowser = typeof document !== 'undefined';\n\n// ......................................\n////  create Css String To Style\n// ......................................\n\n//--- creates the css string that will be inserted in the style tag\nexport const createCssStringToStyle = (array) => {\n  return array.map((m) => {\n    const key = ownkey(m);\n    const classname = key.startsWith('@') ? key : `${key}`;\n    const value = ownValue(m);\n    const str = `${classname} { ${removeLabel(value)} }`;\n    return removeDoubleSpace(str);\n  });\n};\n\n// ......................................\n////  process Styles\n// ......................................\n\nconst processStyles = (cache, serialized) => {\n  if (isBrowser) {\n    //--- insertStyles\n    insertStyles(\n      cache,\n      {\n        name: serialized.name,\n        styles: serialized.styles,\n      },\n      false\n    );\n\n    //--- createStyleSheet\n    insertStyleSheet(cache, {\n      name: serialized.name,\n      styles: createCssStringToStyle(serialized.styles),\n    });\n\n    console.log('[CLIENT]: INSERTED...', { serialized, eCache: cache });\n  } else {\n    //--- insertStylesServer (cache.inserted is an array on the server)\n    insertStylesServer(\n      cache,\n      {\n        name: serialized.name,\n        styles: serialized.styles,\n      },\n      false\n    );\n\n    console.log('          ');\n    // console.log(\n    //   `   [SERVER]: INSERTED...`,\n    //   JSON.stringify({ serialized, eCache: cache }, null, 2)\n    // );\n  }\n\n  return serialized.name.startsWith('.')\n    ? serialized.name.slice(1)\n    : serialized.name;\n};\n\n//--- debug\nconst processInstanceDebug = (cache, rules, classnameRoot) => {\n  const serialized = serialize(rules, classnameRoot);\n  console.log({\n    processInstance: serialized,\n    rules,\n    cache,\n  });\n};\n\n// ......................................\n////  process Instance\n// ......................................\n\nconst processInstance = (cache, rules, classnameRoot) => {\n  if (isBrowser) {\n    // //--- debug\n    // // processInstanceDebug(cache, rules, classnameRoot);\n    // // return classnameRoot;\n\n    //--- Because in cache inserted the key is just the hash\n    const classnameHash = classnameRoot.replace(`${cache.key}-`, '');\n\n    //--- client\n    if (cache.inserted && cache.inserted[classnameHash]) {\n      console.log('[CLIENT]: CACHE...', { classnameRoot, eCache: cache });\n      return classnameRoot;\n    } else {\n      const serialized = serialize(rules, classnameRoot);\n      return processStyles(cache, serialized);\n    }\n  } else {\n    //--- server\n    if (classnameRoot.startsWith('css-')) {\n      return classnameRoot;\n    }\n\n    const serialized = serialize(rules, classnameRoot);\n    return processStyles(cache, serialized);\n  }\n};\n\n// ......................................\n////  ccsInstance\n// ......................................\n\nconst ccsInstance = (cache, args, values) => {\n  const key = cache.key;\n  const rules = createRules(args, values);\n\n  const hash = createHash(rules);\n\n  const classnameRoot = `${key}-${hash}`;\n\n  return processInstance(cache, rules, classnameRoot);\n};\n\n// ......................................\n////  create Instance ('css')\n// ......................................\n\nlet createInstance = (options) => {\n  let cache = createCacheStyle(options, '_CSS');\n\n  let css = (args, ...values) => {\n    const classname = ccsInstance(cache, args, values);\n\n    return classname;\n  };\n\n  return { css, cache };\n};\n\n// ......................................\n////  create Instance With Cache by STYLED-V2\n// ......................................\n\nexport const createInstanceWithCache = (cache, options) => {\n  cache.key = cache.key\n    ? cache.key\n    : options && options.key\n    ? options.key\n    : 'css';\n\n  let css = (args, ...values) => {\n    const classname = ccsInstance(cache, args, values);\n\n    return classname;\n  };\n\n  return { css, cache };\n};\n\nexport default createInstance;\n","import createInstance from './create-instance';\n\nexport const { css, cache } = createInstance( { key: 'css' });\n"],"names":["compose","_len","arguments","length","fns","Array","_key","arg","reduceRight","acc","fn","accept","_ref","_ref2","_toArray","x","xs","slice","index","undefined","undef","concat","_toConsumableArray","reject","_ref3","_ref4","partition","def","labelPattern","lineBreakPattern","removeCommentPattern","inLineCommentsPattern","newRegexExp","pattern","flag","regex","RegExp","lastIndex","regExp","match","str","test","exec","ownkey","obj","Object","keys","ownValue","values","arrayOwnProperties","isArray","map","m","_defineProperty","removeDoubleSpace","replace","removeLabel","removeSpace","split","join","removeLineBreak","replaceAll","isObject","_typeof","isFunc","isPlainObject","constructor","name","$$typeof","isFalsish","memoize","func","src","cache","_len2","args","_key2","key","JSON","stringify","apply","console","log","isBrowser","document","insertDocument","date","Date","environment","created_at","toLocaleString","timeZone","id","getTime","Math","random","stylesToCssString","styles","reduce","prev","classname","startsWith","value","css","trim","registerStyles","serialized","registered","_objectSpread","insertStyles","propKey","classnameHash","forEach","element","insert","insertStylesServer","push","_cache","getClassnameHash","attr","arr","hash","insertedStyled","insertedCss","processCreateCacheStyle","inserted","compact","nodesToHydrate","ssrStyles","querySelectorAll","prototype","call","node","i","dataAttribute","getAttribute","cssText","innerHTML","hasCach","findIndex","elel","flat","sheet","tags","createCacheStyle","options","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","preventClassnameColons","indexOf","noReplaceable","substring","replaceable","replacementCriticalDecl","p1","p2","p3","includes","criticalDeclChar","criticalClassChar","sanitizeCriticalChars","string","attributePattern","replacementPrettifyAttrs","prettifyAttributes","replacementPrettifyAtrules","prettifyAtrules","prettify","attrPrettified","atrulesPrettified","sanitizeString","sanitized","sanitize","_x","parseCssArray","head","tail","result","array","current","next","_fn","_fn2","_slicedToArray","cssString","nextArray","accumulateMultValues","filterArray","limiter","filter","_","declFn","endsWith","accumulated","filteredArray","classnamesFn","stringToArray","Boolean","f","sanitizeArray","cssToArray","multSlectors","props","_props","classnameRoot","nameRoot","_split","h","t","replaceH","replaceT","multiSelectors","replacePropsMultSlectors","_partition","indx","_partition2","propsRoot","propsMult","propsRootReplaced","replaceProps","sigleSelectors","propsMultReplaced","count","_props2","a","b","replaceSigleSelectors","replaceName","ampersandName","extractToChunks","nameIndex","open","close","closure","indexArray","remaining","createTokens","cssArray","_array","chunks","tokenizer","tokens","hasChildren","children","tokenizerRootChildrenChild","child","tokenized","rootChildren","createRoot","type","getNameAtrules","tokenizerRootChildren","processChildren","rootChildrenChild","_name","valueRoot","init","parseProps","childrens","propsArray","_replaceProps$multSle","_replaceProps$multSle2","flatAtrules","atrules","childrenValue","Set","entries","atruleValue","v","compiledChildren","compiled","atrulesClassnames","regularClassnames","compile","root","_compile","serializeString","isUpper","c","addUnitIfNeeded","String","hyphenate","output","toLowerCase","objToCssString","rules","val","hasOwnProperty","serializeObject","murmur2","k","len","charCodeAt","toString","_createHash","charArray","char","hashInObject","hashKey","hashValue","completeHash","target","uniqueKey","context","createHashMemoized","createHash","opt","prettierString","prettier","getLabelHash","resolverKeyframes","propArray","rulename","labelHash","resolverRulename","_ref5","_ref6","resolverAtrules","_ref7","_ref8","resolver","_ref9","_ref10","prop","atrule","keyframes","rulenames","serializeResolver","serialize","createElement","setAttribute","nonce","appendChild","insertRules","createTextNode","styleSheet","styleSheets","insertStyleSheet","replacementInLineComments","preserveHTTP","removeInLineComments","removeMultLineComments","removeComments","removeMarks","marks","breakLine","mark","insertMarks","createValuesMarks","finalizeRules","interpolations","argsMarks","strRaw","raw","createRules","valuesMarks","createCssStringToStyle","processStyles","eCache","processInstance","ccsInstance","createInstance","_createInstance"],"mappings":"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"}