{"version":3,"file":"jsx-runtime.cjs","names":["resolveCssPropClass","useContext","TypeStylesContext","resolveHashClass","ReactFragment","reactJsx","reactJsxs"],"sources":["../src/jsx-runtime.ts"],"sourcesContent":["import { useContext, type ElementType, type ReactNode } from 'react';\nimport { jsx as reactJsx, jsxs as reactJsxs, Fragment as ReactFragment } from 'react/jsx-runtime';\nimport type { CSSProperties } from 'typestyles';\nimport { resolveCssPropClass } from './css-prop';\nimport { TypeStylesContext } from './context';\nimport { resolveHashClass } from './resolve-hash-class';\nimport type { WithCssProp } from './types';\n\nfunction processCssProp<P extends Record<string, unknown>>(\n  props: WithCssProp<P>,\n  hashClass: (properties: CSSProperties, label?: string) => string,\n): P {\n  if (props.css == null) {\n    return props as P;\n  }\n\n  const { css, className, ...rest } = props;\n  const nextProps = {\n    ...rest,\n    className: resolveCssPropClass(hashClass, css, className),\n  } as unknown as P;\n\n  return nextProps;\n}\n\nfunction wrapJsx<P extends Record<string, unknown>>(\n  factory: typeof reactJsx,\n  type: ElementType,\n  props: WithCssProp<P>,\n  key?: React.Key,\n): React.ReactElement {\n  const styles = useContext(TypeStylesContext);\n\n  if (props.css != null && styles == null) {\n    throw new Error(\n      '[@typestyles/react] The `css` prop requires a `TypeStylesProvider` with a styles instance. ' +\n        'Wrap your app in `<TypeStylesProvider styles={api}>` (from `createTypeStyles()`), or use the Babel plugin for zero-runtime css props.',\n    );\n  }\n\n  const nextProps = styles ? processCssProp(props, resolveHashClass(styles)) : (props as P);\n  return factory(type, nextProps, key);\n}\n\nexport const Fragment = ReactFragment;\n\nexport function jsx<P extends Record<string, unknown>>(\n  type: ElementType,\n  props: WithCssProp<P>,\n  key?: React.Key,\n): React.ReactElement {\n  return wrapJsx(reactJsx, type, props, key);\n}\n\nexport function jsxs<P extends Record<string, unknown>>(\n  type: ElementType,\n  props: WithCssProp<P>,\n  key?: React.Key,\n): React.ReactElement {\n  return wrapJsx(reactJsxs, type, props, key);\n}\n\nexport type { ReactNode };\n"],"mappings":";;;;;;AAQA,SAAS,eACP,OACA,WACG;CACH,IAAI,MAAM,OAAO,MACf,OAAO;CAGT,MAAM,EAAE,KAAK,WAAW,GAAG,SAAS;CAMpC,OAAO;EAJL,GAAG;EACH,WAAWA,iBAAAA,oBAAoB,WAAW,KAAK,SAAS;CAG3C;AACjB;AAEA,SAAS,QACP,SACA,MACA,OACA,KACoB;CACpB,MAAM,UAAA,GAASC,MAAAA,WAAAA,CAAWC,iBAAAA,iBAAiB;CAE3C,IAAI,MAAM,OAAO,QAAQ,UAAU,MACjC,MAAM,IAAI,MACR,kOAEF;CAIF,OAAO,QAAQ,MADG,SAAS,eAAe,OAAOC,2BAAAA,iBAAiB,MAAM,CAAC,IAAK,OAC9C,GAAG;AACrC;AAEA,MAAa,WAAWC,kBAAAA;AAExB,SAAgB,IACd,MACA,OACA,KACoB;CACpB,OAAO,QAAQC,kBAAAA,KAAU,MAAM,OAAO,GAAG;AAC3C;AAEA,SAAgB,KACd,MACA,OACA,KACoB;CACpB,OAAO,QAAQC,kBAAAA,MAAW,MAAM,OAAO,GAAG;AAC5C"}