{"version":3,"sources":["../src/renderers/common/resolve-embed-data.ts","../src/renderers/common/resolve-code-block-lines.ts"],"names":["getAlt","getWidth","getHeight","getLinkHref"],"mappings":";;;;;AAaA,SAAS,gBAAgB,IAAA,EAA6B;AACpD,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,EAAU,OAAO,IAAA;AACrC,EAAA,IAAI,QAAQ,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,SAAS,IAAA,EAAM;AAC7D,IAAA,OAAO,MAAA,CAAQ,IAAA,CAAiC,GAAA,IAAO,EAAE,CAAA;AAAA,EAC3D;AACA,EAAA,OAAO,MAAA,CAAO,QAAQ,EAAE,CAAA;AAC1B;AAgBO,SAAS,iBAAiB,IAAA,EAA+B;AAC9D,EAAA,MAAM,GAAA,GAAM,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA;AACrC,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AAEjB,EAAA,OAAO;AAAA,IACL,GAAA;AAAA,IACA,GAAA,EAAKA,yBAAO,IAAI,CAAA;AAAA,IAChB,KAAA,EAAOC,2BAAS,IAAI,CAAA;AAAA,IACpB,MAAA,EAAQC,4BAAU,IAAI,CAAA;AAAA,IACtB,QAAA,EAAUC,8BAAY,IAAI;AAAA,GAC5B;AACF;AAQO,SAAS,gBAAgB,IAAA,EAA4B;AAC1D,EAAA,MAAM,GAAA,GAAM,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA;AACrC,EAAA,OAAO,GAAA,IAAO,IAAA;AAChB;AAQO,SAAS,mBAAmB,IAAA,EAAqB;AACtD,EAAA,OAAO,OAAO,IAAA,CAAK,IAAA,KAAS,QAAA,GAAW,KAAK,IAAA,GAAO,EAAA;AACrD;;;AC/CO,SAAS,sBAAsB,aAAA,EAAsC;AAC1E,EAAA,MAAM,UAAA,GAAa,aAAA,CAAc,QAAA,CAAS,CAAC,CAAA;AAC3C,EAAA,MAAM,OAAA,GAAU,UAAA,EAAY,UAAA,CAAW,YAAY,CAAA;AACnD,EAAA,MAAM,WAAW,OAAO,OAAA,KAAY,QAAA,IAAY,OAAA,KAAY,SAAS,OAAA,GAAU,MAAA;AAE/E,EAAA,MAAM,KAAA,GAAQ,cAAc,QAAA,CAAS,GAAA;AAAA,IAAI,CAAC,KAAA,KACxC,KAAA,CAAM,QAAA,CAAS,IAAI,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,IAAA,IAAQ,EAAE,CAAC,CAAA,CAAE,KAAK,EAAE;AAAA,GACzD;AAEA,EAAA,OAAO,EAAE,UAAU,KAAA,EAAM;AAC3B","file":"chunk-C6SYOG5D.cjs","sourcesContent":["import type { TNode } from '../../core/ast-types';\nimport { getAlt, getHeight, getLinkHref, getWidth } from './node-attributes';\n\n// ─── Shared Helper ──────────────────────────────────────────────────────────\n\n/**\n * Extract the source URL string from embed `data`.\n *\n * Handles three shapes:\n * - `string` → returned directly\n * - `{ url: string }` → extracts the `url` property\n * - anything else → `''`\n */\nfunction resolveEmbedSrc(data: TNode['data']): string {\n  if (typeof data === 'string') return data;\n  if (data != null && typeof data === 'object' && 'url' in data) {\n    return String((data as Record<string, unknown>).url ?? '');\n  }\n  return String(data ?? '');\n}\n\n// ─── Image ──────────────────────────────────────────────────────────────────\n\nexport interface ImageData {\n  src: string;\n  alt: string;\n  width?: string;\n  height?: string;\n  linkHref?: string;\n}\n\n/**\n * Extract image properties from an image embed node.\n * Returns `null` if the source URL is empty.\n */\nexport function resolveImageData(node: TNode): ImageData | null {\n  const src = resolveEmbedSrc(node.data);\n  if (!src) return null;\n\n  return {\n    src,\n    alt: getAlt(node),\n    width: getWidth(node),\n    height: getHeight(node),\n    linkHref: getLinkHref(node),\n  };\n}\n\n// ─── Video ──────────────────────────────────────────────────────────────────\n\n/**\n * Extract the source URL from a video embed node.\n * Returns `null` if the source URL is empty.\n */\nexport function resolveVideoSrc(node: TNode): string | null {\n  const src = resolveEmbedSrc(node.data);\n  return src || null;\n}\n\n// ─── Formula ────────────────────────────────────────────────────────────────\n\n/**\n * Extract the formula text from a formula embed node.\n * Returns `''` if data is missing or not a string.\n */\nexport function resolveFormulaText(node: TNode): string {\n  return typeof node.data === 'string' ? node.data : '';\n}\n","import type { TNode } from '../../core/ast-types';\n\n/**\n * Resolved code block content from a `code-block-container` node.\n */\nexport interface CodeBlockLines {\n  /** The programming language if present and meaningful, or `undefined`. */\n  language: string | undefined;\n  /** The text content of each code line. */\n  lines: string[];\n}\n\n/**\n * Extract the language and raw text lines from a `code-block-container` node.\n *\n * Shared by the React and Markdown renderers to avoid duplicating\n * the child-iteration logic for code blocks.\n *\n * @param containerNode - A `code-block-container` AST node produced by `codeBlockGrouper`\n */\nexport function resolveCodeBlockLines(containerNode: TNode): CodeBlockLines {\n  const firstChild = containerNode.children[0];\n  const rawLang = firstChild?.attributes['code-block'];\n  const language = typeof rawLang === 'string' && rawLang !== 'true' ? rawLang : undefined;\n\n  const lines = containerNode.children.map((child) =>\n    child.children.map((c) => String(c.data ?? '')).join(''),\n  );\n\n  return { language, lines };\n}\n"]}