{"version":3,"file":"elpro-css-styles.esm.mjs","sources":["../../src/utils/index.js","../../src/cache/index.js","../../src/css/create.rules.js","../../src/styled/styled.css.js","../../src/cache/cacheProvider/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-instance.js","../../src/styled/styled.createElement.js","../../src/styled/styled.base.js","../../src/styled/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","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","import { createRules } from '../css/create.rules';\nimport { removeDoubleSpace } from '../utils';\n\n// ......................................\n////  apply Func Case Function\n// ......................................\n\nexport const applyFuncCaseFunction = (props) => (value) => {\n  return typeof value === 'function' ? value(props) : value;\n};\n\n// ......................................\n////  access To Values\n// ......................................\n\nconst accessToValues = (obj, fn) => {\n  if (Array.isArray(obj)) {\n    for (let i = 0; i < obj.length; i++) {\n      accessToValues(obj[i], fn);\n    }\n  } else if (typeof obj === 'object') {\n    for (const key in obj) {\n      obj[key] = fn(obj[key]);\n      accessToValues(obj[key], fn);\n    }\n  }\n\n  return obj;\n};\n\n// ......................................\n////  css Object\n// ......................................\n\n//--- props => parameter applied in function in 'createElementWithComponent'\nexport const applyFuncObject = (obj) => (props) => {\n  return accessToValues(obj, applyFuncCaseFunction(props));\n};\n\n// ......................................\n////  apply function in string case\n// ......................................\n\nconst irregularCommas = (str) => {\n  return str\n    .replaceAll(/(;){1,}/gm, '; ')\n    .replaceAll(/;\\s{1,};/gm, '; ')\n    .replaceAll('};', '}')\n    .trim();\n};\n\n// ......................................\n//// apply function To Values\n// ......................................\n\nconst applyFunctionToValues = (props, fnValues, args) => {\n  const newValues = fnValues.reduce((acc, fn, index) => {\n    //--- applying the function by passing the props\n    const rules = createRules(fn(props));\n\n    if (!rules) {\n      return (acc = acc.replace('__F__', ''));\n    }\n\n    const str = rules.endsWith(';') ? `${rules}  ` : `${rules};`;\n    return (acc = acc.replace('__F__', str));\n  }, args);\n\n  //--- Fixes irregular commas after applying the function\n  return removeDoubleSpace(irregularCommas(newValues));\n};\n\n// ......................................\n////  apply function in string case\n// ......................................\n\nexport const applyFuncString = (rules, values) => (props) => {\n  //--- props => parameter applied in function in 'createElementWithComponent'\n  if (!values.length) {\n    return rules;\n  }\n  //--- only applies the function if there are functions\n  const fnValues = values.flat().filter((f) => typeof f === 'function');\n\n  if (!fnValues.length) {\n    return rules;\n  }\n\n  //--- applying the function passing the props\n  return applyFunctionToValues(props, fnValues, rules);\n};\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport { createContext, useContext } from 'react';\n\nconst isBrowser = typeof document !== 'undefined';\n\n\n// ......................................\n////  Cache Style Context\n// ......................................\n\nexport const CacheStyleContext = createContext();\n\n// ......................................\n////  CACHE CONTEXT\n// ......................................\n\nexport const CacheProvider = CacheStyleContext.Provider;\n\n// ......................................\n////  USE CACHE CONTEXT\n// ......................................\n\nexport let useCacheStyle = function fn(props) {\n  return useContext(CacheStyleContext);\n};\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","\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 React from 'react';\n\nimport {\n  isArray,\n  isObject,\n  removeDoubleSpace,\n  removeLineBreak,\n} from '../utils';\n\nimport {cache, createCache } from '.';\n\nimport { applyFuncObject, applyFuncString } from './styled.css';\nimport { createRules } from '../css/create.rules';\nimport { useCacheStyle } from '../cache/cacheProvider';\nimport { createInstanceWithCache } from '../css/create-instance';\n\n//----------- STYLED\n\n// ......................................\n////  create Element With Component (utils)\n// ......................................\n\nconst attributes = (attrs) => {\n  const { prefixer, className, ..._attrs } = attrs;\n  return _attrs\n    ? {\n        prefixer: prefixer ? prefixer : '',\n        className: className\n          ? isArray(className)\n            ? className.join(' ')\n            : className\n          : '',\n        attrs: _attrs ? _attrs : {},\n      }\n    : {};\n};\n\n// ......................................\n////  create Element With Component\n// ......................................\n\nfunction createElementWithComponent(tag) {\n  const componentCreator = (getRules, attrs) => {\n    const StyledComponent = React.forwardRef(function StyledComponent(\n      props,\n      ref\n    ) {\n      const options = { key: cache.key };\n\n      //--- ???? prefixer, attributes etc ...\n      const { prefixer, className, attrs: _attrs } = attributes(attrs);\n\n      const rules = typeof getRules === 'function' ? getRules(props) : getRules;\n\n      const { css } = createInstanceWithCache(cache, options);\n\n      const classNameRoot = css(rules);\n\n      const { ref: refProps, className: classNameProps, children, key } = props;\n\n      return React.createElement(\n        `${tag}`,\n        {\n          ref,\n          className: `${classNameRoot} ${className} ${\n            classNameProps ? classNameProps : ''\n          } `.trim(),\n          ..._attrs,\n        },\n        children\n      );\n    });\n    return StyledComponent;\n  };\n  return componentCreator;\n}\n\n// ......................................\n////  create Element With Object\n// ......................................\n\nexport const createElementWithObject = (tag, args, attr, fnsValues) => {\n  const obj = args;\n  return createElementWithComponent(tag)(applyFuncObject(obj), attr);\n};\n\n// ......................................\n////  create Element With String\n// ......................................\n\nexport const createElementWithString = (tag, args, attr, fnsValues) => {\n  const rules = createRules(args, fnsValues);\n\n  //--- case function in string css\n  return createElementWithComponent(tag)(applyFuncString(rules, fnsValues), {});\n};\n\n// ......................................\n////  create Component Fn\n// ......................................\n\nexport const createComponentFn = (component, fn) => {\n  const ComponentCreator = ({ children, ...props }) => {\n  \n  \n    //--- wrapped CacheStyleProvider defined in '_app.js'\n    const cacheContext = useCacheStyle();\n    const cache =\n    cacheContext && cacheContext.cache ? cacheContext.cache : createCache();\n      \n    //--- fn:  applyFunc\n    const rules = fn(props);\n \n    const { css } = createInstanceWithCache(cache);\n\n    const classname = css(rules);\n    return component({ children, className: classname });\n  };\n\n  return ComponentCreator;\n};\n","import { isObject } from '../utils';\nimport {\n  createComponentFn,\n  createElementWithObject,\n  createElementWithString,\n} from './styled.createElement';\nimport { applyFuncObject, applyFuncString } from './styled.css';\nimport { createRules } from '../css/create.rules';\n\n// ......................................\n////  attrs\n// ......................................\n\nfunction attrs(tag) {\n  return function attrs(attr) {\n    //--- parameters passed to styledV2\n    return function (args, ...values) {\n      if (isObject(args)) {\n        return createElementWithObject(tag, args, attr, []);\n      } else {\n        return createElementWithString(tag, args, attr, values);\n      }\n    };\n  };\n}\n\n// ......................................\n////  tagFn\n// ......................................\n\nfunction tagFn(tag) {\n  //--- parameters passed to styledV2\n  return function tags(args, ...values) {\n    if (isObject(args)) {\n      return createElementWithObject(tag, args, {}, []);\n    } else {\n      return createElementWithString(tag, args, {}, values);\n    }\n  };\n}\n\nconst defineProperty = (obj, prop) => {\n  Object.defineProperty(obj, 'attrs', {\n    value: attrs(prop),\n    enumerable: true,\n    writable: true,\n  });\n};\n\nlet target = {};\nconst tagElement = (tag) => {\n  target[tag] = tagFn(tag);\n  defineProperty(target[tag], tag);\n  return target;\n};\n\n// ......................................\n////  styledV2Fn\n// ......................................\n\nfunction styledV2Fn(component) {\n  //--- parameters passed to styledV2\n  return function (args, ...values) {\n    const rules = createRules(args, values);\n\n    if (isObject(args)) {\n      return createComponentFn(component, applyFuncObject(rules));\n    } else {\n      return createComponentFn(component, applyFuncString(rules, values));\n    }\n  };\n}\n\nconst handler = {\n  get(target, tag) {\n    target = tagElement(tag);\n    return target[tag];\n  },\n  apply: function (target, thisArg, argumentsList) {\n    return target(argumentsList[0]);\n  },\n};\n\n// ......................................\n////  styled V2\n// ......................................\n\nlet styledV2;\n\nstyledV2 = new Proxy(styledV2Fn, handler);\n\nexport { styledV2 };\n","import createCacheStyle from '../cache';\nimport { styledV2 } from './styled.base';\n\nlet cache = createCacheStyle;\n\nconst createCache = (options, src) => {\n  cache = createCacheStyle(options, src);\n  return cache;\n};\n\nexport { createCache, cache, styledV2 };\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","replacementInLineComments","p1","p2","p3","preserveHTTP","substring","includes","removeInLineComments","removeMultLineComments","removeComments","removeMarks","marks","breakLine","mark","insertMarks","createValuesMarks","v","finalizeRules","interpolations","argsMarks","strRaw","String","raw","createRules","valuesMarks","rules","applyFuncCaseFunction","props","accessToValues","applyFuncObject","irregularCommas","applyFunctionToValues","fnValues","newValues","endsWith","applyFuncString","filter","f","CacheStyleContext","createContext","Provider","useCacheStyle","useContext","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","replaceable","replacementCriticalDecl","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","_","declFn","accumulated","filteredArray","classnamesFn","stringToArray","Boolean","sanitizeArray","cssToArray","multSlectors","_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","compiledChildren","compiled","atrulesClassnames","regularClassnames","compile","root","_compile","serializeString","isUpper","c","addUnitIfNeeded","hyphenate","output","toLowerCase","objToCssString","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","createCssStringToStyle","processStyles","eCache","processInstance","ccsInstance","createInstanceWithCache","attributes","attrs","prefixer","className","_attrs","_objectWithoutProperties","_excluded","createElementWithComponent","tag","componentCreator","getRules","StyledComponent","React","forwardRef","ref","_attributes","_createInstanceWithCa","classNameRoot","classNameProps","createElementWithObject","fnsValues","createElementWithString","createComponentFn","component","ComponentCreator","_excluded2","cacheContext","createCache","_createInstanceWithCa2","tagFn","defineProperty","enumerable","writable","tagElement","styledV2Fn","_len3","_key3","handler","get","thisArg","argumentsList","styledV2","Proxy"],"mappings":"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"}