{"version":3,"file":"reshadow-core.mjs","names":["_Symbol","key","Symbol","KEYS","__id__","__store__","__prev__","__use__","__elements__","__style__","__styles__","__css__","__hash__","__classProp__","index","use","obj","result","create","args","len","length","newStyle","id","vars","uses","i","style","Object","assign","appendClassName","isSSR","window","document","createElement","serverMap","getStyles","map","css","serverStyles","clearStyles","RESHADOW_ID","appendChildToDocumentHead","element","head","appendChild","code","hash","container","getElementById","addEventListener","type","innerHTML","styles","stack","styled","elem","curr","pop","set","newStyles","push","USE_PREFIX","ELEMENT_PREFIX","MOD_PREFIX","MOD_SEPARATOR","parseElement","name","replace","parseAttribute","split","className","cn","appendElement","appendModifier","value","undefined","currStyles","nextProps","arguments","useProps","currProps","valueType","useKey"],"sources":["../../src/styled/reshadow-core.ts"],"sourcesContent":["/**\n * This is source form @reshadow/core@0.0.1\n * Put it here, because we can't use the version from the package in ESM builds.\n * The package is not update for 3 years and we have plans to remove them. So, this tmp copy version is acceptable\n */\n// @ts-nocheck\nconst _Symbol = (key: string) => (typeof Symbol !== 'undefined' ? Symbol(key) : key);\n\nconst KEYS = {\n  __id__: _Symbol('__id__'),\n  __store__: _Symbol('__store__'),\n  __prev__: _Symbol('__prev__'),\n  __use__: _Symbol('__use__'),\n  __elements__: '__elements__',\n  __style__: '$$style',\n  __styles__: 'styles',\n\n  __css__: '__css__',\n  __hash__: '__hash__',\n\n  /**\n   * This prop is needed for the interop between different component frameworks\n   */\n  __classProp__: 'className',\n};\n\nlet index = 0;\n\nconst use = (obj) => {\n  const result = {};\n  result[KEYS.__use__] = obj;\n  return result;\n};\n\nconst create = (args) => {\n  const len = args.length;\n  let newStyle = {};\n  let id = '';\n  let vars = null;\n  let uses = null;\n\n  for (let i = 0; i < len; i++) {\n    const style = args[i];\n\n    if (!style) continue;\n\n    if (!style[KEYS.__id__]) {\n      style[KEYS.__id__] = ++index;\n      style[KEYS.__store__] = {\n        ['_' + style[KEYS.__id__]]: style,\n      };\n    }\n\n    id += '_' + style[KEYS.__id__];\n\n    if (style[KEYS.__style__]) {\n      vars = Object.assign(vars || {}, style[KEYS.__style__]);\n    }\n\n    if (style[KEYS.__use__]) {\n      uses = Object.assign(uses || {}, style[KEYS.__use__]);\n    }\n\n    if (style[KEYS.__store__][id]) {\n      newStyle = style[KEYS.__store__][id];\n      continue;\n    }\n\n    newStyle = Object.create(newStyle);\n\n    for (const key in style) {\n      if (key in KEYS) continue;\n\n      newStyle[key] = appendClassName(style[key], newStyle[key]);\n    }\n\n    style[KEYS.__store__][id] = newStyle;\n    newStyle[KEYS.__id__] = index;\n    newStyle[KEYS.__store__] = {\n      ['_' + style[KEYS.__id__]]: newStyle,\n    };\n  }\n\n  if (vars || use) {\n    newStyle = Object.create(newStyle);\n    newStyle[KEYS.__style__] = vars;\n    newStyle[KEYS.__use__] = uses;\n  }\n\n  return newStyle;\n};\n\nconst isSSR = !(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nconst serverMap = {};\n\nconst getStyles = () => ({\n  map: serverMap,\n  get css() {\n    let serverStyles = '';\n    for (const id in serverMap) {\n      serverStyles += `<style type=\"text/css\" id=\"${id}\">${serverMap[id]}</style>`;\n    }\n    return serverStyles;\n  },\n});\n\nconst clearStyles = () => {\n  serverStyles = '';\n};\n\nconst RESHADOW_ID = '__reshadow__';\n\nconst appendChildToDocumentHead = (element) => document.head.appendChild(element);\n\nconst css = (code, hash) => {\n  const id = `reshadow-${hash}`;\n\n  if (isSSR) {\n    serverMap[id] = code;\n    return;\n  }\n\n  let container = document.getElementById(RESHADOW_ID);\n  if (!container) {\n    container = document.createElement('object');\n    container.id = RESHADOW_ID;\n\n    if (document.head) {\n      appendChildToDocumentHead(container);\n    } else {\n      document.addEventListener('DOMContentLoaded', () => {\n        appendChildToDocumentHead(container);\n      });\n    }\n  }\n\n  let css = document.getElementById(id);\n  if (!css) {\n    css = document.createElement('style');\n    css.id = id;\n    css.type = 'text/css';\n    container.appendChild(css);\n  }\n\n  css.innerHTML = code;\n};\n\nlet styles = {};\nlet style;\nconst stack = [];\n\nconst styled = (elem) => {\n  const curr = stack.pop() || [];\n\n  styles = curr[0] || styles;\n  style = curr[1] || style;\n\n  styled[KEYS.__styles__] = styles;\n  styled[KEYS.__style__] = style;\n\n  return elem;\n};\n\nstyled[KEYS.__styles__] = styles;\n\nconst set = (args, newStyle) => {\n  const newStyles = create(args);\n\n  stack.push([styles, style]);\n\n  styles = newStyles;\n  style = newStyle;\n  if (styles[KEYS.__style__]) {\n    style = style ? Object.assign({}, style, styles[KEYS.__style__]) : styles[KEYS.__style__];\n  }\n  styled[KEYS.__styles__] = styles;\n  styled[KEYS.__style__] = style;\n};\n\nconst USE_PREFIX = 'use--';\nconst ELEMENT_PREFIX = '__';\nconst MOD_PREFIX = '_';\nconst MOD_SEPARATOR = '_';\n\nconst parseElement = (name) => name.replace(ELEMENT_PREFIX, '');\n\nconst parseAttribute = (name) => name.replace(MOD_PREFIX, '').split(MOD_SEPARATOR);\n\nconst appendClassName = (className, cn = '') => {\n  if (className) {\n    cn += (cn ? ' ' : '') + className;\n  }\n  return cn;\n};\nconst appendElement = (styles, key, cn = '') => appendClassName(styles[ELEMENT_PREFIX + key], cn);\n\nconst appendModifier = (styles, key, value, cn = '') => {\n  // isFalsy\n  if (value === undefined || value === null || value === false || value === '') return cn;\n\n  cn = appendClassName(styles[MOD_PREFIX + key], cn);\n\n  // value should be only primitive\n  if (typeof value === 'boolean' || typeof value === 'object' || typeof value === 'function')\n    return cn;\n\n  cn = appendClassName(styles[MOD_SEPARATOR + key + MOD_SEPARATOR + value], cn);\n\n  return cn;\n};\n\nfunction map(element) {\n  const currStyles = styled[KEYS.__styles__];\n  const nextProps = {};\n  let cn = appendElement(currStyles, element);\n  let vars = null;\n  const uses = currStyles[KEYS.__use__] || {};\n\n  const len = arguments.length;\n\n  let useProps;\n\n  for (let i = len - 1; i > 0; i--) {\n    // eslint-disable-next-line prefer-rest-params\n    const currProps = arguments[i];\n\n    if (!currProps) continue;\n\n    useProps = useProps || currProps[KEYS.__use__];\n\n    if (!vars && KEYS.__style__ in currProps) {\n      vars = styled[KEYS.__style__];\n    }\n\n    for (const key in currProps) {\n      if (key === KEYS.__use__ || key === KEYS.__style__ || key in nextProps) {\n        continue;\n      }\n\n      const value = currProps[key];\n\n      cn = appendModifier(currStyles, key, value, cn);\n\n      const valueType = typeof value;\n\n      if (valueType === 'string' || valueType === 'boolean' || valueType === 'number') {\n        const useKey = key + '_' + value;\n        if (key + '_' + true in uses || useKey in uses) {\n          cn = appendModifier(currStyles, USE_PREFIX + key, value, cn);\n\n          if (uses[useKey]) {\n            continue;\n          }\n        }\n      }\n\n      nextProps[key] = value;\n    }\n  }\n\n  if (useProps) {\n    for (const key in useProps) {\n      const value = useProps[key];\n      cn = appendModifier(currStyles, USE_PREFIX + key, value, cn);\n    }\n  }\n\n  cn = appendClassName(nextProps[KEYS.__classProp__], cn);\n\n  if (cn) nextProps[KEYS.__classProp__] = cn;\n\n  if (vars) {\n    nextProps.style =\n      typeof style === 'string'\n        ? vars + (nextProps.style || '')\n        : Object.assign({}, vars, nextProps.style || {});\n  }\n\n  return nextProps;\n}\n\nexport {\n  styled,\n  use,\n  css,\n  create,\n  set,\n  map,\n  // '__css__': css,\n  // '__extract__': () => ({\n  //     [KEYS.__styles__]: styled[[KEYS.__styles__]],\n  //     [KEYS.__style__]: styled[[KEYS.__style__]],\n  // }),\n\n  // ssr\n  getStyles,\n  clearStyles,\n  // utils\n  appendModifier,\n  appendElement,\n  appendClassName,\n  parseAttribute,\n  parseElement,\n  // constants\n  MOD_SEPARATOR,\n  MOD_PREFIX,\n  ELEMENT_PREFIX,\n  USE_PREFIX,\n  KEYS,\n  RESHADOW_ID,\n};\n"],"mappings":"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","ignoreList":[]}