{"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","_defineProperty","Object","assign","appendClassName","isSSR","window","document","createElement","serverMap","getStyles","map","css","serverStyles","concat","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","arguments","undefined","appendElement","appendModifier","value","_typeof","currStyles","nextProps","useProps","currProps","valueType","useKey"],"sources":["../../../src/core/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\n/* eslint-disable no-undef */\nconst clearStyles = () => {\n  serverStyles = '';\n};\n/* eslint-disable no-undef */\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  // biome-ignore lint/style/noArguments:\n  const len = arguments.length;\n\n  let useProps;\n\n  for (let i = len - 1; i > 0; i--) {\n    // biome-ignore lint/style/noArguments:\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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"}