{"version":3,"file":"sstyled.mjs","names":["cn","getStyles","reshadowGetStyles","RESHADOW_ID","isSSR","window","document","createElement","serverMap","map","css","serverStyles","id","insert","code","hash","concat","container","getElementById","head","appendChild","addEventListener","type","innerHTML","merge","s1","s2","Object","entries","reduce","acc","key","value","startsWith","assign","getClassAndVars","styles","name","props","getPropValue","substring","mod","modValue","split","propValue","undefined","Boolean","reshadowMap","WeakMap","reshadowToShadow","obj","has","get","shadowStyle","style","n","replace","set","sstyled","classes","keys","length","className","_css","Error","SHADOW_STYLES","Symbol"],"sources":["../../src/styled/sstyled.tsx"],"sourcesContent":["import cn from 'classnames';\nimport type React from 'react';\n\n/** @ts-ignore */\nimport { getStyles as reshadowGetStyles } from './reshadow-core';\n\nconst RESHADOW_ID = '__reshadow__';\n\nconst isSSR = !(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nconst serverMap = reshadowGetStyles().map as any;\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\nfunction insert(code: any, hash: any) {\n  const id = 'reshadow-'.concat(hash);\n\n  if (isSSR) {\n    serverMap[id] = code;\n    return;\n  }\n\n  let container = document.getElementById(RESHADOW_ID);\n\n  if (!container) {\n    container = document.createElement('object');\n    container.id = RESHADOW_ID;\n\n    if (document.head) {\n      document.head.appendChild(container);\n    } else {\n      document.addEventListener('DOMContentLoaded', function () {\n        document.head.appendChild(container as any);\n      });\n    }\n  }\n\n  let css = document.getElementById(id);\n\n  if (!css) {\n    css = document.createElement('style');\n    css.id = id;\n    // @ts-ignore\n    css.type = 'text/css';\n    container.appendChild(css);\n  }\n\n  css.innerHTML = code;\n}\n\nfunction merge(s1 = {}, s2 = {}) {\n  return Object.entries(s2).reduce((acc: any, [key, value]: any) => {\n    if (key.startsWith('@') || key.startsWith('--')) {\n      acc[key] = value;\n    } else {\n      acc[key] = cn(acc[key], value);\n    }\n    return acc;\n  }, Object.assign({}, s1));\n}\n\nfunction getClassAndVars(styles: any, name: any, props: any) {\n  function getPropValue(key: any, props: any) {\n    return props[`use:${key}`] ?? props[key];\n  }\n\n  return Object.entries(styles).reduce(\n    (acc, [key, value]) => {\n      if (key.startsWith('--')) {\n        // @ts-ignore\n        acc[1][value] = getPropValue(key.substring(2), props);\n      } else if (name === key) {\n        // @ts-ignore\n        acc[0][value] = true;\n      } else {\n        const [mod, modValue] = key.split('=');\n        const propValue = getPropValue(mod, props);\n        if (modValue === undefined) {\n          // @ts-ignore\n          acc[0][value] = Boolean(propValue ?? false);\n        } else {\n          // @ts-ignore\n\n          acc[0][value] = propValue == modValue;\n        }\n      }\n      return acc;\n    },\n    [{}, {}],\n  );\n}\n\nconst reshadowMap = new WeakMap();\n\nfunction reshadowToShadow(obj: any) {\n  if (reshadowMap.has(obj)) {\n    return reshadowMap.get(obj);\n  }\n\n  const shadowStyle = Object.entries(obj).reduce((style: any, [name, value]) => {\n    let n = name;\n    if (name.startsWith('__')) {\n      n = name.replace(/^__/, '');\n    } else if (name.startsWith('_')) {\n      n = name.replace(/^_/, '').replace('_', '=');\n    }\n    style[n] = value;\n    return style;\n  }, {});\n\n  reshadowMap.set(obj, shadowStyle);\n\n  return shadowStyle;\n}\n\nfunction sstyled(styles = {}): ((ReactNode: any) => React.ReactNode) & {\n  cn(name: string, props: any): any;\n} {\n  // @ts-ignore\n  return {\n    cn(name, props) {\n      const [classes, style] = getClassAndVars(reshadowToShadow(styles), name, props);\n\n      if (Object.keys(classes).length) {\n        props.className = cn(props.className, classes);\n      }\n\n      if (Object.keys(style).length) {\n        props.style = Object.assign(style, props.style);\n      }\n\n      return props;\n    },\n  };\n}\n\nsstyled.css = function (_css: any): { [key: string]: string } {\n  throw new Error('Enable babel plugin');\n};\nsstyled.insert = insert;\nsstyled.merge = merge;\nsstyled.getStyles = getStyles;\nsstyled.SHADOW_STYLES = Symbol('SHADOW_STYLES');\n\nexport { sstyled };\n"],"mappings":"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","ignoreList":[]}