{"version":3,"sources":["../src/reconciler.ts","../../tailwind/src/css-to-styles.ts","../../tailwind/src/tw-runner.ts","../src/render.ts","../src/config-loader.ts","../src/pdf.ts","../src/standalone.ts"],"names":["resolveStylesWithVariants","shortHash","React","createRequire","value","result","_","existsSync","path","readFileSync","createAssetResolver","runTailwind","collectClassNames","setCompiledClassMap","applyImprintVariants","setHyphenator","setSvgRasterizer","loadFontMetricsOnly","runLayout","pdf","writePdf","clearCompiledClassMap","clearHyphenator","clearSvgRasterizer","renderToStream","renderToBuffer"],"mappings":"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","file":"standalone.cjs","sourcesContent":["import { createRequire } from 'node:module';\nimport type { PdfNode, PdfNodeType, ResolvedStyle, VariantStyles } from '@imprint-pdf/core';\nimport { resolveStylesWithVariants, shortHash } from '@imprint-pdf/core';\nimport React, { type ReactElement } from 'react';\nimport type ReactReconcilerType from 'react-reconciler';\n\n// `createContext` is referenced only in the R19 branch below. Accessing it\n// through `React.createContext` instead of a bare named import keeps Next.js\n// RSC compilation from flagging this module as a Client Component (it\n// pattern-matches bare `createContext` imports at the top of the module).\nconst createContext = React.createContext;\n\n// `@imprint-pdf/react` ships both `react-reconciler@^0.29` (R18) and `^0.33`\n// (R19) under aliased package names — `react-reconciler-18` / `-19` — and\n// picks the matching one at module load. Consumers install neither directly.\nconst IS_REACT_18 = parseInt(String(React.version ?? '19').split('.')[0] ?? '19', 10) < 19;\nconst reconcilerSpecifier = IS_REACT_18 ? 'react-reconciler-18' : 'react-reconciler-19';\n\n// `createRequire` runs on Node ESM and CJS. Edge runtimes go through\n// `src/standalone.ts`; `react-reconciler` itself needs Node primitives so a\n// direct edge import of this file would fail regardless.\nconst nodeRequire = createRequire(import.meta.url);\nconst reconcilerModule = nodeRequire(reconcilerSpecifier) as\n  | typeof ReactReconcilerType\n  | { default: typeof ReactReconcilerType };\nconst ReactReconciler =\n  (reconcilerModule as { default?: typeof ReactReconcilerType }).default ??\n  (reconcilerModule as typeof ReactReconcilerType);\n\nconst { DefaultEventPriority, LegacyRoot } = nodeRequire(`${reconcilerSpecifier}/constants.js`) as {\n  DefaultEventPriority: number;\n  LegacyRoot: number;\n};\n\nexport interface Container {\n  document: PdfNode | null;\n  nextId: () => string;\n}\n\ntype HostContext = Record<string, never>;\n\nconst HTML_ALIASES: Record<string, PdfNodeType> = {\n  div: 'view',\n  p: 'view',\n  h1: 'view',\n  h2: 'view',\n  h3: 'view',\n  h4: 'view',\n  h5: 'view',\n  h6: 'view',\n  span: 'view',\n  ul: 'view',\n  ol: 'view',\n  li: 'view',\n  table: 'view',\n  thead: 'view',\n  tbody: 'view',\n  tfoot: 'view',\n  tr: 'view',\n  td: 'view',\n  th: 'view',\n  a: 'link',\n  img: 'image',\n  section: 'view',\n  article: 'view',\n  aside: 'view',\n  header: 'view',\n  footer: 'view',\n  main: 'view',\n  nav: 'view',\n  figure: 'view',\n  figcaption: 'view',\n  blockquote: 'view',\n  pre: 'view',\n  code: 'view',\n  strong: 'view',\n  em: 'view',\n  small: 'view',\n  label: 'view',\n};\n\nconst IMPRINT_TYPES: Record<string, PdfNodeType> = {\n  'imprint-document': 'document',\n  'imprint-page': 'page',\n  'imprint-image': 'image',\n  'imprint-svg': 'svg',\n  'imprint-link': 'link',\n  'imprint-form': 'form',\n  'imprint-textfield': 'textfield',\n  'imprint-checkbox': 'checkbox',\n  'imprint-radiogroup': 'radiogroup',\n  'imprint-dropdown': 'dropdown',\n  'imprint-signature': 'signature',\n  'imprint-button': 'button',\n  'imprint-chart': 'chart',\n  'imprint-pagebreak': 'pagebreak',\n  'imprint-header': 'header',\n  'imprint-footer': 'footer',\n  'imprint-watermark': 'watermark',\n  'imprint-bookmark': 'bookmark',\n};\n\nfunction mapType(type: string): PdfNodeType {\n  if (type in IMPRINT_TYPES) return IMPRINT_TYPES[type] as PdfNodeType;\n  if (type in HTML_ALIASES) return HTML_ALIASES[type] as PdfNodeType;\n  return 'view';\n}\n\nfunction resolveStyle(\n  className: string | undefined,\n  style: Record<string, unknown> | undefined,\n): { style: ResolvedStyle; variants: VariantStyles } {\n  return resolveStylesWithVariants(className, style as Partial<ResolvedStyle> | undefined);\n}\n\nfunction makeIdGenerator() {\n  let counter = 0;\n  return () => {\n    counter += 1;\n    return shortHash(String(counter));\n  };\n}\n\n// React 18 and 19 share a large host-config core but diverge: R19 adds 16\n// fields (transition/priority/suspense/form/paint), `commitUpdate` is 4-arg\n// on R19 vs 5-arg on R18, `createContainer` takes 5 args on R18 vs 10 on R19,\n// and `updateContainerSync`/`flushSyncWork` are R19-only. We gate the extras\n// on `IS_REACT_18` and read `newProps` from the last `commitUpdate` arg either\n// way. The final config is cast to `unknown` so the two `@types/react-reconciler`\n// majors don't clash structurally.\nfunction buildHostConfig(): unknown {\n  const core = {\n    isPrimaryRenderer: true,\n    supportsMutation: true,\n    supportsPersistence: false,\n    supportsHydration: false,\n\n    scheduleTimeout: setTimeout,\n    cancelTimeout: clearTimeout,\n    noTimeout: -1 as const,\n\n    getRootHostContext(_rootContainer: Container): HostContext {\n      return {};\n    },\n    getChildHostContext(\n      _parentContext: HostContext,\n      _type: string,\n      _rootContainer: Container,\n    ): HostContext {\n      return {};\n    },\n\n    shouldSetTextContent(_type: string, _props: Record<string, unknown>): boolean {\n      return false;\n    },\n\n    createInstance(\n      type: string,\n      props: Record<string, unknown>,\n      rootContainer: Container,\n      _hostContext: HostContext,\n    ): PdfNode {\n      const nodeType = mapType(type);\n      const { className, style, children: _children, ...restProps } = props;\n      const resolved = resolveStyle(\n        className as string | undefined,\n        style as Record<string, unknown> | undefined,\n      );\n\n      // The Tailwind two-pass pipeline reads className back off the tree.\n      const nodeProps: Record<string, unknown> = { ...restProps };\n      if (className != null) {\n        nodeProps.className = className;\n      }\n\n      const node: PdfNode = {\n        type: nodeType,\n        id: rootContainer.nextId(),\n        props: nodeProps,\n        style: resolved.style,\n        children: [],\n      } as PdfNode;\n      if (Object.keys(resolved.variants).length > 0) {\n        node.variants = resolved.variants;\n      }\n      return node;\n    },\n\n    createTextInstance(text: string, rootContainer: Container, _hostContext: HostContext): PdfNode {\n      return {\n        type: 'text',\n        id: rootContainer.nextId(),\n        text,\n        props: {},\n        style: {},\n        children: [],\n      } as PdfNode;\n    },\n\n    appendInitialChild(parentInstance: PdfNode, child: PdfNode): void {\n      parentInstance.children.push(child);\n    },\n\n    appendChild(parentInstance: PdfNode, child: PdfNode): void {\n      parentInstance.children.push(child);\n    },\n\n    appendChildToContainer(container: Container, child: PdfNode): void {\n      container.document = child;\n    },\n\n    insertBefore(parentInstance: PdfNode, child: PdfNode, beforeChild: PdfNode): void {\n      const idx = parentInstance.children.indexOf(beforeChild);\n      if (idx === -1) {\n        parentInstance.children.push(child);\n      } else {\n        parentInstance.children.splice(idx, 0, child);\n      }\n    },\n\n    insertInContainerBefore(container: Container, child: PdfNode, _beforeChild: PdfNode): void {\n      container.document = child;\n    },\n\n    removeChild(parentInstance: PdfNode, child: PdfNode): void {\n      const idx = parentInstance.children.indexOf(child);\n      if (idx !== -1) {\n        parentInstance.children.splice(idx, 1);\n      }\n    },\n\n    removeChildFromContainer(container: Container, _child: PdfNode): void {\n      container.document = null;\n    },\n\n    clearContainer(container: Container): void {\n      container.document = null;\n    },\n\n    finalizeInitialChildren(\n      _instance: PdfNode,\n      _type: string,\n      _props: Record<string, unknown>,\n      _rootContainer: Container,\n      _hostContext: HostContext,\n    ): boolean {\n      return false;\n    },\n\n    prepareForCommit(_container: Container): Record<string, unknown> | null {\n      return null;\n    },\n\n    resetAfterCommit(_container: Container): void {},\n\n    commitTextUpdate(textInstance: PdfNode, _oldText: string, newText: string): void {\n      if (textInstance.type === 'text') {\n        textInstance.text = newText;\n      }\n    },\n\n    getPublicInstance(instance: PdfNode): PdfNode {\n      return instance;\n    },\n\n    getInstanceFromNode(_node: unknown): null {\n      return null;\n    },\n\n    beforeActiveInstanceBlur(): void {},\n    afterActiveInstanceBlur(): void {},\n    prepareScopeUpdate(_scopeInstance: unknown, _instance: unknown): void {},\n\n    getInstanceFromScope(_scopeInstance: unknown): PdfNode | null {\n      return null;\n    },\n\n    detachDeletedInstance(_node: PdfNode): void {},\n    preparePortalMount(_container: Container): void {},\n\n    // R18 only — produces the `updatePayload` arg for `commitUpdate`. `true`\n    // is the standard \"do a commit\" sentinel for non-DOM hosts. Ignored on R19.\n    prepareUpdate(): unknown {\n      return true;\n    },\n  };\n\n  // Read newProps from the last arg — it's there on both R18 (5-arg) and R19 (4-arg).\n  function commitUpdate(...args: unknown[]): void {\n    const instance = args[0] as PdfNode;\n    const newProps = args[args.length - 1] as Record<string, unknown>;\n    const { className, style, children: _children, ...restProps } = newProps;\n    const resolved = resolveStyle(\n      className as string | undefined,\n      style as Record<string, unknown> | undefined,\n    );\n    instance.style = resolved.style;\n    if (Object.keys(resolved.variants).length > 0) instance.variants = resolved.variants;\n    else delete instance.variants;\n    Object.assign(instance.props, restProps);\n    if (className != null) {\n      instance.props.className = className;\n    }\n  }\n\n  if (IS_REACT_18) {\n    return { ...core, commitUpdate };\n  }\n\n  // R19-only fields — inert defaults; R19's reconciler uses them for\n  // transition/suspense/priority bookkeeping the PDF host doesn't care about.\n  const r19Extensions = {\n    commitUpdate,\n    resetFormInstance(_form: never): void {},\n    NotPendingTransition: null,\n    // Wants a ReactContext<never> whose internals React doesn't expose. Never read here.\n    HostTransitionContext: createContext<never>(null as never) as never,\n    resolveUpdatePriority(): number {\n      return DefaultEventPriority;\n    },\n    setCurrentUpdatePriority(_newPriority: number): void {},\n    getCurrentUpdatePriority(): number {\n      return DefaultEventPriority;\n    },\n    requestPostPaintCallback(_callback: (time: number) => void): void {},\n    shouldAttemptEagerTransition(): boolean {\n      return false;\n    },\n    trackSchedulerEvent(): void {},\n    resolveEventType(): string | null {\n      return null;\n    },\n    resolveEventTimeStamp(): number {\n      return -1;\n    },\n    maySuspendCommit(_type: string, _props: Record<string, unknown>): boolean {\n      return false;\n    },\n    preloadInstance(_type: string, _props: Record<string, unknown>): boolean {\n      return true;\n    },\n    startSuspendingCommit(): void {},\n    suspendInstance(_type: string, _props: Record<string, unknown>): void {},\n    waitForCommitToBeReady(): null {\n      return null;\n    },\n  };\n\n  return { ...core, ...r19Extensions };\n}\n\nconst hostConfig = buildHostConfig() as ReactReconcilerType.HostConfig<\n  string,\n  Record<string, unknown>,\n  Container,\n  PdfNode,\n  PdfNode,\n  never,\n  never,\n  never,\n  PdfNode,\n  HostContext,\n  never,\n  ReturnType<typeof setTimeout>,\n  -1,\n  never\n>;\n\nconst reconciler = ReactReconciler(hostConfig) as unknown as {\n  createContainer: (...args: unknown[]) => unknown;\n  updateContainer: (element: ReactElement | null, root: unknown) => unknown;\n  updateContainerSync?: (element: ReactElement | null, root: unknown) => unknown;\n  flushSyncWork?: () => void;\n};\n\nif (typeof globalThis !== 'undefined' && !('__REACT_DEVTOOLS_GLOBAL_HOOK__' in globalThis)) {\n  (globalThis as Record<string, unknown>).__REACT_DEVTOOLS_GLOBAL_HOOK__ = { isDisabled: true };\n}\n\n// R18: 5-arg createContainer. R19: 10-arg with trailing identifier prefix +\n// error callbacks the PDF host never reads. updateContainer on R18 is already\n// synchronous under LegacyRoot, so the Sync variant is R19-only.\nfunction buildPdfNodeTreeImpl(container: Container, element: ReactElement): void {\n  const root = IS_REACT_18\n    ? reconciler.createContainer(container, LegacyRoot, null, false, null)\n    : reconciler.createContainer(\n        container,\n        LegacyRoot,\n        null,\n        false,\n        null,\n        '',\n        () => {},\n        () => {},\n        () => {},\n        () => {},\n      );\n\n  if (reconciler.updateContainerSync) {\n    reconciler.updateContainerSync(element, root);\n    reconciler.flushSyncWork?.();\n  } else {\n    reconciler.updateContainer(element, root);\n  }\n}\n\n// React splits `<Text>Hello {name}</Text>` into separate text instances; Taffy\n// would measure each one independently and break lines wrong. Merge them.\nfunction collapseTextChildren(node: PdfNode): void {\n  if (node.children.length > 0 && node.children.every((c) => c.type === 'text')) {\n    const merged = node.children.map((c) => (c.type === 'text' ? (c.text ?? '') : '')).join('');\n    const first = node.children[0];\n    if (first) {\n      node.children = [{ ...first, text: merged, style: node.style, children: [] }];\n    }\n  } else {\n    for (const child of node.children) collapseTextChildren(child);\n  }\n}\n\nexport function buildPdfNodeTree(element: ReactElement): PdfNode {\n  const container: Container = { document: null, nextId: makeIdGenerator() };\n  buildPdfNodeTreeImpl(container, element);\n\n  if (container.document === null) {\n    throw new Error(\n      '[imprint] buildPdfNodeTree: reconciler produced no root node. ' +\n        'Make sure the top-level element is <Document>.',\n    );\n  }\n\n  collapseTextChildren(container.document);\n  return container.document;\n}\n","import type { ResolvedStyle } from '@imprint-pdf/core';\n\nconst PROP_MAP: Partial<Record<string, keyof ResolvedStyle>> = {\n  display: 'display',\n  'flex-direction': 'flexDirection',\n  'flex-wrap': 'flexWrap',\n  'justify-content': 'justifyContent',\n  'align-items': 'alignItems',\n  'align-content': 'alignContent',\n  'align-self': 'alignSelf',\n  flex: 'flex',\n  'flex-grow': 'flexGrow',\n  'flex-shrink': 'flexShrink',\n  'flex-basis': 'flexBasis',\n  gap: 'gap',\n  'row-gap': 'rowGap',\n  'column-gap': 'columnGap',\n  'grid-template-columns': 'gridTemplateColumns',\n  'grid-template-rows': 'gridTemplateRows',\n  'grid-column': 'gridColumn',\n  'grid-row': 'gridRow',\n  width: 'width',\n  height: 'height',\n  'min-width': 'minWidth',\n  'max-width': 'maxWidth',\n  'min-height': 'minHeight',\n  'max-height': 'maxHeight',\n  padding: 'padding',\n  'padding-top': 'paddingTop',\n  'padding-right': 'paddingRight',\n  'padding-bottom': 'paddingBottom',\n  'padding-left': 'paddingLeft',\n  // Logical shorthands; the parse loop fans these out to both physical sides.\n  'padding-inline': 'paddingLeft',\n  'padding-block': 'paddingTop',\n  margin: 'margin',\n  'margin-top': 'marginTop',\n  'margin-right': 'marginRight',\n  'margin-bottom': 'marginBottom',\n  'margin-left': 'marginLeft',\n  'border-width': 'borderWidth',\n  'border-top-width': 'borderTopWidth',\n  'border-right-width': 'borderRightWidth',\n  'border-bottom-width': 'borderBottomWidth',\n  'border-left-width': 'borderLeftWidth',\n  'border-color': 'borderColor',\n  'border-top-color': 'borderTopColor',\n  'border-right-color': 'borderRightColor',\n  'border-bottom-color': 'borderBottomColor',\n  'border-left-color': 'borderLeftColor',\n  'border-radius': 'borderRadius',\n  'border-top-left-radius': 'borderTopLeftRadius',\n  'border-top-right-radius': 'borderTopRightRadius',\n  'border-bottom-right-radius': 'borderBottomRightRadius',\n  'border-bottom-left-radius': 'borderBottomLeftRadius',\n  'font-family': 'fontFamily',\n  'font-size': 'fontSize',\n  'font-weight': 'fontWeight',\n  'font-style': 'fontStyle',\n  'font-variation-settings': 'fontVariationSettings',\n  'font-stretch': 'fontStretch',\n  'font-feature-settings': 'fontFeatureSettings',\n  'line-height': 'lineHeight',\n  'letter-spacing': 'letterSpacing',\n  'text-align': 'textAlign',\n  'text-decoration-line': 'textDecoration',\n  'text-decoration': 'textDecoration',\n  'text-transform': 'textTransform',\n  'white-space': 'whiteSpace',\n  'text-overflow': 'textOverflow',\n  'word-spacing': 'wordSpacing',\n  'writing-mode': 'writingMode',\n  '-webkit-line-clamp': 'lineClamp',\n  'line-clamp': 'lineClamp',\n  'text-indent': 'textIndent',\n  color: 'color',\n  opacity: 'opacity',\n  'background-color': 'backgroundColor',\n  position: 'position',\n  top: 'top',\n  left: 'left',\n  right: 'right',\n  bottom: 'bottom',\n  'z-index': 'zIndex',\n  overflow: 'overflow',\n  'overflow-x': 'overflowX',\n  'overflow-y': 'overflowY',\n  transform: 'transform',\n  'transform-origin': 'transformOrigin',\n  'box-shadow': 'boxShadow',\n  'background-image': 'backgroundImage',\n  'object-position': 'objectPosition',\n  'aspect-ratio': 'aspectRatio',\n};\n\n// Pre-extracts :root custom properties so var(...) lookups don't rescan the CSS.\nfunction parseCssVars(css: string): Map<string, string> {\n  const vars = new Map<string, string>();\n  const rootRe = /(?::root|:host|\\*|html)\\s*(?:,\\s*(?::root|:host|\\*|html)\\s*)*\\{([^}]*)\\}/gs;\n  let m = rootRe.exec(css);\n  while (m !== null) {\n    const block = m[1] ?? '';\n    const varRe = /(--[\\w-]+)\\s*:\\s*([^;]+);/g;\n    let v = varRe.exec(block);\n    while (v !== null) {\n      vars.set(v[1]!.trim(), v[2]!.trim());\n      v = varRe.exec(block);\n    }\n    m = rootRe.exec(css);\n  }\n  return vars;\n}\n\n// Manual depth-walk — var() fallbacks can contain nested parens (e.g.\n// `var(--x, calc(1px + 2px))`) which a flat regex can't handle.\nfunction parseVarCall(\n  str: string,\n  start: number,\n): { name: string; fallback: string | null; end: number } | null {\n  if (!str.startsWith('var(', start)) return null;\n  let depth = 1;\n  let i = start + 4;\n  const inner: string[] = [];\n  while (i < str.length && depth > 0) {\n    const ch = str[i]!;\n    if (ch === '(') depth++;\n    else if (ch === ')') {\n      depth--;\n      if (depth === 0) break;\n    }\n    inner.push(ch);\n    i++;\n  }\n  const content = inner.join('').trim();\n  let commaIdx = -1;\n  let d = 0;\n  for (let j = 0; j < content.length; j++) {\n    if (content[j] === '(') d++;\n    else if (content[j] === ')') d--;\n    else if (content[j] === ',' && d === 0) {\n      commaIdx = j;\n      break;\n    }\n  }\n  const name = (commaIdx === -1 ? content : content.slice(0, commaIdx)).trim();\n  const fallback = commaIdx === -1 ? null : content.slice(commaIdx + 1).trim();\n  return { name, fallback, end: i + 1 };\n}\n\n// Depth cap defends against pathological self-referential token graphs.\nfunction resolveVars(value: string, vars: Map<string, string>, depth = 0): string {\n  if (depth > 8 || !value.includes('var(')) return value;\n  let result = '';\n  let i = 0;\n  while (i < value.length) {\n    const varStart = value.indexOf('var(', i);\n    if (varStart === -1) {\n      result += value.slice(i);\n      break;\n    }\n    result += value.slice(i, varStart);\n    const parsed = parseVarCall(value, varStart);\n    if (!parsed) {\n      result += value[i]!;\n      i++;\n      continue;\n    }\n    const { name, fallback, end } = parsed;\n    const resolved = vars.get(name);\n    if (resolved !== undefined) {\n      result += resolveVars(resolved, vars, depth + 1);\n    } else if (fallback !== null) {\n      result += resolveVars(fallback, vars, depth + 1);\n    } else {\n      result += '0';\n    }\n    i = end;\n  }\n  return result;\n}\n\n// Handles +, -, *, / over numbers and px/rem. The regex below restricts the\n// eval input to digits and operators — anything else passes through unchanged.\nfunction resolveCalc(value: string): string {\n  if (!value.includes('calc(')) return value;\n  return value.replace(/calc\\(([^)]+)\\)/g, (_, expr: string) => {\n    try {\n      const hasDimension = /\\d(?:\\.\\d+)?(?:rem|px|em|pt)/.test(expr);\n      const withPx = expr.replace(/(\\d*\\.?\\d+)rem/g, (__, n: string) => `${parseFloat(n) * 16}`);\n      const noUnits = withPx.replace(/(\\d*\\.?\\d+)px/g, '$1');\n      if (/^[\\d\\s+\\-*/().]+$/.test(noUnits)) {\n        // biome-ignore lint/security/noGlobalEval: input is regex-restricted to digits and operators\n        const result = eval(noUnits) as number;\n        return hasDimension ? `${result}px` : `${result}`;\n      }\n    } catch {}\n    return expr;\n  });\n}\n\n// Tailwind v4 ships its default palette in oklch(); pdf-lib's color parser\n// only understands hex/rgb. The matrix coefficients are from CSS Color 4\n// §11.3 (OKLab → linear sRGB) followed by the standard sRGB transfer\n// function. Out-of-gamut values are clamped per channel — good enough for\n// document chrome, not colorimetrically correct.\nfunction oklchToHex(l: number, c: number, h: number): string {\n  const hRad = (h * Math.PI) / 180;\n  const a = c * Math.cos(hRad);\n  const b = c * Math.sin(hRad);\n\n  const l_ = l + 0.3963377774 * a + 0.2158037573 * b;\n  const m_ = l - 0.1055613458 * a - 0.0638541728 * b;\n  const s_ = l - 0.0894841775 * a - 1.291485548 * b;\n  const lc = l_ * l_ * l_;\n  const mc = m_ * m_ * m_;\n  const sc = s_ * s_ * s_;\n\n  let r = 4.0767416621 * lc - 3.3077115913 * mc + 0.2309699292 * sc;\n  let g = -1.2684380046 * lc + 2.6097574011 * mc - 0.3413193965 * sc;\n  let bv = -0.0041960863 * lc - 0.7034186147 * mc + 1.707614701 * sc;\n\n  const gamma = (x: number) => {\n    const clamped = Math.max(0, Math.min(1, x));\n    return clamped <= 0.0031308 ? 12.92 * clamped : 1.055 * clamped ** (1 / 2.4) - 0.055;\n  };\n  r = gamma(r);\n  g = gamma(g);\n  bv = gamma(bv);\n\n  const toHex = (n: number) =>\n    Math.round(n * 255)\n      .toString(16)\n      .padStart(2, '0');\n  return `#${toHex(r)}${toHex(g)}${toHex(bv)}`;\n}\n\nfunction resolveOklch(value: string): string {\n  return value.replace(\n    /oklch\\(\\s*(\\d*\\.?\\d+)%\\s+(\\d*\\.?\\d+)\\s+(\\d*\\.?\\d+)\\s*\\)/g,\n    (_, ls: string, c: string, h: string) =>\n      oklchToHex(parseFloat(ls) / 100, parseFloat(c), parseFloat(h)),\n  );\n}\n\nfunction resolveValue(raw: string, vars: Map<string, string>): string {\n  let v = resolveVars(raw, vars);\n  v = resolveCalc(v);\n  v = resolveOklch(v);\n  v = v.replace(/(\\d*\\.?\\d+)rem/g, (_, n: string) => `${parseFloat(n) * 16}px`);\n  // Tailwind smuggles per-class opacity through a `/ var(--tw-text-opacity)`\n  // suffix on color values. PDF colors don't carry alpha, so drop the divisor\n  // and let the surrounding `opacity` property handle it.\n  v = v.replace(/\\s*\\/\\s*var\\(--tw-[^)]+\\)/g, '');\n  // Always emit pt with an explicit unit so downstream measurement code\n  // never mistakes a length (e.g. line-height: 24) for a unitless ratio.\n  v = v.replace(/(\\d*\\.?\\d+)px/g, (_, n: string) => {\n    const pt = parseFloat(n) * 0.75;\n    return `${Number.isInteger(pt) ? pt : parseFloat(pt.toFixed(4))}pt`;\n  });\n  return v.trim();\n}\n\n// Tailwind v4 emits everything inside @layer blocks; we keep their contents\n// and discard every other at-rule (@media/@keyframes/@supports/@font-face).\n// Brace counting handles nested blocks that a flat regex can't match safely.\nfunction stripAtRules(css: string): string {\n  let out = '';\n  let i = 0;\n\n  while (i < css.length) {\n    const atIdx = css.indexOf('@', i);\n    if (atIdx === -1) {\n      out += css.slice(i);\n      break;\n    }\n    out += css.slice(i, atIdx);\n\n    const braceIdx = css.indexOf('{', atIdx);\n    const semiIdx = css.indexOf(';', atIdx);\n\n    // Statement-form at-rule (@import, @charset). Skip past its terminator.\n    if (semiIdx !== -1 && (braceIdx === -1 || semiIdx < braceIdx)) {\n      i = semiIdx + 1;\n      continue;\n    }\n\n    if (braceIdx === -1) break;\n\n    const ruleName = css.slice(atIdx, braceIdx).trimEnd();\n    const isLayer = /^@layer\\b/.test(ruleName);\n\n    let depth = 1;\n    let j = braceIdx + 1;\n    while (j < css.length && depth > 0) {\n      if (css[j] === '{') depth++;\n      else if (css[j] === '}') depth--;\n      j++;\n    }\n\n    const inner = css.slice(braceIdx + 1, j - 1);\n\n    // @layer's body can contain its own at-rules, so recurse rather than\n    // splicing it back in raw.\n    if (isLayer) {\n      out += stripAtRules(inner);\n    }\n\n    i = j;\n  }\n\n  return out;\n}\n\nexport function parseCssToStyleMap(css: string): Map<string, ResolvedStyle> {\n  const map = new Map<string, ResolvedStyle>();\n  const vars = parseCssVars(css);\n  const cleaned = stripAtRules(css);\n\n  // Tailwind class names contain characters CSS requires to be escaped\n  // (`/`, `[`, `]`, `%`, etc.), so the selector regex accepts the escape and\n  // we strip the backslash later.\n  const ruleRe = /\\.((?:[a-zA-Z0-9_\\-\\\\:./[\\]%@#!])+)\\s*\\{([^}]*)\\}/g;\n  let m = ruleRe.exec(cleaned);\n  while (m !== null) {\n    const rawName = m[1] ?? '';\n    const decls = m[2] ?? '';\n\n    // Unescaped colon means a pseudo selector (`.btn:hover`); we can't model\n    // those statelessly, so skip the rule rather than half-applying it.\n    if (/(?<!\\\\):/.test(rawName)) {\n      m = ruleRe.exec(cleaned);\n      continue;\n    }\n\n    const className = rawName.replace(/\\\\(.)/g, '$1');\n\n    const style: Partial<Record<keyof ResolvedStyle, unknown>> = {};\n    const declRe = /([\\w-]+)\\s*:\\s*([^;!]+)/g;\n    let d = declRe.exec(decls);\n    while (d !== null) {\n      const prop = d[1]?.trim() ?? '';\n      const rawVal = d[2]?.trim() ?? '';\n      if (!prop.startsWith('--')) {\n        const key = PROP_MAP[prop];\n        if (key !== undefined) {\n          const val = resolveValue(rawVal, vars);\n          if (val) {\n            style[key] = val;\n            // Logical-property shorthands fan out to both physical sides.\n            if (prop === 'padding-inline') {\n              style.paddingRight = val;\n            }\n            if (prop === 'padding-block') {\n              style.paddingBottom = val;\n            }\n          }\n        }\n      }\n      d = declRe.exec(decls);\n    }\n\n    if (Object.keys(style).length > 0) {\n      const existing = map.get(className) ?? {};\n      map.set(className, { ...existing, ...style } as ResolvedStyle);\n    }\n    m = ruleRe.exec(cleaned);\n  }\n\n  return map;\n}\n","import { existsSync, readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\nimport type { ResolvedStyle } from '@imprint-pdf/core';\nimport { parseCssToStyleMap } from './css-to-styles.js';\nimport type { ImprintTailwindOptions } from './index.js';\n\n// Conventional v4 stylesheet / v3 config locations. First match wins.\nconst STYLESHEET_AUTO_PATHS = [\n  'src/app.css',\n  'src/globals.css',\n  'src/index.css',\n  'src/styles.css',\n  'src/styles/app.css',\n  'src/styles/globals.css',\n  'app/globals.css',\n  'app/app.css',\n  'styles/app.css',\n  'styles/globals.css',\n];\nconst V3_CONFIG_AUTO_PATHS = [\n  'tailwind.config.ts',\n  'tailwind.config.js',\n  'tailwind.config.mjs',\n  'tailwind.config.cjs',\n];\n\nfunction findFirstExisting(projectRoot: string, candidates: string[]): string | undefined {\n  return candidates.find((rel) => existsSync(path.join(projectRoot, rel)));\n}\n\n// Tailwind v4 programmatic surface — only present on `tailwindcss@>=4`.\ninterface TailwindV4 {\n  compile: (\n    css: string,\n    opts?: {\n      base?: string;\n      loadStylesheet?: (id: string, base: string) => Promise<{ content: string; base: string }>;\n    },\n  ) => Promise<{ build: (candidates: string[]) => string }>;\n}\n\n// v3 default export is a PostCSS plugin factory.\ntype TailwindV3 = (config: Record<string, unknown>) => unknown;\n\n// Read the consumer's installed `tailwindcss/package.json` to pick the path.\nfunction detectTailwindMajor(projectRoot: string): 3 | 4 | null {\n  try {\n    const req = createRequire(path.join(projectRoot, 'package.json'));\n    const pkg = JSON.parse(readFileSync(req.resolve('tailwindcss/package.json'), 'utf8')) as {\n      version?: string;\n    };\n    const major = parseInt(String(pkg.version ?? '').split('.')[0] ?? '0', 10);\n    return major === 3 || major === 4 ? major : null;\n  } catch {\n    return null;\n  }\n}\n\n// Dispatch precedence:\n//   1. options.config        → v3\n//   2. options.stylesheet    → v4\n//   3. auto-detected v3 config + tailwindcss@3 installed → v3\n//   4. otherwise             → v4 (auto-detected stylesheet or bare fallback)\nexport async function runTailwind(\n  classes: Set<string>,\n  options: ImprintTailwindOptions,\n  projectRoot: string,\n): Promise<Map<string, ResolvedStyle>> {\n  if (classes.size === 0) return new Map();\n\n  const v3ConfigPath =\n    options.config ??\n    (!options.stylesheet && detectTailwindMajor(projectRoot) === 3\n      ? findFirstExisting(projectRoot, V3_CONFIG_AUTO_PATHS)\n      : undefined);\n\n  return v3ConfigPath\n    ? runTailwindV3(classes, projectRoot, v3ConfigPath)\n    : runTailwindV4(classes, options, projectRoot);\n}\n\nasync function runTailwindV4(\n  classes: Set<string>,\n  options: ImprintTailwindOptions,\n  projectRoot: string,\n): Promise<Map<string, ResolvedStyle>> {\n  try {\n    const req = createRequire(path.join(projectRoot, 'package.json'));\n    const tw = req('tailwindcss') as TailwindV4;\n    const twDir = path.dirname(req.resolve('tailwindcss/package.json'));\n\n    async function loadStylesheet(\n      id: string,\n      base: string,\n    ): Promise<{ content: string; base: string }> {\n      if (id === 'tailwindcss') {\n        return { content: readFileSync(path.join(twDir, 'index.css'), 'utf8'), base: twDir };\n      }\n      try {\n        const pkgDir = path.dirname(req.resolve(`${id}/package.json`));\n        return { content: readFileSync(path.join(pkgDir, 'index.css'), 'utf8'), base: pkgDir };\n      } catch {}\n      try {\n        const abs = path.resolve(base, id);\n        return { content: readFileSync(abs, 'utf8'), base: path.dirname(abs) };\n      } catch {}\n      return { content: '', base };\n    }\n\n    const stylesheet = options.stylesheet ?? findFirstExisting(projectRoot, STYLESHEET_AUTO_PATHS);\n    const inputCss = stylesheet\n      ? `@import \"${path.resolve(projectRoot, stylesheet)}\";`\n      : '@import \"tailwindcss\";';\n\n    const { build } = await tw.compile(inputCss, { base: projectRoot, loadStylesheet });\n    return parseCssToStyleMap(build(Array.from(classes)));\n  } catch (err) {\n    throw new Error(\n      `[imprint-tailwind] Tailwind v4 compilation failed: ${String(err)}\\n` +\n        'Ensure tailwindcss>=4 is installed and options.tailwind.projectRoot points to your project.',\n    );\n  }\n}\n\n// Runs the classic v3 PostCSS plugin against a stub\n// `@tailwind base/components/utilities` stylesheet. The full class set is\n// passed as `safelist` so Tailwind doesn't scan the filesystem — we already\n// know every class the document uses. Requires `tailwindcss@3` AND `postcss`\n// installed in the consumer project (both optional peers).\nasync function runTailwindV3(\n  classes: Set<string>,\n  projectRoot: string,\n  configPath: string,\n): Promise<Map<string, ResolvedStyle>> {\n  try {\n    const req = createRequire(path.join(projectRoot, 'package.json'));\n    const absConfigPath = path.isAbsolute(configPath)\n      ? configPath\n      : path.resolve(projectRoot, configPath);\n\n    // `.ts` configs go through Tailwind's own jiti loader; for JS variants we\n    // can `require` directly and unwrap a possible `default` export.\n    let userConfig: Record<string, unknown> = { content: { relative: true, files: [] } };\n    if (!absConfigPath.endsWith('.ts')) {\n      const loaded = req(absConfigPath) as\n        | Record<string, unknown>\n        | { default: Record<string, unknown> };\n      userConfig =\n        loaded && typeof loaded === 'object' && 'default' in loaded\n          ? (loaded as { default: Record<string, unknown> }).default\n          : (loaded as Record<string, unknown>);\n    }\n\n    const safelist = Array.from(classes);\n    const mergedConfig: Record<string, unknown> = {\n      ...userConfig,\n      content: { files: [{ raw: safelist.join(' '), extension: 'html' }] },\n      safelist,\n    };\n\n    const tailwindV3 = req('tailwindcss') as TailwindV3;\n    const postcss = req('postcss') as (plugins: unknown[]) => {\n      process: (css: string, opts?: { from?: string | undefined }) => Promise<{ css: string }>;\n    };\n\n    const stubCss = '@tailwind base;\\n@tailwind components;\\n@tailwind utilities;\\n';\n    const result = await postcss([tailwindV3(mergedConfig)]).process(stubCss, { from: undefined });\n    return parseCssToStyleMap(result.css);\n  } catch (err) {\n    throw new Error(\n      `[imprint-tailwind] Tailwind v3 compilation failed: ${String(err)}\\n` +\n        `Config: ${configPath}. Ensure tailwindcss@3 and postcss are installed in the consumer project.`,\n    );\n  }\n}\n","import type { ComputedGeometry, DocumentNode, PdfNode, RenderOptions } from '@imprint-pdf/core';\nimport {\n  applyImprintVariants,\n  clearCompiledClassMap,\n  clearHyphenator,\n  clearSvgRasterizer,\n  collectClassNames,\n  createAssetResolver,\n  loadFontMetricsOnly,\n  runLayout,\n  setCompiledClassMap,\n  setHyphenator,\n  setSvgRasterizer,\n  writePdf,\n} from '@imprint-pdf/core';\nimport type { ReactElement } from 'react';\nimport { buildPdfNodeTree } from './reconciler.js';\n\nexport interface InspectorRenderResult {\n  pdf: Uint8Array;\n  tree: DocumentNode;\n  geometries: Map<string, ComputedGeometry>;\n}\n\nasync function renderInternal(\n  element: ReactElement,\n  options: RenderOptions,\n): Promise<InspectorRenderResult> {\n  const resolver = options.assetResolver ?? createAssetResolver();\n\n  // Two-pass reconcile to break the Tailwind ↔ resolved-style cycle: dry\n  // pass to harvest class names, then reconcile again with the compiled map.\n  if (options.tailwind) {\n    const { runTailwind } = await import('@imprint-pdf/tailwind');\n    const dryRoot = buildPdfNodeTree(element);\n    const classes = collectClassNames(dryRoot);\n    if (classes.size > 0) {\n      const projectRoot = (options.tailwind as { projectRoot?: string }).projectRoot;\n      if (!projectRoot) {\n        throw new Error(\n          '[imprint] options.tailwind.projectRoot is required when using Tailwind. ' +\n            'Set it to the directory containing your tailwind config / package.json.',\n        );\n      }\n      const compiled = await runTailwind(classes, options.tailwind, projectRoot);\n      setCompiledClassMap(compiled);\n    }\n  }\n\n  try {\n    const rootNode: PdfNode = buildPdfNodeTree(element);\n\n    if (rootNode.type !== 'document') {\n      throw new Error(\n        `[imprint] renderToBuffer: root element must be <Document> (got type=\"${rootNode.type}\"). Wrap your content in <Document>.`,\n      );\n    }\n    // Fold page-* / imprint-* variants into each node's style before layout.\n    const documentNode = applyImprintVariants(rootNode as DocumentNode);\n\n    if (options.hyphenate) setHyphenator(options.hyphenate);\n    if (options.svgRasterizer) setSvgRasterizer(options.svgRasterizer);\n\n    const fontMetrics = await loadFontMetricsOnly(options.fonts ?? [], resolver);\n    const geometries = await runLayout(documentNode, 0, 0, fontMetrics);\n    const pdf = await writePdf(documentNode, geometries, options.fonts ?? [], resolver, {\n      ...(options.postProcess && { postProcess: options.postProcess }),\n      ...(options.postBytes && { postBytes: options.postBytes }),\n    });\n    return { pdf, tree: documentNode, geometries };\n  } finally {\n    if (options.tailwind) clearCompiledClassMap();\n    clearHyphenator();\n    clearSvgRasterizer();\n  }\n}\n\nexport async function renderToBuffer(\n  element: ReactElement,\n  options: RenderOptions = {},\n): Promise<Uint8Array> {\n  const { pdf } = await renderInternal(element, options);\n  return pdf;\n}\n\n/**\n * Renders the document and returns the bytes as a chunked `ReadableStream`.\n *\n * pdf-lib produces the buffer in one shot, so the chunking here is a\n * downstream-friendly optimisation: it lets HTTP frameworks send the\n * `Content-Type: application/pdf` headers and start flushing bytes\n * immediately, which matters for sub-100 ms TTFB targets on edge runtimes\n * (Cloudflare Workers, Vercel Edge, Deno Deploy, Bun). 64 KB chunks match\n * Node's default high-water mark and keep memory usage flat for large PDFs.\n */\nexport async function renderToStream(\n  element: ReactElement,\n  options: RenderOptions = {},\n): Promise<ReadableStream<Uint8Array>> {\n  const buffer = await renderToBuffer(element, options);\n  const CHUNK = 64 * 1024;\n  return new ReadableStream<Uint8Array>({\n    start(controller) {\n      for (let offset = 0; offset < buffer.length; offset += CHUNK) {\n        controller.enqueue(buffer.subarray(offset, Math.min(offset + CHUNK, buffer.length)));\n      }\n      controller.close();\n    },\n  });\n}\n\n/**\n * Single-pass render that returns the PDF bytes alongside the post-layout\n * PdfNode tree and per-node geometry map. Powers `imprint dev`'s inspector;\n * not part of the public render API.\n */\nexport async function renderForInspector(\n  element: ReactElement,\n  options: RenderOptions = {},\n): Promise<InspectorRenderResult> {\n  return renderInternal(element, options);\n}\n","import type { FontDeclaration, RenderOptions } from '@imprint-pdf/core';\n\nexport interface ResolvedImprintConfig {\n  fonts?: FontDeclaration[];\n  tailwind?: {\n    config?: string;\n    stylesheet?: string;\n    projectRoot?: string;\n  };\n}\n\n// Best-effort dynamic-load of `imprint.config.{ts,js,mjs,cjs}` from the\n// project root. Node only — edge runtimes lack `node:fs` / `node:url` and\n// will fall through to the `{}` return, which is fine because users on edge\n// pass options explicitly.\nlet cached: Promise<ResolvedImprintConfig> | undefined;\n\nconst CONFIG_CANDIDATES = [\n  'imprint.config.ts',\n  'imprint.config.js',\n  'imprint.config.mjs',\n  'imprint.config.cjs',\n];\n\nasync function tryLoad(): Promise<ResolvedImprintConfig> {\n  let fs: typeof import('node:fs') | undefined;\n  let pathMod: typeof import('node:path') | undefined;\n  let urlMod: typeof import('node:url') | undefined;\n  try {\n    fs = await import('node:fs');\n    pathMod = await import('node:path');\n    urlMod = await import('node:url');\n  } catch {\n    return {};\n  }\n\n  const cwd = typeof process !== 'undefined' && process.cwd ? process.cwd() : '.';\n  for (const rel of CONFIG_CANDIDATES) {\n    const abs = pathMod.join(cwd, rel);\n    if (!fs.existsSync(abs)) continue;\n    try {\n      const mod = (await import(urlMod.pathToFileURL(abs).href)) as {\n        default?: ResolvedImprintConfig;\n      } & ResolvedImprintConfig;\n      const config = mod.default ?? mod;\n      if (config && typeof config === 'object') return config;\n    } catch {\n      // try the next candidate\n    }\n  }\n  return {};\n}\n\nexport function loadImprintConfig(): Promise<ResolvedImprintConfig> {\n  cached ??= tryLoad();\n  return cached;\n}\n\n// Caller-supplied options win over config. Undefined values are stripped so\n// downstream `exactOptionalPropertyTypes` is happy.\nexport async function mergeWithConfig(options: RenderOptions): Promise<RenderOptions> {\n  const config = await loadImprintConfig();\n  const merged: RenderOptions = { ...options };\n\n  if (options.fonts === undefined && config.fonts !== undefined) {\n    merged.fonts = config.fonts;\n  }\n\n  const callerTw = options.tailwind;\n  const configTw = config.tailwind;\n  if (callerTw || configTw) {\n    const tw: NonNullable<RenderOptions['tailwind']> = {};\n    const c = callerTw?.config ?? configTw?.config;\n    if (c !== undefined) tw.config = c;\n    const s = callerTw?.stylesheet ?? configTw?.stylesheet;\n    if (s !== undefined) tw.stylesheet = s;\n    tw.projectRoot =\n      callerTw?.projectRoot ??\n      configTw?.projectRoot ??\n      (typeof process !== 'undefined' && process.cwd ? process.cwd() : '.');\n    merged.tailwind = tw;\n  }\n\n  return merged;\n}\n","import type { RenderOptions } from '@imprint-pdf/core';\nimport type { ReactElement } from 'react';\nimport { mergeWithConfig } from './config-loader.js';\nimport { renderToBuffer, renderToStream } from './render.js';\n\n/**\n * Output shape for {@link pdf}.\n *\n * - `'response'` (default) — a `Response` whose body is the rendered PDF bytes,\n *   with `Content-Type: application/pdf` headers wired up. Ideal for Next.js\n *   route handlers, Hono, Bun.serve, etc.\n * - `'bytes'` — a `Uint8Array`. Useful for writing to disk, attaching to email,\n *   or passing into a custom HTTP framework.\n * - `'stream'` — a `ReadableStream<Uint8Array>`. Useful for streaming responses\n *   on edge runtimes where memory is constrained.\n */\nexport type PdfOutput = 'response' | 'bytes' | 'stream';\n\nexport interface PdfOptions extends RenderOptions {\n  /** Output shape — default `'response'`. */\n  as?: PdfOutput;\n  /** Suggested filename in the `Content-Disposition` header (response shape only). */\n  filename?: string;\n  /** `'inline'` displays in the browser, `'attachment'` triggers download. Default `'inline'`. */\n  disposition?: 'inline' | 'attachment';\n}\n\nfunction buildResponse(\n  bytes: Uint8Array,\n  filename: string,\n  disposition: 'inline' | 'attachment',\n): Response {\n  const safe = filename.replace(/[^\\w.-]/g, '_');\n  return new Response(bytes as unknown as BodyInit, {\n    headers: {\n      'Content-Type': 'application/pdf',\n      'Content-Disposition': `${disposition}; filename=\"${safe}\"`,\n      'Content-Length': String(bytes.byteLength),\n    },\n  });\n}\n\n/**\n * Render a React element to a PDF. Single entry point — picks output shape\n * via `options.as`, auto-loads `imprint.config.ts` from `process.cwd()`, and\n * merges caller-supplied options on top.\n *\n * @example\n * ```ts\n * // Next.js route handler — default Response output:\n * export const GET = () => pdf(<Invoice />);\n *\n * // Power-user escape hatches:\n * const bytes  = await pdf(<Doc />, { as: 'bytes'  });\n * const stream = await pdf(<Doc />, { as: 'stream' });\n * ```\n */\nexport function pdf(\n  element: ReactElement,\n  options?: PdfOptions & { as?: 'response' },\n): Promise<Response>;\nexport function pdf(\n  element: ReactElement,\n  options: PdfOptions & { as: 'bytes' },\n): Promise<Uint8Array>;\nexport function pdf(\n  element: ReactElement,\n  options: PdfOptions & { as: 'stream' },\n): Promise<ReadableStream<Uint8Array>>;\nexport async function pdf(\n  element: ReactElement,\n  options: PdfOptions = {},\n): Promise<Response | Uint8Array | ReadableStream<Uint8Array>> {\n  const {\n    as = 'response',\n    filename = 'document.pdf',\n    disposition = 'inline',\n    ...renderOptions\n  } = options;\n  const resolved = await mergeWithConfig(renderOptions);\n\n  if (as === 'bytes') return renderToBuffer(element, resolved);\n  if (as === 'stream') return renderToStream(element, resolved);\n\n  const bytes = await renderToBuffer(element, resolved);\n  return buildResponse(bytes, filename, disposition);\n}\n","import type { RenderOptions } from '@imprint-pdf/core';\nimport type { ReactElement } from 'react';\nimport type { PdfOptions } from './pdf.js';\n\nexport type { PdfOptions, PdfOutput } from './pdf.js';\n\nexport interface StandaloneRenderOptions extends RenderOptions {\n  // v1: will be wired to taffy layout engine and harfbuzz text shaper\n  wasm?: WebAssembly.Module;\n}\n\nexport async function renderToStream(\n  element: ReactElement,\n  options: StandaloneRenderOptions = {},\n): Promise<ReadableStream<Uint8Array>> {\n  const { wasm: _wasm, ...renderOptions } = options;\n  const { renderToStream: render } = await import('./render.js');\n  return render(element, renderOptions);\n}\n\nexport async function renderToBuffer(\n  element: ReactElement,\n  options: StandaloneRenderOptions = {},\n): Promise<Uint8Array> {\n  const { wasm: _wasm, ...renderOptions } = options;\n  const { renderToBuffer: render } = await import('./render.js');\n  return render(element, renderOptions);\n}\n\n/**\n * Unified entry point — see `@imprint-pdf/react`'s docs for the overloads.\n * Edge variant: skips config auto-load (no `node:fs`), so always pass\n * `options.fonts` and `options.tailwind` explicitly on edge.\n */\nexport function pdf(\n  element: ReactElement,\n  options?: PdfOptions & { wasm?: WebAssembly.Module; as?: 'response' },\n): Promise<Response>;\nexport function pdf(\n  element: ReactElement,\n  options: PdfOptions & { wasm?: WebAssembly.Module; as: 'bytes' },\n): Promise<Uint8Array>;\nexport function pdf(\n  element: ReactElement,\n  options: PdfOptions & { wasm?: WebAssembly.Module; as: 'stream' },\n): Promise<ReadableStream<Uint8Array>>;\nexport async function pdf(\n  element: ReactElement,\n  options: PdfOptions & { wasm?: WebAssembly.Module } = {},\n): Promise<Response | Uint8Array | ReadableStream<Uint8Array>> {\n  const { wasm: _wasm, ...rest } = options;\n  const mod = (await import('./pdf.js')) as {\n    pdf: (\n      e: ReactElement,\n      o?: PdfOptions,\n    ) => Promise<Response | Uint8Array | ReadableStream<Uint8Array>>;\n  };\n  return mod.pdf(element, rest);\n}\n"]}